From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:54943) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Z7Jsj-0004gk-HV for qemu-devel@nongnu.org; Tue, 23 Jun 2015 04:48:38 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Z7Jsf-0000i5-Rs for qemu-devel@nongnu.org; Tue, 23 Jun 2015 04:48:37 -0400 Received: from mx1.redhat.com ([209.132.183.28]:44438) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Z7Jsf-0000hy-M3 for qemu-devel@nongnu.org; Tue, 23 Jun 2015 04:48:33 -0400 Date: Tue, 23 Jun 2015 09:48:28 +0100 From: "Daniel P. Berrange" Message-ID: <20150623084827.GC30318@redhat.com> References: <1434646944-24040-1-git-send-email-berrange@redhat.com> <1434646944-24040-11-git-send-email-berrange@redhat.com> <5588C3EA.6080408@huawei.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: <5588C3EA.6080408@huawei.com> Subject: Re: [Qemu-devel] [PATCH v3 10/10] ui: convert VNC to use generic cipher API Reply-To: "Daniel P. Berrange" List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Gonglei Cc: Kevin Wolf , qemu-devel@nongnu.org, Gerd Hoffmann , Paolo Bonzini , Richard Henderson On Tue, Jun 23, 2015 at 10:26:50AM +0800, Gonglei wrote: > On 2015/6/19 1:02, Daniel P. Berrange wrote: > > if (!vs->vd->password) { > > VNC_DEBUG("No password configured on server"); > > @@ -2534,9 +2536,29 @@ static int protocol_client_auth_vnc(VncState *vs, uint8_t *data, size_t len) > > pwlen = strlen(vs->vd->password); > > for (i=0; i > key[i] = ivd->password[i] : 0; > > - deskey(key, EN0); > > - for (j = 0; j < VNC_AUTH_CHALLENGE_SIZE; j += 8) > > - des(response+j, response+j); > > + > > + cipher = qcrypto_cipher_new( > > + QCRYPTO_CIPHER_ALG_DES_RFB, > > + QCRYPTO_CIPHER_MODE_ECB, > > + key, G_N_ELEMENTS(key), > > + &err); > > + if (!cipher) { > > + VNC_DEBUG("Cannot initialize cipher %s", > > + error_get_pretty(err)); > > + error_free(err); > > + goto reject; > > + } > > + > > + if (qcrypto_cipher_decrypt(cipher, > > + vs->challenge, > > + response, > > + VNC_AUTH_CHALLENGE_SIZE, > > + &err) < 0) { > > + VNC_DEBUG("Cannot encrypt challenge %s", > > + error_get_pretty(err)); > > + error_free(err); > > + goto reject; > > + } > > Do we need change above VNC_DEBUGs to error_report() or something like that? In general, yes, the VNC code doesn't really handle error reporting very well today. > Anyway, it doesn't influence my R-b: > Reviewed-by: Gonglei Regards, Daniel -- |: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :| |: http://libvirt.org -o- http://virt-manager.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :|