crypto-api: support SIV ciphers with encryptv2 functions
The AES-SIV ciphers have a peculiarity that it prepends authentication tag to the generated ciphertext rather than appending. The gnutls_aead_cipher_encryptv2 previously was not able to cope with that and returned wrong authentication tag. This patch adds a new cipher flag GNUTLS_CIPHER_FLAG_TAG_PREFIXED to indicate it.
This also adds a new API gnutls_aead_cipher_set_key to reset key of the context, per request in #1217 (closed).
Fixes: #1312 (closed), #1217 (closed)
Checklist
-
Commits have Signed-off-by:
with name/author being identical to the commit author -
Code modified for feature -
Test suite updated with functionality tests -
Test suite updated with negative tests -
Documentation updated / NEWS entry present (for non-trivial changes) -
CI timeout is 2h or higher (see Settings/CICD/General pipelines/Timeout)
Reviewer's checklist:
-
Any issues marked for closing are addressed -
There is a test suite reasonably covering new functionality or modifications -
Function naming, parameters, return values, types, etc., are consistent and according to CONTRIBUTION.md
-
This feature/change has adequate documentation added -
No obvious mistakes in the code