crypto/mvsam: set session params for AES-GCM mode
Checks
Commit Message
From: Dana Vardi <danat@marvell.com>
For AEAD session and AES-GCM mode, IV offset will
set to include the Nonce.
In addition, the following operations order will define:
first encryption and then authentication.
Fixes: 8a61c83af2fa ("crypto/mrvl: add mrvl crypto driver")
Cc: stable@dpdk.org
Signed-off-by: Dana Vardi <danat@marvell.com>
Reviewed-by: Liron Himi <lironh@marvell.com>
Tested-by: Liron Himi <lironh@marvell.com>
---
drivers/crypto/mvsam/rte_mrvl_pmd.c | 8 ++++++++
1 file changed, 8 insertions(+)
Comments
> For AEAD session and AES-GCM mode, IV offset will
> set to include the Nonce.
> In addition, the following operations order will define:
> first encryption and then authentication.
>
> Fixes: 8a61c83af2fa ("crypto/mrvl: add mrvl crypto driver")
> Cc: stable@dpdk.org
>
> Signed-off-by: Dana Vardi <danat@marvell.com>
> Reviewed-by: Liron Himi <lironh@marvell.com>
> Tested-by: Liron Himi <lironh@marvell.com>
> ---
Applied to dpdk-next-crypto
Thanks.
@@ -361,6 +361,14 @@ mrvl_crypto_set_aead_session_parameters(struct mrvl_crypto_session *sess,
sess->sam_sess_params.cipher_mode =
aead_map[aead_xform->aead.algo].cipher_mode;
+ if (sess->sam_sess_params.cipher_mode == SAM_CIPHER_GCM) {
+ /* IV must include nonce for all counter modes */
+ sess->cipher_iv_offset = aead_xform->cipher.iv.offset;
+
+ /* Set order of authentication then encryption to 0 in GCM */
+ sess->sam_sess_params.u.basic.auth_then_encrypt = 0;
+ }
+
/* Assume IV will be passed together with data. */
sess->sam_sess_params.cipher_iv = NULL;