From: Tadeusz Struk <tadeusz.struk@intel.com>
To: Herbert Xu <herbert@gondor.apana.org.au>
Cc: Stephan Mueller <smueller@chronox.de>, linux-crypto@vger.kernel.org
Subject: Re: [PATCH] crypto: aesni - make driver-gcm-aes-aesni helper a proper aead alg
Date: Mon, 26 Jan 2015 08:58:33 -0800 [thread overview]
Message-ID: <54C67239.6010909@intel.com> (raw)
In-Reply-To: <20150126001003.GA18391@gondor.apana.org.au>
On 01/25/2015 04:10 PM, Herbert Xu wrote:
> On Sun, Jan 25, 2015 at 08:26:50AM -0800, Tadeusz Struk wrote:
>> > Hi Stephan,
>> > On 01/25/2015 12:58 AM, Stephan Mueller wrote:
>>>> > >> +static int rfc4106_set_key(struct crypto_aead *parent, const u8 *key,
>>>>> > >> > + unsigned int key_len)
>>>>> > >> > {
>>>>> > >> > struct aesni_rfc4106_gcm_ctx *ctx = aesni_rfc4106_gcm_ctx_get(parent);
>>>>> > >> > struct crypto_aead *cryptd_child = cryptd_aead_child(ctx->cryptd_tfm);
>>>>> > >> > + struct aesni_rfc4106_gcm_ctx *child_ctx =
>>>>> > >> > + aesni_rfc4106_gcm_ctx_get(cryptd_child);
>>>>> > >> > + int ret;
>>>>> > >> >
>>>>> > >> > + ret = common_rfc4106_set_key(parent, key, key_len);
>>> > > Shouldn't that one be crypto_aead_setkey, i.e using the regular crypto API
>>> > > instead of internal calls?
>> >
>> > No, I don't think so. I think that would create an infinite loop.
> So why does it work for ablk_helper but not for aead?
Here we have two instances of crypto_aead algorithm, one the
rfc4106(gcm(aes)), whose setkey points to rfc4106_set_key(), and the
internal helper __gcm-aes-aesni (wrapped in by the cryptd interface),
whose setkey points to common_rfc4106_set_key(). If we would call
crypto_aead_setkey() on the parent from rfc4106_set_key() then we would
invoke the same rfc4106_set_key() function. It would be ok to call the
crypto_aead_setkey() on the child, but what's the point?
What we really want to do is to setup the context (authsize and key) for
both the top level rfc4106(gcm(aes)) and the helper __gcm-aes-aesni. We
can do it by calling the internal function directly or by the regular
crypto API crypto_aead_setkey()/set_authsize() on the child, but I don't
see any difference or benefit of it.
Hope that make sense.
Thanks,
Tadeusz
next prev parent reply other threads:[~2015-01-26 17:02 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-01-23 22:33 [PATCH] crypto: aesni - make driver-gcm-aes-aesni helper a proper aead alg Tadeusz Struk
2015-01-25 8:58 ` Stephan Mueller
2015-01-25 16:26 ` Tadeusz Struk
2015-01-26 0:10 ` Herbert Xu
2015-01-26 16:58 ` Tadeusz Struk [this message]
2015-01-26 19:20 ` Stephan Mueller
2015-01-26 20:38 ` Tadeusz Struk
-- strict thread matches above, loose matches on Subject: below --
2015-02-06 18:25 Tadeusz Struk
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=54C67239.6010909@intel.com \
--to=tadeusz.struk@intel.com \
--cc=herbert@gondor.apana.org.au \
--cc=linux-crypto@vger.kernel.org \
--cc=smueller@chronox.de \
/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.