[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH for-2.9 v2 6/7] crypto: support HMAC algorithms
From: |
Daniel P. Berrange |
Subject: |
Re: [Qemu-devel] [PATCH for-2.9 v2 6/7] crypto: support HMAC algorithms based on nettle |
Date: |
Mon, 12 Dec 2016 10:28:56 +0000 |
User-agent: |
Mutt/1.7.1 (2016-10-04) |
On Mon, Dec 12, 2016 at 04:08:11PM +0800, Longpeng(Mike) wrote:
> This patch add nettle-backed HMAC algorithms support
>
> Signed-off-by: Longpeng(Mike) <address@hidden>
> ---
> crypto/hmac-nettle.c | 118
> +++++++++++++++++++++++++++++++++++++++++++++++++--
> 1 file changed, 115 insertions(+), 3 deletions(-)
>
> diff --git a/crypto/hmac-nettle.c b/crypto/hmac-nettle.c
> index 7a9cd2e..a082bc0 100644
> --- a/crypto/hmac-nettle.c
> +++ b/crypto/hmac-nettle.c
> @@ -15,9 +15,66 @@
> #include "qemu/osdep.h"
> #include "qapi/error.h"
> #include "crypto/hmac.h"
> +#include <nettle/hmac.h>
> +
> +typedef void (*qcrypto_nettle_hmac_setkey)(void *ctx,
> + size_t key_length, const uint8_t *key);
> +
> +typedef void (*qcrypto_nettle_hmac_update)(void *ctx,
> + size_t length, const uint8_t *data);
> +
> +typedef void (*qcrypto_nettle_hmac_digest)(void *ctx,
> + size_t length, uint8_t *digest);
> +
> +typedef struct QCryptoHmacNettle QCryptoHmacNettle;
> +struct QCryptoHmacNettle {
> + union qcrypto_nettle_hmac_ctx {
> + struct hmac_md5_ctx md5_ctx;
> + struct hmac_sha1_ctx sha1_ctx;
> + struct hmac_sha256_ctx sha256_ctx;
> + struct hmac_sha512_ctx sha512_ctx;
> + } u;
> +};
> +
> +struct qcrypto_nettle_hmac_alg {
> + qcrypto_nettle_hmac_setkey setkey;
> + qcrypto_nettle_hmac_update update;
> + qcrypto_nettle_hmac_digest digest;
> + size_t len;
> +} qcrypto_hmac_alg_map[QCRYPTO_HMAC_ALG__MAX] = {
> + [QCRYPTO_HMAC_ALG_MD5] = {
> + .setkey = (qcrypto_nettle_hmac_setkey)hmac_md5_set_key,
> + .update = (qcrypto_nettle_hmac_update)hmac_md5_update,
> + .digest = (qcrypto_nettle_hmac_digest)hmac_md5_digest,
> + .len = MD5_DIGEST_SIZE,
> + },
> + [QCRYPTO_HMAC_ALG_SHA1] = {
> + .setkey = (qcrypto_nettle_hmac_setkey)hmac_sha1_set_key,
> + .update = (qcrypto_nettle_hmac_update)hmac_sha1_update,
> + .digest = (qcrypto_nettle_hmac_digest)hmac_sha1_digest,
> + .len = SHA1_DIGEST_SIZE,
> + },
> + [QCRYPTO_HMAC_ALG_SHA256] = {
> + .setkey = (qcrypto_nettle_hmac_setkey)hmac_sha256_set_key,
> + .update = (qcrypto_nettle_hmac_update)hmac_sha256_update,
> + .digest = (qcrypto_nettle_hmac_digest)hmac_sha256_digest,
> + .len = SHA256_DIGEST_SIZE,
> + },
> + [QCRYPTO_HMAC_ALG_SHA512] = {
> + .setkey = (qcrypto_nettle_hmac_setkey)hmac_sha512_set_key,
> + .update = (qcrypto_nettle_hmac_update)hmac_sha512_update,
> + .digest = (qcrypto_nettle_hmac_digest)hmac_sha512_digest,
> + .len = SHA512_DIGEST_SIZE,
> + },
> +};
Can you implement all 7 hash algorithms supported by QEMU.
Regards,
Daniel
--
|: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :|
|: http://libvirt.org -o- http://virt-manager.org :|
|: http://entangle-photo.org -o- http://search.cpan.org/~danberr/ :|
- [Qemu-devel] [PATCH for-2.9 v2 0/7] crypto: add HMAC algorithms support, Longpeng(Mike), 2016/12/12
- [Qemu-devel] [PATCH for-2.9 v2 1/7] qapi: crypto: add defination about HMAC algorithms, Longpeng(Mike), 2016/12/12
- [Qemu-devel] [PATCH for-2.9 v2 5/7] crypto: support HMAC algorithms based on glibc, Longpeng(Mike), 2016/12/12
- [Qemu-devel] [PATCH for-2.9 v2 4/7] crypto: support HMAC algorithms based on libgcrypt, Longpeng(Mike), 2016/12/12
- [Qemu-devel] [PATCH for-2.9 v2 6/7] crypto: support HMAC algorithms based on nettle, Longpeng(Mike), 2016/12/12
- Re: [Qemu-devel] [PATCH for-2.9 v2 6/7] crypto: support HMAC algorithms based on nettle,
Daniel P. Berrange <=
- [Qemu-devel] [PATCH for-2.9 v2 2/7] crypto: add HMAC algorithms framework, Longpeng(Mike), 2016/12/12
- [Qemu-devel] [PATCH for-2.9 v2 3/7] configure: add CONFIG_GCRYPT_SUPPORT_HMAC item, Longpeng(Mike), 2016/12/12
- [Qemu-devel] [PATCH for-2.9 v2 7/7] crypto: add HMAC algorithms testcases, Longpeng(Mike), 2016/12/12