Skip to content

Commit

Permalink
crypto/ipsec_mb: fix GMAC parameters setting
Browse files Browse the repository at this point in the history
[ upstream commit 837269c ]
AES-GMAC requires plaintext length to be 0 when using AES-GCM,
so only AAD data is used.

Fixes: a501609 ("crypto/ipsec_mb: fix length and offset settings")

Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Acked-by: Fan Zhang <roy.fan.zhang@intel.com>
Acked-by: Radu Nicolau <radu.nicolau@intel.com>
Tested-by: Radu Nicolau <radu.nicolau@intel.com>
  • Loading branch information
pablodelara authored and bluca committed Apr 4, 2022
1 parent 0fb580b commit 3a9281f
Showing 1 changed file with 14 additions and 3 deletions.
17 changes: 14 additions & 3 deletions drivers/crypto/aesni_mb/rte_aesni_mb_pmd.c
Original file line number Diff line number Diff line change
Expand Up @@ -1438,9 +1438,9 @@ set_mb_job_params(JOB_AES_HMAC *job, struct aesni_mb_qp *qp,
op->sym->aead.data.offset;
job->msg_len_to_hash_in_bytes =
op->sym->aead.data.length;
} else {
job->msg_len_to_cipher_in_bytes = 0;
} else { /* AES-GMAC only, only AAD used */
job->msg_len_to_hash_in_bytes = 0;
job->hash_start_src_offset_in_bytes = 0;
}

job->iv = rte_crypto_op_ctod_offset(op, uint8_t *,
Expand Down Expand Up @@ -1524,8 +1524,19 @@ set_mb_job_params(JOB_AES_HMAC *job, struct aesni_mb_qp *qp,
op->sym->cipher.data.length;
break;
#endif
case CCM:
case GCM:
if (session->cipher.mode == NULL_CIPHER) {
/* AES-GMAC only (only AAD used) */
job->msg_len_to_cipher_in_bytes = 0;
job->cipher_start_src_offset_in_bytes = 0;
} else {
job->cipher_start_src_offset_in_bytes =
op->sym->aead.data.offset;
job->msg_len_to_cipher_in_bytes =
op->sym->aead.data.length;
}
break;
case CCM:
#if IMB_VERSION(0, 54, 3) <= IMB_VERSION_NUM
case IMB_CIPHER_CHACHA20_POLY1305:
#endif
Expand Down

0 comments on commit 3a9281f

Please sign in to comment.