On 14-02-2018 18:22, Stephan Mueller wrote:
> Am Mittwoch, 14. Februar 2018, 06:43:53 CET schrieb Harsh Jain:
> Hi Harsh,
>> Patch set is working fine with chelsio Driver.
> Thank you.
>> Do we really need IV locking mechanism for AEAD algo because AEAD algo's
>> don't support Partial mode operation and Driver are not updating(atleast
>> Chelsio) IV's on AEAD request completions.
> Yes, I think we would need it. It is technically possible to have multiple
> IOCBs for AEAD ciphers. Even though your implementation may not write the IV
> back, others may do that. At least I do not see a guarantee that the IV is
> *not* written back by a driver.
There is no use of writing IV back in AEAD algo till Framework starts
supporting Partial mode.
Even if Driver starts updating IV for AEAD, Multiple IOCB's in both cases will
yield wrong results only.
Case 1 : If we have AEAD IV serialization applied, Encryption will be wrong
if same IV gets used.
Case 2: If we do not have IV serialization for AEAD. Encryption will be fine
but user will have multiple Authentication tag (that too with final block
processed). Its like 2nd Block encryption is based on IV received from 1st
block and Authentication Tag value is based on 2nd block content only.
> In case your driver does not write the IV back and thus does not need to
> serialize, the driver can report CRYPTO_ALG_SERIALIZES_IV_ACCESS. In this
> case, the higher level functions would not serialize as the driver serializes
> the requests (or the driver deems it appropriate that no serialization is
> needed as is the case with your driver).