From a141f0c7e7a6fb93f943b6351005514b06f1ec25 Mon Sep 17 00:00:00 2001 From: Pablo de Lara Date: Fri, 9 Oct 2020 12:18:59 +0000 Subject: [PATCH] crypto/aesni_mb: support AES-CCM-256 This patch adds support for AES-CCM-256 when using AESNI-MB Signed-off-by: Pablo de Lara --- doc/guides/cryptodevs/features/aesni_mb.ini | 1 + doc/guides/rel_notes/release_20_11.rst | 1 + drivers/crypto/aesni_mb/rte_aesni_mb_pmd.c | 6 ++++++ drivers/crypto/aesni_mb/rte_aesni_mb_pmd_ops.c | 5 +++++ 4 files changed, 13 insertions(+) diff --git a/doc/guides/cryptodevs/features/aesni_mb.ini b/doc/guides/cryptodevs/features/aesni_mb.ini index 78d2dbdabe..1883217868 100644 --- a/doc/guides/cryptodevs/features/aesni_mb.ini +++ b/doc/guides/cryptodevs/features/aesni_mb.ini @@ -65,6 +65,7 @@ KASUMI F9 = Y ; [AEAD] AES CCM (128) = Y +AES CCM (256) = Y AES GCM (128) = Y AES GCM (192) = Y AES GCM (256) = Y diff --git a/doc/guides/rel_notes/release_20_11.rst b/doc/guides/rel_notes/release_20_11.rst index 097b255d1a..c07eadcbcc 100644 --- a/doc/guides/rel_notes/release_20_11.rst +++ b/doc/guides/rel_notes/release_20_11.rst @@ -159,6 +159,7 @@ New Features * Added support for SNOW3G-UEA2/UIA2 algorithms. * Added support for KASUMI-F8/F9 algorithms. * Added support for Chacha20-Poly1305. + * Added support for AES-256 CCM algorithm. * **Updated the aesni_gcm crypto PMD.** diff --git a/drivers/crypto/aesni_mb/rte_aesni_mb_pmd.c b/drivers/crypto/aesni_mb/rte_aesni_mb_pmd.c index 42c23201ad..db09109159 100644 --- a/drivers/crypto/aesni_mb/rte_aesni_mb_pmd.c +++ b/drivers/crypto/aesni_mb/rte_aesni_mb_pmd.c @@ -686,6 +686,12 @@ aesni_mb_set_session_aead_parameters(const MB_MGR *mb_mgr, sess->cipher.expanded_aes_keys.encode, sess->cipher.expanded_aes_keys.decode); break; + case AES_256_BYTES: + sess->cipher.key_length_in_bytes = AES_256_BYTES; + IMB_AES_KEYEXP_256(mb_mgr, xform->aead.key.data, + sess->cipher.expanded_aes_keys.encode, + sess->cipher.expanded_aes_keys.decode); + break; default: AESNI_MB_LOG(ERR, "Invalid cipher key length"); return -EINVAL; diff --git a/drivers/crypto/aesni_mb/rte_aesni_mb_pmd_ops.c b/drivers/crypto/aesni_mb/rte_aesni_mb_pmd_ops.c index 81d3332dfe..fc7fdfec8e 100644 --- a/drivers/crypto/aesni_mb/rte_aesni_mb_pmd_ops.c +++ b/drivers/crypto/aesni_mb/rte_aesni_mb_pmd_ops.c @@ -400,8 +400,13 @@ static const struct rte_cryptodev_capabilities aesni_mb_pmd_capabilities[] = { .block_size = 16, .key_size = { .min = 16, +#if IMB_VERSION(0, 54, 2) <= IMB_VERSION_NUM + .max = 32, + .increment = 16 +#else .max = 16, .increment = 0 +#endif }, .digest_size = { .min = 4, -- 2.20.1