* [dpdk-dev] [PATCH v2 1/2] crypto/qat: support DOCSIS AES-256 @ 2020-02-26 9:04 Mairtin o Loingsigh 2020-02-26 9:04 ` [dpdk-dev] [PATCH v2 2/2] test/crypto: Add AES-256 DOCSIS test vectors Mairtin o Loingsigh ` (2 more replies) 0 siblings, 3 replies; 13+ messages in thread From: Mairtin o Loingsigh @ 2020-02-26 9:04 UTC (permalink / raw) To: fiona.trahe, akhil.goyal; +Cc: dev, Mairtin o Loingsigh This patch adds support for DOCSIS AES-256 when using qat Signed-off-by: Mairtin o Loingsigh <mairtin.oloingsigh@intel.com> --- drivers/crypto/qat/qat_sym_capabilities.h | 4 ++-- drivers/crypto/qat/qat_sym_session.c | 12 ++++++++++-- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/drivers/crypto/qat/qat_sym_capabilities.h b/drivers/crypto/qat/qat_sym_capabilities.h index 028a56c56..7d216dea4 100644 --- a/drivers/crypto/qat/qat_sym_capabilities.h +++ b/drivers/crypto/qat/qat_sym_capabilities.h @@ -333,8 +333,8 @@ .block_size = 16, \ .key_size = { \ .min = 16, \ - .max = 16, \ - .increment = 0 \ + .max = 32, \ + .increment = 16 \ }, \ .iv_size = { \ .min = 16, \ diff --git a/drivers/crypto/qat/qat_sym_session.c b/drivers/crypto/qat/qat_sym_session.c index 4359f2f0b..d8b21bc2b 100644 --- a/drivers/crypto/qat/qat_sym_session.c +++ b/drivers/crypto/qat/qat_sym_session.c @@ -35,7 +35,7 @@ bpi_cipher_ctx_free(void *bpi_ctx) static int bpi_cipher_ctx_init(enum rte_crypto_cipher_algorithm cryptodev_algo, enum rte_crypto_cipher_operation direction __rte_unused, - const uint8_t *key, void **ctx) + const uint8_t *key, uint16_t key_length, void **ctx) { const EVP_CIPHER *algo = NULL; int ret; @@ -49,7 +49,10 @@ bpi_cipher_ctx_init(enum rte_crypto_cipher_algorithm cryptodev_algo, if (cryptodev_algo == RTE_CRYPTO_CIPHER_DES_DOCSISBPI) algo = EVP_des_ecb(); else - algo = EVP_aes_128_ecb(); + if (key_length == ICP_QAT_HW_AES_128_KEY_SZ) + algo = EVP_aes_128_ecb(); + else + algo = EVP_aes_256_ecb(); /* IV will be ECB encrypted whether direction is encrypt or decrypt*/ if (EVP_EncryptInit_ex(*ctx, algo, NULL, key, 0) != 1) { @@ -286,6 +289,7 @@ qat_sym_session_configure_cipher(struct rte_cryptodev *dev, cipher_xform->algo, cipher_xform->op, cipher_xform->key.data, + cipher_xform->key.length, &session->bpi_ctx); if (ret != 0) { QAT_LOG(ERR, "failed to create DES BPI ctx"); @@ -304,6 +308,7 @@ qat_sym_session_configure_cipher(struct rte_cryptodev *dev, cipher_xform->algo, cipher_xform->op, cipher_xform->key.data, + cipher_xform->key.length, &session->bpi_ctx); if (ret != 0) { QAT_LOG(ERR, "failed to create AES BPI ctx"); @@ -1909,6 +1914,9 @@ int qat_sym_validate_aes_docsisbpi_key(int key_len, case ICP_QAT_HW_AES_128_KEY_SZ: *alg = ICP_QAT_HW_CIPHER_ALGO_AES128; break; + case ICP_QAT_HW_AES_256_KEY_SZ: + *alg = ICP_QAT_HW_CIPHER_ALGO_AES256; + break; default: return -EINVAL; } -- 2.17.1 ^ permalink raw reply [flat|nested] 13+ messages in thread
* [dpdk-dev] [PATCH v2 2/2] test/crypto: Add AES-256 DOCSIS test vectors 2020-02-26 9:04 [dpdk-dev] [PATCH v2 1/2] crypto/qat: support DOCSIS AES-256 Mairtin o Loingsigh @ 2020-02-26 9:04 ` Mairtin o Loingsigh 2020-02-26 10:42 ` Trahe, Fiona 2020-02-26 10:41 ` [dpdk-dev] [PATCH v2 1/2] crypto/qat: support DOCSIS AES-256 Trahe, Fiona 2020-05-11 10:19 ` [dpdk-dev] [PATCH v3] " Mairtin o Loingsigh 2 siblings, 1 reply; 13+ messages in thread From: Mairtin o Loingsigh @ 2020-02-26 9:04 UTC (permalink / raw) To: fiona.trahe, akhil.goyal; +Cc: dev, Mairtin o Loingsigh This patch adds test vectors for AES-256 and sets QAT as the target PMD. Signed-off-by: Mairtin o Loingsigh <mairtin.oloingsigh@intel.com> --- app/test/test_cryptodev_aes_test_vectors.h | 176 +++++++++++++++++++++ 1 file changed, 176 insertions(+) diff --git a/app/test/test_cryptodev_aes_test_vectors.h b/app/test/test_cryptodev_aes_test_vectors.h index 8307fcf9a..08ae09390 100644 --- a/app/test/test_cryptodev_aes_test_vectors.h +++ b/app/test/test_cryptodev_aes_test_vectors.h @@ -47,6 +47,10 @@ static const uint8_t ciphertext_aes_docsis_bpi_cfb[] = { 0xFC, 0x68, 0xA3, 0x55, 0x60, 0x37, 0xDC }; +static const uint8_t ciphertext_aes256_docsis_bpi_cfb[] = { + 0xE3, 0x75, 0xF2, 0x30, 0x1F, 0x75, 0x9A +}; + static const uint8_t plaintext_aes_docsis_bpi_cbc_cfb[] = { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x91, @@ -59,6 +63,12 @@ static const uint8_t ciphertext_aes_docsis_bpi_cbc_cfb[] = { 0x44, 0xD4, 0x73 }; +static const uint8_t ciphertext_aes256_docsis_bpi_cbc_cfb[] = { + 0xD1, 0x28, 0x73, 0x1F, 0xB5, 0x28, 0xB5, 0x18, + 0xAB, 0x51, 0xAB, 0xC8, 0x98, 0x3D, 0xD1, 0xEE, + 0xE4, 0x43, 0x59 +}; + static const uint8_t plaintext_aes192ctr[] = { 0x01, 0x0F, 0x10, 0x1F, 0x20, 0x1C, 0x0E, 0xB8, 0xFB, 0x5C, 0xCD, 0xCC, 0x1F, 0xF9, 0xAF, 0x0B, @@ -1535,6 +1545,93 @@ static const struct blockcipher_test_data aes_test_data_docsis_3 = { } }; +/* Multiple of AES 256 block size */ +static const struct blockcipher_test_data aes_test_data_docsis_4 = { + .crypto_algo = RTE_CRYPTO_CIPHER_AES_DOCSISBPI, + .cipher_key = { + .data = { + 0xE4, 0x23, 0x33, 0x8A, 0x35, 0x64, 0x61, 0xE2, + 0x49, 0x03, 0xDD, 0xC6, 0xB8, 0xCA, 0x55, 0x7A, + 0xD4, 0xC3, 0xA3, 0xAA, 0x33, 0x62, 0x61, 0xE0, + 0x37, 0x07, 0xB8, 0x23, 0xA2, 0xA3, 0xB5, 0x8D + }, + .len = 32 + }, + .iv = { + .data = { + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F + }, + .len = 16 + }, + .plaintext = { + .data = plaintext_aes_common, + .len = 512 + }, + .ciphertext = { + .data = ciphertext512_aes256cbc, + .len = 512 + } +}; + +/* Less than AES 256 block size */ +static const struct blockcipher_test_data aes_test_data_docsis_5 = { + .crypto_algo = RTE_CRYPTO_CIPHER_AES_DOCSISBPI, + .cipher_key = { + .data = { + 0xE6, 0x60, 0x0F, 0xD8, 0x85, 0x2E, 0xF5, 0xAB, + 0xE6, 0x60, 0x0F, 0xD8, 0x85, 0x2E, 0xF5, 0xAB, + 0xE6, 0x60, 0x0F, 0xD8, 0x85, 0x2E, 0xF5, 0xAB, + 0xE6, 0x60, 0x0F, 0xD8, 0x85, 0x2E, 0xF5, 0xAB + }, + .len = 32 + }, + .iv = { + .data = { + 0x81, 0x0E, 0x52, 0x8E, 0x1C, 0x5F, 0xDA, 0x1A, + 0x81, 0x0E, 0x52, 0x8E, 0x1C, 0x5F, 0xDA, 0x1A + }, + .len = 16 + }, + .plaintext = { + .data = plaintext_aes_docsis_bpi_cfb, + .len = 7 + }, + .ciphertext = { + .data = ciphertext_aes256_docsis_bpi_cfb, + .len = 7 + } +}; + +/* Not multiple of AES 256 block size */ +static const struct blockcipher_test_data aes_test_data_docsis_6 = { + .crypto_algo = RTE_CRYPTO_CIPHER_AES_DOCSISBPI, + .cipher_key = { + .data = { + 0xE6, 0x60, 0x0F, 0xD8, 0x85, 0x2E, 0xF5, 0xAB, + 0xE6, 0x60, 0x0F, 0xD8, 0x85, 0x2E, 0xF5, 0xAB, + 0xE6, 0x60, 0x0F, 0xD8, 0x85, 0x2E, 0xF5, 0xAB, + 0xE6, 0x60, 0x0F, 0xD8, 0x85, 0x2E, 0xF5, 0xAB + }, + .len = 32 + }, + .iv = { + .data = { + 0x81, 0x0E, 0x52, 0x8E, 0x1C, 0x5F, 0xDA, 0x1A, + 0x81, 0x0E, 0x52, 0x8E, 0x1C, 0x5F, 0xDA, 0x1A + }, + .len = 16 + }, + .plaintext = { + .data = plaintext_aes_docsis_bpi_cbc_cfb, + .len = 19 + }, + .ciphertext = { + .data = ciphertext_aes256_docsis_bpi_cbc_cfb, + .len = 19 + } +}; + static const uint8_t cipher_aescbc_offset_16[] = { 0x57, 0x68, 0x61, 0x74, 0x20, 0x61, 0x20, 0x6C, @@ -2637,5 +2734,84 @@ static const struct blockcipher_test_case aes_docsis_test_cases[] = { .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_QAT | BLOCKCIPHER_TEST_TARGET_PMD_MB }, + /* AES 256 */ + { + .test_descr = "AES-256-DOCSIS-BPI Full Block Encryption", + .test_data = &aes_test_data_docsis_4, + .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT, + .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_QAT + }, + { + .test_descr = "AES-256-DOCSIS-BPI Runt Block Encryption", + .test_data = &aes_test_data_docsis_5, + .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT, + .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_QAT + }, + { + .test_descr = "AES-256-DOCSIS-BPI Uneven Encryption", + .test_data = &aes_test_data_docsis_6, + .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT, + .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_QAT + }, + { + .test_descr = "AES-256-DOCSIS-BPI Full Block Decryption", + .test_data = &aes_test_data_docsis_4, + .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT, + .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_QAT + }, + { + .test_descr = "AES-256-DOCSIS-BPI Runt Block Decryption", + .test_data = &aes_test_data_docsis_5, + .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT, + .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_QAT + }, + { + .test_descr = "AES-256-DOCSIS-BPI Uneven Decryption", + .test_data = &aes_test_data_docsis_6, + .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT, + .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_QAT + }, + { + .test_descr = "AES-256-DOCSIS-BPI OOP Full Block Encryption", + .test_data = &aes_test_data_docsis_4, + .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT, + .feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP, + .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_QAT + }, + { + .test_descr = "AES-256-DOCSIS-BPI OOP Runt Block Encryption", + .test_data = &aes_test_data_docsis_5, + .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT, + .feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP, + .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_QAT + }, + { + .test_descr = "AES-256-DOCSIS-BPI OOP Uneven Block Encryption", + .test_data = &aes_test_data_docsis_6, + .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT, + .feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP, + .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_QAT + }, + { + .test_descr = "AES-256-DOCSIS-BPI OOP Full Block Decryption", + .test_data = &aes_test_data_docsis_4, + .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT, + .feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP, + .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_QAT + }, + { + .test_descr = "AES-256-DOCSIS-BPI OOP Runt Block Decryption", + .test_data = &aes_test_data_docsis_5, + .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT, + .feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP, + .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_QAT + }, + { + .test_descr = "AES-256-DOCSIS-BPI OOP Uneven Block Decryption", + .test_data = &aes_test_data_docsis_6, + .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT, + .feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP, + .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_QAT + }, }; #endif /* TEST_CRYPTODEV_AES_TEST_VECTORS_H_ */ -- 2.17.1 ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [dpdk-dev] [PATCH v2 2/2] test/crypto: Add AES-256 DOCSIS test vectors 2020-02-26 9:04 ` [dpdk-dev] [PATCH v2 2/2] test/crypto: Add AES-256 DOCSIS test vectors Mairtin o Loingsigh @ 2020-02-26 10:42 ` Trahe, Fiona 0 siblings, 0 replies; 13+ messages in thread From: Trahe, Fiona @ 2020-02-26 10:42 UTC (permalink / raw) To: O'loingsigh, Mairtin, akhil.goyal; +Cc: dev > -----Original Message----- > From: O'loingsigh, Mairtin <mairtin.oloingsigh@intel.com> > Sent: Wednesday, February 26, 2020 9:04 AM > To: Trahe, Fiona <fiona.trahe@intel.com>; akhil.goyal@nxp.com > Cc: dev@dpdk.org; O'loingsigh, Mairtin <mairtin.oloingsigh@intel.com> > Subject: [PATCH v2 2/2] test/crypto: Add AES-256 DOCSIS test vectors > > This patch adds test vectors for AES-256 and sets QAT as the > target PMD. > > Signed-off-by: Mairtin o Loingsigh <mairtin.oloingsigh@intel.com> Acked-by: Fiona Trahe <fiona.trahe@intel.com> ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [dpdk-dev] [PATCH v2 1/2] crypto/qat: support DOCSIS AES-256 2020-02-26 9:04 [dpdk-dev] [PATCH v2 1/2] crypto/qat: support DOCSIS AES-256 Mairtin o Loingsigh 2020-02-26 9:04 ` [dpdk-dev] [PATCH v2 2/2] test/crypto: Add AES-256 DOCSIS test vectors Mairtin o Loingsigh @ 2020-02-26 10:41 ` Trahe, Fiona 2020-03-25 19:10 ` Akhil Goyal 2020-05-11 10:19 ` [dpdk-dev] [PATCH v3] " Mairtin o Loingsigh 2 siblings, 1 reply; 13+ messages in thread From: Trahe, Fiona @ 2020-02-26 10:41 UTC (permalink / raw) To: O'loingsigh, Mairtin, akhil.goyal; +Cc: dev > -----Original Message----- > From: O'loingsigh, Mairtin <mairtin.oloingsigh@intel.com> > Sent: Wednesday, February 26, 2020 9:04 AM > To: Trahe, Fiona <fiona.trahe@intel.com>; akhil.goyal@nxp.com > Cc: dev@dpdk.org; O'loingsigh, Mairtin <mairtin.oloingsigh@intel.com> > Subject: [PATCH v2 1/2] crypto/qat: support DOCSIS AES-256 > > This patch adds support for DOCSIS AES-256 when using qat > > Signed-off-by: Mairtin o Loingsigh <mairtin.oloingsigh@intel.com> Acked-by: Fiona Trahe <fiona.trahe@intel.com> ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [dpdk-dev] [PATCH v2 1/2] crypto/qat: support DOCSIS AES-256 2020-02-26 10:41 ` [dpdk-dev] [PATCH v2 1/2] crypto/qat: support DOCSIS AES-256 Trahe, Fiona @ 2020-03-25 19:10 ` Akhil Goyal 0 siblings, 0 replies; 13+ messages in thread From: Akhil Goyal @ 2020-03-25 19:10 UTC (permalink / raw) To: Trahe, Fiona, O'loingsigh, Mairtin; +Cc: dev > > > > This patch adds support for DOCSIS AES-256 when using qat > > > > Signed-off-by: Mairtin o Loingsigh <mairtin.oloingsigh@intel.com> > Acked-by: Fiona Trahe <fiona.trahe@intel.com> Series Applied to dpdk-next-crypto Thanks. ^ permalink raw reply [flat|nested] 13+ messages in thread
* [dpdk-dev] [PATCH v3] crypto/qat: support DOCSIS AES-256 2020-02-26 9:04 [dpdk-dev] [PATCH v2 1/2] crypto/qat: support DOCSIS AES-256 Mairtin o Loingsigh 2020-02-26 9:04 ` [dpdk-dev] [PATCH v2 2/2] test/crypto: Add AES-256 DOCSIS test vectors Mairtin o Loingsigh 2020-02-26 10:41 ` [dpdk-dev] [PATCH v2 1/2] crypto/qat: support DOCSIS AES-256 Trahe, Fiona @ 2020-05-11 10:19 ` Mairtin o Loingsigh 2020-05-11 10:19 ` [dpdk-dev] [PATCH v3] test/crypto: add AES-256 DOCSIS test vectors Mairtin o Loingsigh ` (2 more replies) 2 siblings, 3 replies; 13+ messages in thread From: Mairtin o Loingsigh @ 2020-05-11 10:19 UTC (permalink / raw) To: fiona.trahe, akhil.goyal; +Cc: dev, Mairtin o Loingsigh This patch adds support for DOCSIS AES-256 when using qat Signed-off-by: Mairtin o Loingsigh <mairtin.oloingsigh@intel.com> Acked-by: Fiona Trahe <fiona.trahe@intel.com> --- drivers/crypto/qat/qat_sym_capabilities.h | 4 ++-- drivers/crypto/qat/qat_sym_session.c | 12 ++++++++++-- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/drivers/crypto/qat/qat_sym_capabilities.h b/drivers/crypto/qat/qat_sym_capabilities.h index 028a56c56..7d216dea4 100644 --- a/drivers/crypto/qat/qat_sym_capabilities.h +++ b/drivers/crypto/qat/qat_sym_capabilities.h @@ -333,8 +333,8 @@ .block_size = 16, \ .key_size = { \ .min = 16, \ - .max = 16, \ - .increment = 0 \ + .max = 32, \ + .increment = 16 \ }, \ .iv_size = { \ .min = 16, \ diff --git a/drivers/crypto/qat/qat_sym_session.c b/drivers/crypto/qat/qat_sym_session.c index 4359f2f0b..d8b21bc2b 100644 --- a/drivers/crypto/qat/qat_sym_session.c +++ b/drivers/crypto/qat/qat_sym_session.c @@ -35,7 +35,7 @@ bpi_cipher_ctx_free(void *bpi_ctx) static int bpi_cipher_ctx_init(enum rte_crypto_cipher_algorithm cryptodev_algo, enum rte_crypto_cipher_operation direction __rte_unused, - const uint8_t *key, void **ctx) + const uint8_t *key, uint16_t key_length, void **ctx) { const EVP_CIPHER *algo = NULL; int ret; @@ -49,7 +49,10 @@ bpi_cipher_ctx_init(enum rte_crypto_cipher_algorithm cryptodev_algo, if (cryptodev_algo == RTE_CRYPTO_CIPHER_DES_DOCSISBPI) algo = EVP_des_ecb(); else - algo = EVP_aes_128_ecb(); + if (key_length == ICP_QAT_HW_AES_128_KEY_SZ) + algo = EVP_aes_128_ecb(); + else + algo = EVP_aes_256_ecb(); /* IV will be ECB encrypted whether direction is encrypt or decrypt*/ if (EVP_EncryptInit_ex(*ctx, algo, NULL, key, 0) != 1) { @@ -286,6 +289,7 @@ qat_sym_session_configure_cipher(struct rte_cryptodev *dev, cipher_xform->algo, cipher_xform->op, cipher_xform->key.data, + cipher_xform->key.length, &session->bpi_ctx); if (ret != 0) { QAT_LOG(ERR, "failed to create DES BPI ctx"); @@ -304,6 +308,7 @@ qat_sym_session_configure_cipher(struct rte_cryptodev *dev, cipher_xform->algo, cipher_xform->op, cipher_xform->key.data, + cipher_xform->key.length, &session->bpi_ctx); if (ret != 0) { QAT_LOG(ERR, "failed to create AES BPI ctx"); @@ -1909,6 +1914,9 @@ int qat_sym_validate_aes_docsisbpi_key(int key_len, case ICP_QAT_HW_AES_128_KEY_SZ: *alg = ICP_QAT_HW_CIPHER_ALGO_AES128; break; + case ICP_QAT_HW_AES_256_KEY_SZ: + *alg = ICP_QAT_HW_CIPHER_ALGO_AES256; + break; default: return -EINVAL; } -- 2.12.3 ^ permalink raw reply [flat|nested] 13+ messages in thread
* [dpdk-dev] [PATCH v3] test/crypto: add AES-256 DOCSIS test vectors 2020-05-11 10:19 ` [dpdk-dev] [PATCH v3] " Mairtin o Loingsigh @ 2020-05-11 10:19 ` Mairtin o Loingsigh 2020-05-11 13:10 ` Akhil Goyal 2020-05-11 10:19 ` [dpdk-dev] [PATCH v3] doc: QAT support for AES-256 DOCSIS Mairtin o Loingsigh 2020-05-11 13:14 ` [dpdk-dev] [PATCH v3] crypto/qat: support DOCSIS AES-256 Akhil Goyal 2 siblings, 1 reply; 13+ messages in thread From: Mairtin o Loingsigh @ 2020-05-11 10:19 UTC (permalink / raw) To: fiona.trahe, akhil.goyal; +Cc: dev, Mairtin o Loingsigh This patch adds test vectors for AES-256 and sets QAT as the target PMD. Signed-off-by: Mairtin o Loingsigh <mairtin.oloingsigh@intel.com> Acked-by: Fiona Trahe <fiona.trahe@intel.com> --- app/test/test_cryptodev_aes_test_vectors.h | 176 +++++++++++++++++++++++++++++ 1 file changed, 176 insertions(+) diff --git a/app/test/test_cryptodev_aes_test_vectors.h b/app/test/test_cryptodev_aes_test_vectors.h index 8307fcf9a..08ae09390 100644 --- a/app/test/test_cryptodev_aes_test_vectors.h +++ b/app/test/test_cryptodev_aes_test_vectors.h @@ -47,6 +47,10 @@ static const uint8_t ciphertext_aes_docsis_bpi_cfb[] = { 0xFC, 0x68, 0xA3, 0x55, 0x60, 0x37, 0xDC }; +static const uint8_t ciphertext_aes256_docsis_bpi_cfb[] = { + 0xE3, 0x75, 0xF2, 0x30, 0x1F, 0x75, 0x9A +}; + static const uint8_t plaintext_aes_docsis_bpi_cbc_cfb[] = { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x91, @@ -59,6 +63,12 @@ static const uint8_t ciphertext_aes_docsis_bpi_cbc_cfb[] = { 0x44, 0xD4, 0x73 }; +static const uint8_t ciphertext_aes256_docsis_bpi_cbc_cfb[] = { + 0xD1, 0x28, 0x73, 0x1F, 0xB5, 0x28, 0xB5, 0x18, + 0xAB, 0x51, 0xAB, 0xC8, 0x98, 0x3D, 0xD1, 0xEE, + 0xE4, 0x43, 0x59 +}; + static const uint8_t plaintext_aes192ctr[] = { 0x01, 0x0F, 0x10, 0x1F, 0x20, 0x1C, 0x0E, 0xB8, 0xFB, 0x5C, 0xCD, 0xCC, 0x1F, 0xF9, 0xAF, 0x0B, @@ -1535,6 +1545,93 @@ static const struct blockcipher_test_data aes_test_data_docsis_3 = { } }; +/* Multiple of AES 256 block size */ +static const struct blockcipher_test_data aes_test_data_docsis_4 = { + .crypto_algo = RTE_CRYPTO_CIPHER_AES_DOCSISBPI, + .cipher_key = { + .data = { + 0xE4, 0x23, 0x33, 0x8A, 0x35, 0x64, 0x61, 0xE2, + 0x49, 0x03, 0xDD, 0xC6, 0xB8, 0xCA, 0x55, 0x7A, + 0xD4, 0xC3, 0xA3, 0xAA, 0x33, 0x62, 0x61, 0xE0, + 0x37, 0x07, 0xB8, 0x23, 0xA2, 0xA3, 0xB5, 0x8D + }, + .len = 32 + }, + .iv = { + .data = { + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F + }, + .len = 16 + }, + .plaintext = { + .data = plaintext_aes_common, + .len = 512 + }, + .ciphertext = { + .data = ciphertext512_aes256cbc, + .len = 512 + } +}; + +/* Less than AES 256 block size */ +static const struct blockcipher_test_data aes_test_data_docsis_5 = { + .crypto_algo = RTE_CRYPTO_CIPHER_AES_DOCSISBPI, + .cipher_key = { + .data = { + 0xE6, 0x60, 0x0F, 0xD8, 0x85, 0x2E, 0xF5, 0xAB, + 0xE6, 0x60, 0x0F, 0xD8, 0x85, 0x2E, 0xF5, 0xAB, + 0xE6, 0x60, 0x0F, 0xD8, 0x85, 0x2E, 0xF5, 0xAB, + 0xE6, 0x60, 0x0F, 0xD8, 0x85, 0x2E, 0xF5, 0xAB + }, + .len = 32 + }, + .iv = { + .data = { + 0x81, 0x0E, 0x52, 0x8E, 0x1C, 0x5F, 0xDA, 0x1A, + 0x81, 0x0E, 0x52, 0x8E, 0x1C, 0x5F, 0xDA, 0x1A + }, + .len = 16 + }, + .plaintext = { + .data = plaintext_aes_docsis_bpi_cfb, + .len = 7 + }, + .ciphertext = { + .data = ciphertext_aes256_docsis_bpi_cfb, + .len = 7 + } +}; + +/* Not multiple of AES 256 block size */ +static const struct blockcipher_test_data aes_test_data_docsis_6 = { + .crypto_algo = RTE_CRYPTO_CIPHER_AES_DOCSISBPI, + .cipher_key = { + .data = { + 0xE6, 0x60, 0x0F, 0xD8, 0x85, 0x2E, 0xF5, 0xAB, + 0xE6, 0x60, 0x0F, 0xD8, 0x85, 0x2E, 0xF5, 0xAB, + 0xE6, 0x60, 0x0F, 0xD8, 0x85, 0x2E, 0xF5, 0xAB, + 0xE6, 0x60, 0x0F, 0xD8, 0x85, 0x2E, 0xF5, 0xAB + }, + .len = 32 + }, + .iv = { + .data = { + 0x81, 0x0E, 0x52, 0x8E, 0x1C, 0x5F, 0xDA, 0x1A, + 0x81, 0x0E, 0x52, 0x8E, 0x1C, 0x5F, 0xDA, 0x1A + }, + .len = 16 + }, + .plaintext = { + .data = plaintext_aes_docsis_bpi_cbc_cfb, + .len = 19 + }, + .ciphertext = { + .data = ciphertext_aes256_docsis_bpi_cbc_cfb, + .len = 19 + } +}; + static const uint8_t cipher_aescbc_offset_16[] = { 0x57, 0x68, 0x61, 0x74, 0x20, 0x61, 0x20, 0x6C, @@ -2637,5 +2734,84 @@ static const struct blockcipher_test_case aes_docsis_test_cases[] = { .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_QAT | BLOCKCIPHER_TEST_TARGET_PMD_MB }, + /* AES 256 */ + { + .test_descr = "AES-256-DOCSIS-BPI Full Block Encryption", + .test_data = &aes_test_data_docsis_4, + .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT, + .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_QAT + }, + { + .test_descr = "AES-256-DOCSIS-BPI Runt Block Encryption", + .test_data = &aes_test_data_docsis_5, + .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT, + .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_QAT + }, + { + .test_descr = "AES-256-DOCSIS-BPI Uneven Encryption", + .test_data = &aes_test_data_docsis_6, + .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT, + .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_QAT + }, + { + .test_descr = "AES-256-DOCSIS-BPI Full Block Decryption", + .test_data = &aes_test_data_docsis_4, + .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT, + .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_QAT + }, + { + .test_descr = "AES-256-DOCSIS-BPI Runt Block Decryption", + .test_data = &aes_test_data_docsis_5, + .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT, + .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_QAT + }, + { + .test_descr = "AES-256-DOCSIS-BPI Uneven Decryption", + .test_data = &aes_test_data_docsis_6, + .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT, + .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_QAT + }, + { + .test_descr = "AES-256-DOCSIS-BPI OOP Full Block Encryption", + .test_data = &aes_test_data_docsis_4, + .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT, + .feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP, + .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_QAT + }, + { + .test_descr = "AES-256-DOCSIS-BPI OOP Runt Block Encryption", + .test_data = &aes_test_data_docsis_5, + .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT, + .feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP, + .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_QAT + }, + { + .test_descr = "AES-256-DOCSIS-BPI OOP Uneven Block Encryption", + .test_data = &aes_test_data_docsis_6, + .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT, + .feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP, + .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_QAT + }, + { + .test_descr = "AES-256-DOCSIS-BPI OOP Full Block Decryption", + .test_data = &aes_test_data_docsis_4, + .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT, + .feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP, + .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_QAT + }, + { + .test_descr = "AES-256-DOCSIS-BPI OOP Runt Block Decryption", + .test_data = &aes_test_data_docsis_5, + .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT, + .feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP, + .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_QAT + }, + { + .test_descr = "AES-256-DOCSIS-BPI OOP Uneven Block Decryption", + .test_data = &aes_test_data_docsis_6, + .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT, + .feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP, + .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_QAT + }, }; #endif /* TEST_CRYPTODEV_AES_TEST_VECTORS_H_ */ -- 2.12.3 ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [dpdk-dev] [PATCH v3] test/crypto: add AES-256 DOCSIS test vectors 2020-05-11 10:19 ` [dpdk-dev] [PATCH v3] test/crypto: add AES-256 DOCSIS test vectors Mairtin o Loingsigh @ 2020-05-11 13:10 ` Akhil Goyal 0 siblings, 0 replies; 13+ messages in thread From: Akhil Goyal @ 2020-05-11 13:10 UTC (permalink / raw) To: Mairtin o Loingsigh, fiona.trahe; +Cc: dev Hi Mairtin, I believe your patch is not rebased on top of current tree. There is no pmd_mask now. Also, I see that the AES 256 cases are already there. This patch is already there I guess. > static const uint8_t > cipher_aescbc_offset_16[] = { > 0x57, 0x68, 0x61, 0x74, 0x20, 0x61, 0x20, 0x6C, > @@ -2637,5 +2734,84 @@ static const struct blockcipher_test_case > aes_docsis_test_cases[] = { > .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_QAT | > BLOCKCIPHER_TEST_TARGET_PMD_MB > }, > + /* AES 256 */ > + { > + .test_descr = "AES-256-DOCSIS-BPI Full Block Encryption", > + .test_data = &aes_test_data_docsis_4, > + .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT, > + .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_QAT > + }, > + { > + .test_descr = "AES-256-DOCSIS-BPI Runt Block Encryption", > + .test_data = &aes_test_data_docsis_5, > + .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT, > + .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_QAT > + }, > + { > + .test_descr = "AES-256-DOCSIS-BPI Uneven Encryption", > + .test_data = &aes_test_data_docsis_6, > + .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT, > + .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_QAT > + }, > + { > + .test_descr = "AES-256-DOCSIS-BPI Full Block Decryption", > + .test_data = &aes_test_data_docsis_4, > + .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT, > + .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_QAT > + }, > + { > + .test_descr = "AES-256-DOCSIS-BPI Runt Block Decryption", > + .test_data = &aes_test_data_docsis_5, > + .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT, > + .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_QAT > + }, > + { > + .test_descr = "AES-256-DOCSIS-BPI Uneven Decryption", > + .test_data = &aes_test_data_docsis_6, > + .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT, > + .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_QAT > + }, > + { > + .test_descr = "AES-256-DOCSIS-BPI OOP Full Block Encryption", > + .test_data = &aes_test_data_docsis_4, > + .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT, > + .feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP, > + .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_QAT > + }, > + { > + .test_descr = "AES-256-DOCSIS-BPI OOP Runt Block Encryption", > + .test_data = &aes_test_data_docsis_5, > + .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT, > + .feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP, > + .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_QAT > + }, > + { > + .test_descr = "AES-256-DOCSIS-BPI OOP Uneven Block > Encryption", > + .test_data = &aes_test_data_docsis_6, > + .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT, > + .feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP, > + .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_QAT > + }, > + { > + .test_descr = "AES-256-DOCSIS-BPI OOP Full Block Decryption", > + .test_data = &aes_test_data_docsis_4, > + .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT, > + .feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP, > + .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_QAT > + }, > + { > + .test_descr = "AES-256-DOCSIS-BPI OOP Runt Block Decryption", > + .test_data = &aes_test_data_docsis_5, > + .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT, > + .feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP, > + .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_QAT > + }, > + { > + .test_descr = "AES-256-DOCSIS-BPI OOP Uneven Block > Decryption", > + .test_data = &aes_test_data_docsis_6, > + .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT, > + .feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP, > + .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_QAT > + }, > }; > #endif /* TEST_CRYPTODEV_AES_TEST_VECTORS_H_ */ > -- > 2.12.3 ^ permalink raw reply [flat|nested] 13+ messages in thread
* [dpdk-dev] [PATCH v3] doc: QAT support for AES-256 DOCSIS 2020-05-11 10:19 ` [dpdk-dev] [PATCH v3] " Mairtin o Loingsigh 2020-05-11 10:19 ` [dpdk-dev] [PATCH v3] test/crypto: add AES-256 DOCSIS test vectors Mairtin o Loingsigh @ 2020-05-11 10:19 ` Mairtin o Loingsigh 2020-05-11 13:12 ` Akhil Goyal 2020-05-11 13:14 ` [dpdk-dev] [PATCH v3] crypto/qat: support DOCSIS AES-256 Akhil Goyal 2 siblings, 1 reply; 13+ messages in thread From: Mairtin o Loingsigh @ 2020-05-11 10:19 UTC (permalink / raw) To: fiona.trahe, akhil.goyal; +Cc: dev, Mairtin o Loingsigh Update QAT pmd to support AES-256 DOCSIS Signed-off-by: Mairtin o Loingsigh <mairtin.oloingsigh@intel.com> --- doc/guides/rel_notes/release_20_05.rst | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/doc/guides/rel_notes/release_20_05.rst b/doc/guides/rel_notes/release_20_05.rst index 82df72c2b..ee494f7aa 100644 --- a/doc/guides/rel_notes/release_20_05.rst +++ b/doc/guides/rel_notes/release_20_05.rst @@ -190,6 +190,10 @@ New Features any checksum calculation was requested - in such case the code falls back to fixed compression as before. +* **Updated the QAT PMD.** + + * Added AES-256 DOCSIS algorithm support to QAT PMD. + * **Updated the turbo_sw bbdev PMD.** Supported large size code blocks which does not fit in one mbuf segment. -- 2.12.3 ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [dpdk-dev] [PATCH v3] doc: QAT support for AES-256 DOCSIS 2020-05-11 10:19 ` [dpdk-dev] [PATCH v3] doc: QAT support for AES-256 DOCSIS Mairtin o Loingsigh @ 2020-05-11 13:12 ` Akhil Goyal 0 siblings, 0 replies; 13+ messages in thread From: Akhil Goyal @ 2020-05-11 13:12 UTC (permalink / raw) To: Mairtin o Loingsigh, fiona.trahe; +Cc: dev > > Update QAT pmd to support AES-256 DOCSIS > > Signed-off-by: Mairtin o Loingsigh <mairtin.oloingsigh@intel.com> > --- Release note should be part of the patch which is supporting the feature. ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [dpdk-dev] [PATCH v3] crypto/qat: support DOCSIS AES-256 2020-05-11 10:19 ` [dpdk-dev] [PATCH v3] " Mairtin o Loingsigh 2020-05-11 10:19 ` [dpdk-dev] [PATCH v3] test/crypto: add AES-256 DOCSIS test vectors Mairtin o Loingsigh 2020-05-11 10:19 ` [dpdk-dev] [PATCH v3] doc: QAT support for AES-256 DOCSIS Mairtin o Loingsigh @ 2020-05-11 13:14 ` Akhil Goyal 2020-05-11 14:03 ` O'loingsigh, Mairtin 2 siblings, 1 reply; 13+ messages in thread From: Akhil Goyal @ 2020-05-11 13:14 UTC (permalink / raw) To: Mairtin o Loingsigh, fiona.trahe; +Cc: dev I believe this patch is already applied. Why is it recent? ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [dpdk-dev] [PATCH v3] crypto/qat: support DOCSIS AES-256 2020-05-11 13:14 ` [dpdk-dev] [PATCH v3] crypto/qat: support DOCSIS AES-256 Akhil Goyal @ 2020-05-11 14:03 ` O'loingsigh, Mairtin 2020-05-11 16:14 ` Akhil Goyal 0 siblings, 1 reply; 13+ messages in thread From: O'loingsigh, Mairtin @ 2020-05-11 14:03 UTC (permalink / raw) To: Akhil Goyal, Trahe, Fiona; +Cc: dev These are the patches for QAT AES-256 DOCSIS along with the documentation update (which was missing from previous version) Regards, Mairtin -----Original Message----- From: Akhil Goyal <akhil.goyal@nxp.com> Sent: Monday, May 11, 2020 2:14 PM To: O'loingsigh, Mairtin <mairtin.oloingsigh@intel.com>; Trahe, Fiona <fiona.trahe@intel.com> Cc: dev@dpdk.org Subject: RE: [PATCH v3] crypto/qat: support DOCSIS AES-256 I believe this patch is already applied. Why is it recent? ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [dpdk-dev] [PATCH v3] crypto/qat: support DOCSIS AES-256 2020-05-11 14:03 ` O'loingsigh, Mairtin @ 2020-05-11 16:14 ` Akhil Goyal 0 siblings, 0 replies; 13+ messages in thread From: Akhil Goyal @ 2020-05-11 16:14 UTC (permalink / raw) To: O'loingsigh, Mairtin, Trahe, Fiona; +Cc: dev In that case you should send only the incremental patch and add a Fixes reference to the original patch. > > These are the patches for QAT AES-256 DOCSIS along with the documentation > update (which was missing from previous version) > > Regards, > Mairtin > > -----Original Message----- > From: Akhil Goyal <akhil.goyal@nxp.com> > Sent: Monday, May 11, 2020 2:14 PM > To: O'loingsigh, Mairtin <mairtin.oloingsigh@intel.com>; Trahe, Fiona > <fiona.trahe@intel.com> > Cc: dev@dpdk.org > Subject: RE: [PATCH v3] crypto/qat: support DOCSIS AES-256 > > I believe this patch is already applied. Why is it recent? ^ permalink raw reply [flat|nested] 13+ messages in thread
end of thread, other threads:[~2020-05-11 16:14 UTC | newest] Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2020-02-26 9:04 [dpdk-dev] [PATCH v2 1/2] crypto/qat: support DOCSIS AES-256 Mairtin o Loingsigh 2020-02-26 9:04 ` [dpdk-dev] [PATCH v2 2/2] test/crypto: Add AES-256 DOCSIS test vectors Mairtin o Loingsigh 2020-02-26 10:42 ` Trahe, Fiona 2020-02-26 10:41 ` [dpdk-dev] [PATCH v2 1/2] crypto/qat: support DOCSIS AES-256 Trahe, Fiona 2020-03-25 19:10 ` Akhil Goyal 2020-05-11 10:19 ` [dpdk-dev] [PATCH v3] " Mairtin o Loingsigh 2020-05-11 10:19 ` [dpdk-dev] [PATCH v3] test/crypto: add AES-256 DOCSIS test vectors Mairtin o Loingsigh 2020-05-11 13:10 ` Akhil Goyal 2020-05-11 10:19 ` [dpdk-dev] [PATCH v3] doc: QAT support for AES-256 DOCSIS Mairtin o Loingsigh 2020-05-11 13:12 ` Akhil Goyal 2020-05-11 13:14 ` [dpdk-dev] [PATCH v3] crypto/qat: support DOCSIS AES-256 Akhil Goyal 2020-05-11 14:03 ` O'loingsigh, Mairtin 2020-05-11 16:14 ` Akhil Goyal
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).