From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:39720) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Z7DvQ-00089r-W5 for qemu-devel@nongnu.org; Mon, 22 Jun 2015 22:27:01 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Z7DvN-0004ZG-Or for qemu-devel@nongnu.org; Mon, 22 Jun 2015 22:27:00 -0400 Received: from szxga02-in.huawei.com ([119.145.14.65]:27207) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Z7DvN-0004Yl-6K for qemu-devel@nongnu.org; Mon, 22 Jun 2015 22:26:57 -0400 Message-ID: <5588C3EA.6080408@huawei.com> Date: Tue, 23 Jun 2015 10:26:50 +0800 From: Gonglei MIME-Version: 1.0 References: <1434646944-24040-1-git-send-email-berrange@redhat.com> <1434646944-24040-11-git-send-email-berrange@redhat.com> In-Reply-To: <1434646944-24040-11-git-send-email-berrange@redhat.com> Content-Type: text/plain; charset="windows-1252" Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH v3 10/10] ui: convert VNC to use generic cipher API List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: "Daniel P. Berrange" , qemu-devel@nongnu.org Cc: Kevin Wolf , Paolo Bonzini , Gerd Hoffmann , Richard Henderson 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? Anyway, it doesn't influence my R-b: Reviewed-by: Gonglei