All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Longpeng (Mike)" <longpeng2@huawei.com>
To: "Gonglei (Arei)" <arei.gonglei@huawei.com>
Cc: "berrange@redhat.com" <berrange@redhat.com>,
	"Huangweidong (C)" <weidong.huang@huawei.com>,
	"armbru@redhat.com" <armbru@redhat.com>,
	"eblake@redhat.com" <eblake@redhat.com>,
	"mst@redhat.com" <mst@redhat.com>,
	"qemu-devel@nongnu.org" <qemu-devel@nongnu.org>
Subject: Re: [Qemu-devel] [PATCH v2 for-2.10 11/18] crypto: hmac: add hmac driver framework
Date: Sat, 22 Apr 2017 09:26:58 +0800	[thread overview]
Message-ID: <58FAB162.2020202@huawei.com> (raw)
In-Reply-To: <33183CC9F5247A488A2544077AF19020DA238AEC@DGGEMA505-MBS.china.huawei.com>



On 2017/4/21 20:25, Gonglei (Arei) wrote:

> 
> 
>> -----Original Message-----
>> From: longpeng
>> Sent: Monday, April 17, 2017 9:33 AM
>> To: berrange@redhat.com
>> Cc: Gonglei (Arei); Huangweidong (C); armbru@redhat.com;
>> eblake@redhat.com; mst@redhat.com; qemu-devel@nongnu.org; longpeng
>> Subject: [PATCH v2 for-2.10 11/18] crypto: hmac: add hmac driver framework
>>
>> 1) makes the public APIs in hmac-nettle/gcrypt/glib static,
>>    and rename them with "nettle/gcrypt/glib" prefix.
>>
>> 2) introduces hmac framework, including QCryptoHmacDriver
>>    and new public APIs.
>>
>> Signed-off-by: Longpeng(Mike) <longpeng2@huawei.com>
>> ---
>>  crypto/hmac-gcrypt.c  | 51 ++++++++++++-----------------------
>>  crypto/hmac-glib.c    | 75 +++++++++++++++++++++------------------------------
>>  crypto/hmac-nettle.c  | 52 ++++++++++++-----------------------
>>  crypto/hmac.c         | 44 ++++++++++++++++++++++++++++++
>>  crypto/hmacpriv.h     | 36 +++++++++++++++++++++++++
>>  include/crypto/hmac.h |  1 +
>>  6 files changed, 145 insertions(+), 114 deletions(-)
>>  create mode 100644 crypto/hmacpriv.h
>>
>> diff --git a/crypto/hmac-gcrypt.c b/crypto/hmac-gcrypt.c
>> index 42489f3..76ca61b 100644
>> --- a/crypto/hmac-gcrypt.c
>> +++ b/crypto/hmac-gcrypt.c
>> @@ -15,6 +15,7 @@
>>  #include "qemu/osdep.h"
>>  #include "qapi/error.h"
>>  #include "crypto/hmac.h"
>> +#include "hmacpriv.h"
>>  #include <gcrypt.h>
>>
>>  static int qcrypto_hmac_alg_map[QCRYPTO_HASH_ALG__MAX] = {
>> @@ -42,10 +43,9 @@ bool qcrypto_hmac_supports(QCryptoHashAlgorithm
>> alg)
>>      return false;
>>  }
>>
>> -static QCryptoHmacGcrypt *
>> -qcrypto_hmac_ctx_new(QCryptoHashAlgorithm alg,
>> -                     const uint8_t *key, size_t nkey,
>> -                     Error **errp)
>> +void *qcrypto_hmac_ctx_new(QCryptoHashAlgorithm alg,
>> +                           const uint8_t *key, size_t nkey,
>> +                           Error **errp)
> 
> Why do this change?
> 


pls see below :)

