Hi Herbert,
Is copy of AAD data to destination buffer when dst != src is mandatory
requirements for crypto drivers or we can skip this copy. Actually I
am bit confused, In following link Stephen had mentioned caller will
memcpy the AAD to destination buffer but authenc.c also copies the AAD
to dest. buffer.
http://www.chronox.de/libkcapi/html/ch02s02.html
Secondly When AAD data remains unchanged in AEAD encryption/decryption
operations. Why we copy the same data to destination buffer?
Thanks & Regards
Harsh Jain
On Fri, Sep 02, 2016 at 08:05:04PM +0530, Harsh Jain wrote:
> Hi Herbert,
>
> Is copy of AAD data to destination buffer when dst != src is mandatory
> requirements for crypto drivers or we can skip this copy. Actually I
> am bit confused, In following link Stephen had mentioned caller will
> memcpy the AAD to destination buffer but authenc.c also copies the AAD
> to dest. buffer.
>
> http://www.chronox.de/libkcapi/html/ch02s02.html
It has to be copied if src != dst.
> Secondly When AAD data remains unchanged in AEAD encryption/decryption
> operations. Why we copy the same data to destination buffer?
This greatly simplifies the implementation of the AEAD algorithms
because we can throw away src and use the dst only. For example,
authenc hashes the AAD and ciphertext. If we didn't force the
copy it would have to hash them separately, meaning the use of
the slow init/update/final interface. With the copy it can use
the digest interface.
Cheers,
--
Email: Herbert Xu <[email protected]>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt
Thanks Herbert for clarification. It means Libkcapi documentation
needs update of chapter "Aead Cipher API".
Regards
Harsh Jain
On Fri, Sep 2, 2016 at 8:12 PM, Herbert Xu <[email protected]> wrote:
> On Fri, Sep 02, 2016 at 08:05:04PM +0530, Harsh Jain wrote:
>> Hi Herbert,
>>
>> Is copy of AAD data to destination buffer when dst != src is mandatory
>> requirements for crypto drivers or we can skip this copy. Actually I
>> am bit confused, In following link Stephen had mentioned caller will
>> memcpy the AAD to destination buffer but authenc.c also copies the AAD
>> to dest. buffer.
>>
>> http://www.chronox.de/libkcapi/html/ch02s02.html
>
> It has to be copied if src != dst.
>
>> Secondly When AAD data remains unchanged in AEAD encryption/decryption
>> operations. Why we copy the same data to destination buffer?
>
> This greatly simplifies the implementation of the AEAD algorithms
> because we can throw away src and use the dst only. For example,
> authenc hashes the AAD and ciphertext. If we didn't force the
> copy it would have to hash them separately, meaning the use of
> the slow init/update/final interface. With the copy it can use
> the digest interface.
>
> Cheers,
> --
> Email: Herbert Xu <[email protected]>
> Home Page: http://gondor.apana.org.au/~herbert/
> PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt
Am Samstag, 3. September 2016, 10:45:08 CEST schrieb Harsh Jain:
Hi Harsh,
> Thanks Herbert for clarification. It means Libkcapi documentation
> needs update of chapter "Aead Cipher API".
Fixed, I will release a new version shortly.
Thanks for the pointer.
Ciao
Stephan