From e3d36d18c1ae30438fa2aa91aee4f14c43688a6e Mon Sep 17 00:00:00 2001 From: Gabriel Oginski Date: Thu, 25 Nov 2021 08:21:41 +0000 Subject: dpdk-cryptodev: add support chacha20-poly1305 Originally cryptodev doesn't support chacha20-poly1305 with aad length 0. This patch add support in cryptodev for chacha20-poly1305 with aad length 0. This length is using in Wireguard. Type: improvement Signed-off-by: Gabriel Oginski Change-Id: I0608920bb557d7d071e7f9f37c80cf50bad81dcc --- src/plugins/dpdk/cryptodev/cryptodev.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) (limited to 'src/plugins/dpdk/cryptodev/cryptodev.c') diff --git a/src/plugins/dpdk/cryptodev/cryptodev.c b/src/plugins/dpdk/cryptodev/cryptodev.c index f9e986f9867..c2b8a080599 100644 --- a/src/plugins/dpdk/cryptodev/cryptodev.c +++ b/src/plugins/dpdk/cryptodev/cryptodev.c @@ -51,12 +51,19 @@ prepare_aead_xform (struct rte_crypto_sym_xform *xform, xform->type = RTE_CRYPTO_SYM_XFORM_AEAD; xform->next = 0; - if (key->alg != VNET_CRYPTO_ALG_AES_128_GCM && - key->alg != VNET_CRYPTO_ALG_AES_192_GCM && - key->alg != VNET_CRYPTO_ALG_AES_256_GCM) + if (key->alg == VNET_CRYPTO_ALG_AES_128_GCM || + key->alg == VNET_CRYPTO_ALG_AES_192_GCM || + key->alg == VNET_CRYPTO_ALG_AES_256_GCM) + { + aead_xform->algo = RTE_CRYPTO_AEAD_AES_GCM; + } + else if (key->alg == VNET_CRYPTO_ALG_CHACHA20_POLY1305) + { + aead_xform->algo = RTE_CRYPTO_AEAD_CHACHA20_POLY1305; + } + else return -1; - aead_xform->algo = RTE_CRYPTO_AEAD_AES_GCM; aead_xform->op = (op_type == CRYPTODEV_OP_TYPE_ENCRYPT) ? RTE_CRYPTO_AEAD_OP_ENCRYPT : RTE_CRYPTO_AEAD_OP_DECRYPT; aead_xform->aad_length = aad_len; -- cgit 1.2.3-korg