>>  {
>>      QCryptoHmacGcrypt *ctx;

>> +
>> +struct QCryptoHmacDriver {
>> +    int (*hmac_bytesv)(QCryptoHmac *hmac,
>> +                       const struct iovec *iov,
>> +                       size_t niov,
>> +                       uint8_t **result,
>> +                       size_t *resultlen,
>> +                       Error **errp);
>> +
>> +    void (*hmac_free)(QCryptoHmac *hmac);
>> +};
>> +
>> +extern void *qcrypto_hmac_ctx_new(QCryptoHashAlgorithm alg,
>> +                                  const uint8_t *key, size_t nkey,
>> +                                  Error **errp);
> 
> I think the method of cipher is fine.
> 


In cipher.c, we can see this:

#ifdef CONFIG_GCRYPT
#include "crypto/cipher-gcrypt.c"
#elif defined CONFIG_NETTLE
#include "crypto/cipher-nettle.c"
#else
#include "crypto/cipher-builtin.c"
#endif

it included cipher-*.c, so cipher.c can access the static methods in cipher-*.c
directly.

But in hmac.c, it just included hmac.h, it cannot access the static methods in
hmac-*.c, so we must change qcrypto_hmac_ctx_new from 'static
qcrypto_hmac_ctx_new *' to 'void *', and declare it in hmac.h.


> 
>> +extern QCryptoHmacDriver qcrypto_hmac_lib_driver;
>> +
>> +#endif
>> diff --git a/include/crypto/hmac.h b/include/crypto/hmac.h
>> index 0d3acd7..5e88905 100644
>> --- a/include/crypto/hmac.h
>> +++ b/include/crypto/hmac.h
>> @@ -18,6 +18,7 @@ typedef struct QCryptoHmac QCryptoHmac;
>>  struct QCryptoHmac {
>>      QCryptoHashAlgorithm alg;
>>      void *opaque;
>> +    void *driver;
>>  };
>>
>>  /**
>> --
>> 1.8.3.1
>>
> 
> .
> 


-- 
Regards,
Longpeng(Mike)

  reply	other threads:[~2017-04-22  1:27 UTC|newest]

Thread overview: 43+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-04-17  1:33 [Qemu-devel] [PATCH v2 for-2.10 00/18] crypto: add afalg-backend support Longpeng(Mike)
2017-04-17  1:33 ` [Qemu-devel] [PATCH v2 for-2.10 01/18] crypto: cipher: introduce context free function Longpeng(Mike)
2017-04-21 11:55   ` Gonglei (Arei)
2017-04-17  1:33 ` [Qemu-devel] [PATCH v2 for-2.10 02/18] crypto: cipher: introduce qcrypto_cipher_ctx_new for gcrypt-backend Longpeng(Mike)
2017-04-21 11:56   ` Gonglei (Arei)
2017-04-17  1:33 ` [Qemu-devel] [PATCH v2 for-2.10 03/18] crypto: cipher: introduce qcrypto_cipher_ctx_new for nettle-backend Longpeng(Mike)
2017-04-21 11:56   ` Gonglei (Arei)
2017-04-17  1:33 ` [Qemu-devel] [PATCH v2 for-2.10 04/18] crypto: cipher: introduce qcrypto_cipher_ctx_new for builtin-backend Longpeng(Mike)
2017-04-21 11:56   ` Gonglei (Arei)
2017-04-17  1:33 ` [Qemu-devel] [PATCH v2 for-2.10 05/18] crypto: cipher: add cipher driver framework Longpeng(Mike)
2017-04-21 12:06   ` Gonglei (Arei)
2017-04-17  1:33 ` [Qemu-devel] [PATCH v2 for-2.10 06/18] crypto: hash: add hash " Longpeng(Mike)
2017-04-21 12:09   ` Gonglei (Arei)
2017-04-17  1:33 ` [Qemu-devel] [PATCH v2 for-2.10 07/18] crypto: hmac: move crypto/hmac.h into include/crypto/ Longpeng(Mike)
2017-04-17 13:35   ` Philippe Mathieu-Daudé
2017-04-21 12:11   ` Gonglei (Arei)
2017-04-17  1:33 ` [Qemu-devel] [PATCH v2 for-2.10 08/18] crypto: hmac: introduce qcrypto_hmac_ctx_new for gcrypt-backend Longpeng(Mike)
2017-04-21 12:15   ` Gonglei (Arei)
2017-04-17  1:33 ` [Qemu-devel] [PATCH v2 for-2.10 09/18] crypto: hmac: introduce qcrypto_hmac_ctx_new for nettle-backend Longpeng(Mike)
2017-04-21 12:16   ` Gonglei (Arei)
2017-04-17  1:33 ` [Qemu-devel] [PATCH v2 for-2.10 10/18] crypto: hmac: introduce qcrypto_hmac_ctx_new for glib-backend Longpeng(Mike)
2017-04-21 12:16   ` Gonglei (Arei)
2017-04-17  1:33 ` [Qemu-devel] [PATCH v2 for-2.10 11/18] crypto: hmac: add hmac driver framework Longpeng(Mike)
2017-04-21 12:25   ` Gonglei (Arei)
2017-04-22  1:26     ` Longpeng (Mike) [this message]
2017-04-17  1:33 ` [Qemu-devel] [PATCH v2 for-2.10 12/18] crypto: introduce some common functions for af_alg backend Longpeng(Mike)
2017-04-21 12:36   ` Gonglei (Arei)
2017-04-22  1:29     ` Longpeng (Mike)
2017-04-17  1:33 ` [Qemu-devel] [PATCH v2 for-2.10 13/18] crypto: cipher: add afalg-backend cipher support Longpeng(Mike)
2017-04-21 12:59   ` Gonglei (Arei)
2017-04-22  1:36     ` Longpeng (Mike)
2017-04-22  1:51       ` Gonglei (Arei)
2017-04-22  2:04         ` Longpeng (Mike)
2017-04-17  1:33 ` [Qemu-devel] [PATCH v2 for-2.10 14/18] crypto: hash: add afalg-backend hash support Longpeng(Mike)
2017-04-21 13:01   ` Gonglei (Arei)
2017-04-22  1:37     ` Longpeng (Mike)
2017-04-17  1:33 ` [Qemu-devel] [PATCH v2 for-2.10 15/18] crypto: hmac: add af_alg hmac support Longpeng(Mike)
2017-04-17  1:33 ` [Qemu-devel] [PATCH v2 for-2.10 16/18] tests: crypto: add cipher speed benchmark support Longpeng(Mike)
2017-04-17  1:33 ` [Qemu-devel] [PATCH v2 for-2.10 17/18] tests: crypto: add hash " Longpeng(Mike)
2017-04-17  1:33 ` [Qemu-devel] [PATCH v2 for-2.10 18/18] tests: crypto: add hmac " Longpeng(Mike)
2017-04-17  2:12 ` [Qemu-devel] [PATCH v2 for-2.10 00/18] crypto: add afalg-backend support no-reply
2017-04-17  2:31   ` Longpeng (Mike)
2017-04-21  0:56 ` Longpeng (Mike)

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=58FAB162.2020202@huawei.com \
    --to=longpeng2@huawei.com \
    --cc=arei.gonglei@huawei.com \
    --cc=armbru@redhat.com \
    --cc=berrange@redhat.com \
    --cc=eblake@redhat.com \
    --cc=mst@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=weidong.huang@huawei.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.