[dpdk-dev] [PATCH v2 1/3] crypto/aesni_mb: add DES support
Radu Nicolau
radu.nicolau at intel.com
Mon Sep 18 12:56:04 CEST 2017
On 9/15/2017 3:09 AM, Pablo de Lara wrote:
> The Multi-buffer library now supports DES-CBC
> and DES-DOCSISBPI algorithms, so this commit
> extends adds support for them in the PMD.
>
> Signed-off-by: Pablo de Lara <pablo.de.lara.guarch at intel.com>
> Acked-by: Fan Zhang <roy.fan.zhang at intel.com>
> ---
> doc/guides/cryptodevs/aesni_mb.rst | 2 +
> doc/guides/cryptodevs/features/aesni_mb.ini | 3 ++
> doc/guides/rel_notes/release_17_11.rst | 7 +++
> drivers/crypto/aesni_mb/rte_aesni_mb_pmd.c | 74 ++++++++++++++++++--------
> drivers/crypto/aesni_mb/rte_aesni_mb_pmd_ops.c | 42 +++++++++++++++
> test/test/test_cryptodev.c | 42 +++++++++++++++
> test/test/test_cryptodev_des_test_vectors.h | 24 ++++++---
> 7 files changed, 163 insertions(+), 31 deletions(-)
>
> <snip>
>
> +#include <des.h>
> +
> #include <rte_common.h>
> #include <rte_hexdump.h>
> #include <rte_cryptodev.h>
> @@ -188,6 +190,7 @@ aesni_mb_set_session_cipher_parameters(const struct aesni_mb_op_fns *mb_ops,
> struct aesni_mb_session *sess,
> const struct rte_crypto_sym_xform *xform)
> {
> + uint8_t is_aes;
Nitpicking: Maybe initialize with zero and remove is_aes = 0; from the
switch body?
> aes_keyexp_t aes_keyexp_fn;
>
> if (xform == NULL) {
> @@ -217,45 +220,70 @@ aesni_mb_set_session_cipher_parameters(const struct aesni_mb_op_fns *mb_ops,
> switch (xform->cipher.algo) {
> case RTE_CRYPTO_CIPHER_AES_CBC:
> sess->cipher.mode = CBC;
> + is_aes = 1;
> break;
> case RTE_CRYPTO_CIPHER_AES_CTR:
> sess->cipher.mode = CNTR;
> + is_aes = 1;
> break;
> case RTE_CRYPTO_CIPHER_AES_DOCSISBPI:
> sess->cipher.mode = DOCSIS_SEC_BPI;
> + is_aes = 1;
> break;
> - default:
> - MB_LOG_ERR("Unsupported cipher mode parameter");
> - return -ENOTSUP;
> - }
> -
> - /* Check key length and choose key expansion function */
> - switch (xform->cipher.key.length) {
> - case AES_128_BYTES:
> - sess->cipher.key_length_in_bytes = AES_128_BYTES;
> - aes_keyexp_fn = mb_ops->aux.keyexp.aes128;
> + case RTE_CRYPTO_CIPHER_DES_CBC:
> + sess->cipher.mode = DES;
> + is_aes = 0;
> break;
> - case AES_192_BYTES:
> - sess->cipher.key_length_in_bytes = AES_192_BYTES;
> - aes_keyexp_fn = mb_ops->aux.keyexp.aes192;
> - break;
> - case AES_256_BYTES:
> - sess->cipher.key_length_in_bytes = AES_256_BYTES;
> - aes_keyexp_fn = mb_ops->aux.keyexp.aes256;
> + case RTE_CRYPTO_CIPHER_DES_DOCSISBPI:
> + sess->cipher.mode = DOCSIS_DES;
> + is_aes = 0;
> break;
> default:
> - MB_LOG_ERR("Invalid cipher key length");
> - return -EINVAL;
> + MB_LOG_ERR("Unsupported cipher mode parameter");
> + return -ENOTSUP;
> }
> <snip>
Reviewed-by: Radu Nicolau <radu.nicolau at intel.com>
More information about the dev
mailing list