From 4428eda8bb756a487a05a3e6c86da0b2de7227ae Mon Sep 17 00:00:00 2001 From: Pablo de Lara Date: Sun, 2 Jul 2017 06:41:27 +0100 Subject: [PATCH] cryptodev: remove AAD from authentication structure Now that AAD is only used in AEAD algorithms, there is no need to keep AAD in the authentication structure. Signed-off-by: Pablo de Lara Acked-by: Declan Doherty Acked-by: Akhil Goyal Acked-by: Fiona Trahe --- app/test-crypto-perf/cperf_ops.c | 2 -- doc/guides/prog_guide/cryptodev_lib.rst | 6 ------ doc/guides/rel_notes/release_17_08.rst | 2 ++ drivers/crypto/openssl/rte_openssl_pmd.c | 1 - lib/librte_cryptodev/rte_crypto_sym.h | 26 ------------------------ test/test/test_cryptodev.c | 4 ---- test/test/test_cryptodev_perf.c | 1 - 7 files changed, 2 insertions(+), 40 deletions(-) diff --git a/app/test-crypto-perf/cperf_ops.c b/app/test-crypto-perf/cperf_ops.c index 107abb0408..d7182784a3 100644 --- a/app/test-crypto-perf/cperf_ops.c +++ b/app/test-crypto-perf/cperf_ops.c @@ -422,7 +422,6 @@ cperf_create_session(uint8_t dev_id, test_vector->auth_iv.length; } else { auth_xform.auth.digest_length = 0; - auth_xform.auth.add_auth_data_length = 0; auth_xform.auth.key.length = 0; auth_xform.auth.key.data = NULL; auth_xform.auth.iv.length = 0; @@ -475,7 +474,6 @@ cperf_create_session(uint8_t dev_id, test_vector->auth_key.data; } else { auth_xform.auth.digest_length = 0; - auth_xform.auth.add_auth_data_length = 0; auth_xform.auth.key.length = 0; auth_xform.auth.key.data = NULL; auth_xform.auth.iv.length = 0; diff --git a/doc/guides/prog_guide/cryptodev_lib.rst b/doc/guides/prog_guide/cryptodev_lib.rst index 5048839924..f250c009a3 100644 --- a/doc/guides/prog_guide/cryptodev_lib.rst +++ b/doc/guides/prog_guide/cryptodev_lib.rst @@ -567,12 +567,6 @@ chain. uint8_t *data; phys_addr_t phys_addr; } digest; /**< Digest parameters */ - - struct { - uint8_t *data; - phys_addr_t phys_addr; - } aad; - /**< Additional authentication parameters */ } auth; }; }; diff --git a/doc/guides/rel_notes/release_17_08.rst b/doc/guides/rel_notes/release_17_08.rst index f3411713bb..d689af74b7 100644 --- a/doc/guides/rel_notes/release_17_08.rst +++ b/doc/guides/rel_notes/release_17_08.rst @@ -95,6 +95,7 @@ New Features * Moved length and offset of cipher IV to ``rte_crypto_cipher_xform``. * Removed Additional Authentication Data (AAD) length. * Removed digest length. + * Removed AAD pointer and physical address from ``auth`` structure. * Added ``aead`` structure, containing parameters for AEAD algorithms. * **Reorganized the crypto operation structure.** @@ -210,6 +211,7 @@ ABI Changes * Added authentication IV length and offset parameters. * Changed field size of AAD length from uint32_t to uint16_t. * Changed field size of digest length from uint32_t to uint16_t. + * Removed AAD length. Shared Library Versions diff --git a/drivers/crypto/openssl/rte_openssl_pmd.c b/drivers/crypto/openssl/rte_openssl_pmd.c index 7280a0dd52..f86cc10a77 100644 --- a/drivers/crypto/openssl/rte_openssl_pmd.c +++ b/drivers/crypto/openssl/rte_openssl_pmd.c @@ -413,7 +413,6 @@ openssl_set_session_auth_parameters(struct openssl_session *sess, return -EINVAL; } - sess->auth.aad_length = xform->auth.add_auth_data_length; sess->auth.digest_length = xform->auth.digest_length; return 0; diff --git a/lib/librte_cryptodev/rte_crypto_sym.h b/lib/librte_cryptodev/rte_crypto_sym.h index 931ff2cb95..f1b2f38e3b 100644 --- a/lib/librte_cryptodev/rte_crypto_sym.h +++ b/lib/librte_cryptodev/rte_crypto_sym.h @@ -326,13 +326,6 @@ struct rte_crypto_auth_xform { * the result shall be truncated. */ - uint16_t add_auth_data_length; - /**< The length of the additional authenticated data (AAD) in bytes. - * The maximum permitted value is 65535 (2^16 - 1) bytes, unless - * otherwise specified below. - * - */ - struct { uint16_t offset; /**< Starting point for Initialisation Vector or Counter, @@ -670,25 +663,6 @@ struct rte_crypto_sym_op { phys_addr_t phys_addr; /**< Physical address of digest */ } digest; /**< Digest parameters */ - - struct { - uint8_t *data; - /**< Pointer to Additional Authenticated - * Data (AAD) needed for authenticated cipher - * mechanisms (CCM and GCM). - * - * The length of the data pointed to by this - * field is set up for the session in the @ref - * rte_crypto_auth_xform structure as part of - * the @ref rte_cryptodev_sym_session_create - * function call. - * This length must not exceed 65535 (2^16-1) - * bytes. - * - */ - phys_addr_t phys_addr; /**< physical address */ - } aad; - /**< Additional authentication parameters */ } auth; }; }; diff --git a/test/test/test_cryptodev.c b/test/test/test_cryptodev.c index 585a753312..5e09b8ef7f 100644 --- a/test/test/test_cryptodev.c +++ b/test/test/test_cryptodev.c @@ -5531,7 +5531,6 @@ static int MD5_HMAC_create_session(struct crypto_testsuite_params *ts_params, ut_params->auth_xform.auth.algo = RTE_CRYPTO_AUTH_MD5_HMAC; ut_params->auth_xform.auth.digest_length = MD5_DIGEST_LEN; - ut_params->auth_xform.auth.add_auth_data_length = 0; ut_params->auth_xform.auth.key.length = test_case->key.len; ut_params->auth_xform.auth.key.data = key; @@ -6304,7 +6303,6 @@ static int create_gmac_session(uint8_t dev_id, ut_params->auth_xform.auth.algo = RTE_CRYPTO_AUTH_AES_GMAC; ut_params->auth_xform.auth.op = auth_op; ut_params->auth_xform.auth.digest_length = tdata->gmac_tag.len; - ut_params->auth_xform.auth.add_auth_data_length = 0; ut_params->auth_xform.auth.key.length = tdata->key.len; ut_params->auth_xform.auth.key.data = auth_key; ut_params->auth_xform.auth.iv.offset = IV_OFFSET; @@ -6684,7 +6682,6 @@ create_auth_session(struct crypto_unittest_params *ut_params, ut_params->auth_xform.auth.key.length = reference->auth_key.len; ut_params->auth_xform.auth.key.data = auth_key; ut_params->auth_xform.auth.digest_length = reference->digest.len; - ut_params->auth_xform.auth.add_auth_data_length = reference->aad.len; /* Create Crypto session*/ ut_params->sess = rte_cryptodev_sym_session_create(dev_id, @@ -6722,7 +6719,6 @@ create_auth_cipher_session(struct crypto_unittest_params *ut_params, ut_params->auth_xform.auth.iv.length = reference->iv.len; } else { ut_params->auth_xform.next = &ut_params->cipher_xform; - ut_params->auth_xform.auth.add_auth_data_length = reference->aad.len; /* Setup Cipher Parameters */ ut_params->cipher_xform.type = RTE_CRYPTO_SYM_XFORM_CIPHER; diff --git a/test/test/test_cryptodev_perf.c b/test/test/test_cryptodev_perf.c index 32b76feb08..e3d0479721 100644 --- a/test/test/test_cryptodev_perf.c +++ b/test/test/test_cryptodev_perf.c @@ -2936,7 +2936,6 @@ test_perf_set_crypto_op_aes(struct rte_crypto_op *op, struct rte_mbuf *m, if (chain == CIPHER_ONLY) { op->sym->auth.digest.data = NULL; op->sym->auth.digest.phys_addr = 0; - op->sym->auth.aad.data = NULL; op->sym->auth.data.offset = 0; op->sym->auth.data.length = 0; } else {