From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:38295) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZDbxX-00065d-Lh for qemu-devel@nongnu.org; Fri, 10 Jul 2015 13:19:36 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZDbxW-0003rE-If for qemu-devel@nongnu.org; Fri, 10 Jul 2015 13:19:35 -0400 Received: from mx1.redhat.com ([209.132.183.28]:47549) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZDbxW-0003qd-DX for qemu-devel@nongnu.org; Fri, 10 Jul 2015 13:19:34 -0400 From: =?UTF-8?q?Radim=20Kr=C4=8Dm=C3=A1=C5=99?= Date: Fri, 10 Jul 2015 19:18:02 +0200 Message-Id: <1436548682-9315-4-git-send-email-rkrcmar@redhat.com> In-Reply-To: <1436548682-9315-1-git-send-email-rkrcmar@redhat.com> References: <1436548682-9315-1-git-send-email-rkrcmar@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Subject: [Qemu-devel] [PATCH v2 3/3] crypto: use CPP for wrapper definitions in nettle List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: Peter Maydell It's horrible both ways and I prefer this one. Signed-off-by: Radim Kr=C4=8Dm=C3=A1=C5=99 --- crypto/cipher-nettle.c | 47 +++++++++++++++++---------------------------= --- 1 file changed, 17 insertions(+), 30 deletions(-) diff --git a/crypto/cipher-nettle.c b/crypto/cipher-nettle.c index 61f1cd3417d3..78b6b05a27d2 100644 --- a/crypto/cipher-nettle.c +++ b/crypto/cipher-nettle.c @@ -33,34 +33,21 @@ typedef const void * cipher_ctx_t; typedef size_t cipher_length_t; #endif =20 -nettle_cipher_func aes_encrypt_wrapper; -nettle_cipher_func aes_decrypt_wrapper; -nettle_cipher_func des_encrypt_wrapper; -nettle_cipher_func des_decrypt_wrapper; +#define WRAP(cipher) \ + nettle_cipher_func cipher##_wrapper; \ + void cipher##_wrapper(cipher_ctx_t ctx, cipher_length_t length, \ + uint8_t *dst, const uint8_t *src) \ + { \ + cipher(ctx, length, dst, src); \ + } =20 -void aes_encrypt_wrapper(cipher_ctx_t ctx, cipher_length_t length, - uint8_t *dst, const uint8_t *src) -{ - aes_encrypt(ctx, length, dst, src); -} +#define WRAPPED(cipher) \ + cipher##_wrapper =20 -void aes_decrypt_wrapper(cipher_ctx_t ctx, cipher_length_t length, - uint8_t *dst, const uint8_t *src) -{ - aes_encrypt(ctx, length, dst, src); -} - -void des_encrypt_wrapper(cipher_ctx_t ctx, cipher_length_t length, - uint8_t *dst, const uint8_t *src) -{ - des_encrypt(ctx, length, dst, src); -} - -void des_decrypt_wrapper(cipher_ctx_t ctx, cipher_length_t length, - uint8_t *dst, const uint8_t *src) -{ - des_decrypt(ctx, length, dst, src); -} +WRAP(aes_encrypt) +WRAP(aes_decrypt) +WRAP(des_encrypt) +WRAP(des_decrypt) =20 typedef struct QCryptoCipherNettle QCryptoCipherNettle; struct QCryptoCipherNettle { @@ -122,8 +109,8 @@ QCryptoCipher *qcrypto_cipher_new(QCryptoCipherAlgori= thm alg, des_set_key(ctx->ctx_encrypt, rfbkey); g_free(rfbkey); =20 - ctx->alg_encrypt =3D des_encrypt_wrapper; - ctx->alg_decrypt =3D des_decrypt_wrapper; + ctx->alg_encrypt =3D WRAPPED(des_encrypt); + ctx->alg_decrypt =3D WRAPPED(des_decrypt); =20 ctx->niv =3D DES_BLOCK_SIZE; break; @@ -137,8 +124,8 @@ QCryptoCipher *qcrypto_cipher_new(QCryptoCipherAlgori= thm alg, aes_set_encrypt_key(ctx->ctx_encrypt, nkey, key); aes_set_decrypt_key(ctx->ctx_decrypt, nkey, key); =20 - ctx->alg_encrypt =3D aes_encrypt_wrapper; - ctx->alg_decrypt =3D aes_decrypt_wrapper; + ctx->alg_encrypt =3D WRAPPED(aes_encrypt); + ctx->alg_decrypt =3D WRAPPED(aes_decrypt); =20 ctx->niv =3D AES_BLOCK_SIZE; break; --=20 2.4.5