]> xenbits.xensource.com Git - libvirt.git/commitdiff
qemu: vnc: switch to tls-creds-x509
authorJán Tomko <jtomko@redhat.com>
Tue, 17 Jul 2018 13:10:23 +0000 (15:10 +0200)
committerJán Tomko <jtomko@redhat.com>
Wed, 18 Jul 2018 15:29:51 +0000 (17:29 +0200)
The tls, x509 and x509verify options were deprecated in QEMU v2.5.0:

commit 3e305e4a4752f70c0b5c3cf5b43ec957881714f7
Author:     Daniel P. Berrange <berrange@redhat.com>

    ui: convert VNC server to use QCryptoTLSSession

Use the tls-creds-x509 object when available.

https://bugzilla.redhat.com/show_bug.cgi?id=1598167

Signed-off-by: Ján Tomko <jtomko@redhat.com>
src/qemu/qemu_command.c
tests/qemuxml2argvdata/graphics-vnc-tls.x86_64-latest.args

index 44ae8dcef7b7d8775775317b49b7decf692ba206..9326abbe6358bf06802c4d03825996a58228d72a 100644 (file)
@@ -7917,13 +7917,27 @@ qemuBuildGraphicsVNCCommandLine(virQEMUDriverConfigPtr cfg,
         virBufferAddLit(&opt, ",password");
 
     if (cfg->vncTLS) {
-        virBufferAddLit(&opt, ",tls");
-        if (cfg->vncTLSx509verify) {
-            virBufferAddLit(&opt, ",x509verify=");
-            virQEMUBuildBufferEscapeComma(&opt, cfg->vncTLSx509certdir);
+        if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_OBJECT_TLS_CREDS_X509)) {
+            const char *alias = "vnc-tls-creds0";
+            if (qemuBuildTLSx509CommandLine(cmd,
+                                            cfg->vncTLSx509certdir,
+                                            true,
+                                            cfg->vncTLSx509verify,
+                                            NULL,
+                                            alias,
+                                            qemuCaps) < 0)
+                goto error;
+
+            virBufferAsprintf(&opt, ",tls-creds=%s", alias);
         } else {
-            virBufferAddLit(&opt, ",x509=");
-            virQEMUBuildBufferEscapeComma(&opt, cfg->vncTLSx509certdir);
+            virBufferAddLit(&opt, ",tls");
+            if (cfg->vncTLSx509verify) {
+                virBufferAddLit(&opt, ",x509verify=");
+                virQEMUBuildBufferEscapeComma(&opt, cfg->vncTLSx509certdir);
+            } else {
+                virBufferAddLit(&opt, ",x509=");
+                virQEMUBuildBufferEscapeComma(&opt, cfg->vncTLSx509certdir);
+            }
         }
     }
 
index 01743eff2a0d90b6fd2238e03919eb62f024bf57..97775fad42f016965413fad6e0b96218d898567a 100644 (file)
@@ -24,7 +24,9 @@ file=/tmp/lib/domain--1-QEMUGuest1/master-key.aes \
 -no-acpi \
 -boot strict=on \
 -device piix3-usb-uhci,id=usb,bus=pci.0,addr=0x1.0x2 \
--vnc 127.0.0.1:3,tls,x509verify=/etc/pki/libvirt-vnc,sasl \
+-object tls-creds-x509,id=vnc-tls-creds0,dir=/etc/pki/libvirt-vnc,\
+endpoint=server,verify-peer=yes \
+-vnc 127.0.0.1:3,tls-creds=vnc-tls-creds0,sasl \
 -device cirrus-vga,id=video0,bus=pci.0,addr=0x2 \
 -sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,\
 resourcecontrol=deny \