From patchwork Wed Mar 13 09:13:47 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arkadiusz Kusztal X-Patchwork-Id: 138306 X-Patchwork-Delegate: gakhil@marvell.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 5B9CD43C9E; Wed, 13 Mar 2024 10:13:58 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id B76F640A84; Wed, 13 Mar 2024 10:13:57 +0100 (CET) Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.10]) by mails.dpdk.org (Postfix) with ESMTP id 6C5AC4069D; Wed, 13 Mar 2024 10:13:54 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1710321235; x=1741857235; h=from:to:cc:subject:date:message-id:in-reply-to: references; bh=g/3M1LU5rqFifihRi20IUUiXsMed03cFF+QTrNPiZXs=; b=ChEGVWfTtz7RmRzz1hM1ST6vBbmEIyFEB43L7rPxf59BFZbpdKIiNQhq g0dayMbuEdW8ENcib9zbtDTShXgWrKS5MQwTCXdTDH2nhbCP++adC3gKI pucV55RuxC12p5b4X7+So/yGUEpHWcHFIJ3TKJA2vbgC+Oo3i8oj6tue0 2pxKu8aczdlRgDZQ6RvFpjxAv0d1MsG28TgQLlWDrWgV0/V8We5uL3FYY 29zJ7OTnxcPma2rIf2Fg9qBvozamLPoiTIaEUMYKVK60nGS3M4erjzrTO thXx87SPjU8/6GYtQiYRHfI1Pe90inUZyRwr7Jmcu/6h4b25hFYukA90r Q==; X-IronPort-AV: E=McAfee;i="6600,9927,11011"; a="16475382" X-IronPort-AV: E=Sophos;i="6.07,122,1708416000"; d="scan'208";a="16475382" Received: from orviesa002.jf.intel.com ([10.64.159.142]) by fmvoesa104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 13 Mar 2024 02:13:52 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.07,122,1708416000"; d="scan'208";a="42789514" Received: from silpixa00400308.ir.intel.com ([10.237.214.154]) by orviesa002.jf.intel.com with ESMTP; 13 Mar 2024 02:13:51 -0700 From: Arkadiusz Kusztal To: dev@dpdk.org Cc: gakhil@marvell.com, ciara.power@intel.com, Arkadiusz Kusztal , stable@dpdk.org Subject: [PATCH v2] app/test: fix rsa tests in qat suite Date: Wed, 13 Mar 2024 09:13:47 +0000 Message-Id: <20240313091347.25207-1-arkadiuszx.kusztal@intel.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20240308081750.5157-1-arkadiuszx.kusztal@intel.com> References: <20240308081750.5157-1-arkadiuszx.kusztal@intel.com> X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org This commit fixes incorrectly set keys in the QAT testsuite for the RSA algorithm. Fixes: 9b5465867fb8 ("test/crypto: add RSA none padding cases") Cc: stable@dpdk.org Signed-off-by: Arkadiusz Kusztal Acked-by: Ciara Power --- v2: - removed camel case app/test/test_cryptodev_asym.c | 102 ++++++++++++++--------------- app/test/test_cryptodev_rsa_test_vectors.h | 2 +- 2 files changed, 52 insertions(+), 52 deletions(-) diff --git a/app/test/test_cryptodev_asym.c b/app/test/test_cryptodev_asym.c index 17daf734e8..2c745a7f7c 100644 --- a/app/test/test_cryptodev_asym.c +++ b/app/test/test_cryptodev_asym.c @@ -3292,11 +3292,8 @@ modular_multiplicative_inverse(const void *test_data) arg.qt.coef.data = coef; \ arg.qt.coef.length = vector->coef.len -typedef void (*rsa_key_init_t)(struct rte_crypto_asym_xform *, - const struct rsa_test_data_2 *); - static int -RSA_Encrypt(const struct rsa_test_data_2 *vector, uint8_t *cipher_buf) +rsa_encrypt(const struct rsa_test_data_2 *vector, uint8_t *cipher_buf) { self->result_op = NULL; /* Compute encryption on the test vector */ @@ -3314,7 +3311,7 @@ RSA_Encrypt(const struct rsa_test_data_2 *vector, uint8_t *cipher_buf) } static int -RSA_Decrypt(const struct rsa_test_data_2 *vector, uint8_t *plaintext, +rsa_decrypt(const struct rsa_test_data_2 *vector, uint8_t *plaintext, const int use_op) { uint8_t cipher[TEST_DATA_SIZE] = { 0 }; @@ -3335,41 +3332,14 @@ RSA_Decrypt(const struct rsa_test_data_2 *vector, uint8_t *plaintext, return 0; } -static void -RSA_key_init_Exp(struct rte_crypto_asym_xform *xform, - const struct rsa_test_data_2 *vector) -{ - SET_RSA_PARAM(xform->rsa, vector, n); - SET_RSA_PARAM(xform->rsa, vector, e); - SET_RSA_PARAM(xform->rsa, vector, d); - xform->rsa.key_type = RTE_RSA_KEY_TYPE_EXP; -} - -static void -RSA_key_init_CRT(struct rte_crypto_asym_xform *xform, - const struct rsa_test_data_2 *vector) -{ - SET_RSA_PARAM(xform->rsa, vector, n); - SET_RSA_PARAM(xform->rsa, vector, e); - SET_RSA_PARAM_QT(xform->rsa, vector, p); - SET_RSA_PARAM_QT(xform->rsa, vector, q); - SET_RSA_PARAM_QT(xform->rsa, vector, dP); - SET_RSA_PARAM_QT(xform->rsa, vector, dQ); - SET_RSA_PARAM_QT(xform->rsa, vector, qInv); - xform->rsa.key_type = RTE_RSA_KEY_TYPE_QT; -} - static int -RSA_Init_Session(const struct rsa_test_data_2 *vector, - rsa_key_init_t key_init) +rsa_init_session(struct rte_crypto_asym_xform *xform) { const uint8_t dev_id = params->valid_devs[0]; struct rte_cryptodev_info dev_info; - struct rte_crypto_asym_xform xform = { }; int ret = 0; - key_init(&xform, vector); - xform.xform_type = RTE_CRYPTO_ASYM_XFORM_RSA; + xform->xform_type = RTE_CRYPTO_ASYM_XFORM_RSA; rte_cryptodev_info_get(dev_id, &dev_info); if (!(dev_info.feature_flags & RTE_CRYPTODEV_FF_RSA_PRIV_OP_KEY_QT)) { @@ -3377,7 +3347,7 @@ RSA_Init_Session(const struct rsa_test_data_2 *vector, "Device doesn't support decrypt op with quintuple key type. Test skipped\n"); return TEST_SKIPPED; } - ret = rte_cryptodev_asym_session_create(dev_id, &xform, + ret = rte_cryptodev_asym_session_create(dev_id, xform, params->session_mpool, &self->sess); if (ret < 0) { RTE_LOG(ERR, USER1, @@ -3388,17 +3358,23 @@ RSA_Init_Session(const struct rsa_test_data_2 *vector, } static int -KAT_RSA_Encrypt(const void *data) +kat_rsa_encrypt(const void *data) { uint8_t cipher_buf[TEST_DATA_SIZE] = {0}; const struct rsa_test_data_2 *vector = data; - int ret = RSA_Init_Session(vector, RSA_key_init_Exp); + struct rte_crypto_asym_xform xform = { }; + + SET_RSA_PARAM(xform.rsa, vector, n); + SET_RSA_PARAM(xform.rsa, vector, e); + SET_RSA_PARAM(xform.rsa, vector, d); + xform.rsa.key_type = RTE_RSA_KEY_TYPE_EXP; + int ret = rsa_init_session(&xform); if (ret) { RTE_LOG(ERR, USER1, "Failed to init session for RSA\n"); return ret; } - TEST_ASSERT_SUCCESS(RSA_Encrypt(vector, cipher_buf), + TEST_ASSERT_SUCCESS(rsa_encrypt(vector, cipher_buf), "RSA: Failed to encrypt"); TEST_ASSERT_BUFFERS_ARE_EQUAL(vector->cipher.data, self->result_op->asym->rsa.cipher.data, @@ -3408,17 +3384,26 @@ KAT_RSA_Encrypt(const void *data) } static int -KAT_RSA_Encrypt_CRT(const void *data) +kat_rsa_encrypt_crt(const void *data) { uint8_t cipher_buf[TEST_DATA_SIZE] = {0}; const struct rsa_test_data_2 *vector = data; - int ret = RSA_Init_Session(vector, RSA_key_init_CRT); + struct rte_crypto_asym_xform xform = { }; + SET_RSA_PARAM(xform.rsa, vector, n); + SET_RSA_PARAM(xform.rsa, vector, e); + SET_RSA_PARAM_QT(xform.rsa, vector, p); + SET_RSA_PARAM_QT(xform.rsa, vector, q); + SET_RSA_PARAM_QT(xform.rsa, vector, dP); + SET_RSA_PARAM_QT(xform.rsa, vector, dQ); + SET_RSA_PARAM_QT(xform.rsa, vector, qInv); + xform.rsa.key_type = RTE_RSA_KEY_TYPE_QT; + int ret = rsa_init_session(&xform); if (ret) { RTE_LOG(ERR, USER1, "Failed to init session for RSA\n"); return ret; } - TEST_ASSERT_SUCCESS(RSA_Encrypt(vector, cipher_buf), + TEST_ASSERT_SUCCESS(rsa_encrypt(vector, cipher_buf), "RSA: Failed to encrypt"); TEST_ASSERT_BUFFERS_ARE_EQUAL(vector->cipher.data, self->result_op->asym->rsa.cipher.data, @@ -3428,17 +3413,23 @@ KAT_RSA_Encrypt_CRT(const void *data) } static int -KAT_RSA_Decrypt(const void *data) +kat_rsa_decrypt(const void *data) { uint8_t message[TEST_DATA_SIZE] = {0}; const struct rsa_test_data_2 *vector = data; - int ret = RSA_Init_Session(vector, RSA_key_init_Exp); + struct rte_crypto_asym_xform xform = { }; + + SET_RSA_PARAM(xform.rsa, vector, n); + SET_RSA_PARAM(xform.rsa, vector, e); + SET_RSA_PARAM(xform.rsa, vector, d); + xform.rsa.key_type = RTE_RSA_KEY_TYPE_EXP; + int ret = rsa_init_session(&xform); if (ret) { RTE_LOG(ERR, USER1, "Failed to init session for RSA\n"); return ret; } - TEST_ASSERT_SUCCESS(RSA_Decrypt(vector, message, 0), + TEST_ASSERT_SUCCESS(rsa_decrypt(vector, message, 0), "RSA: Failed to encrypt"); TEST_ASSERT_BUFFERS_ARE_EQUAL(vector->message.data, self->result_op->asym->rsa.message.data, @@ -3448,17 +3439,26 @@ KAT_RSA_Decrypt(const void *data) } static int -KAT_RSA_Decrypt_CRT(const void *data) +kat_rsa_decrypt_crt(const void *data) { uint8_t message[TEST_DATA_SIZE] = {0}; const struct rsa_test_data_2 *vector = data; - int ret = RSA_Init_Session(vector, RSA_key_init_CRT); + struct rte_crypto_asym_xform xform = { }; + SET_RSA_PARAM(xform.rsa, vector, n); + SET_RSA_PARAM(xform.rsa, vector, e); + SET_RSA_PARAM_QT(xform.rsa, vector, p); + SET_RSA_PARAM_QT(xform.rsa, vector, q); + SET_RSA_PARAM_QT(xform.rsa, vector, dP); + SET_RSA_PARAM_QT(xform.rsa, vector, dQ); + SET_RSA_PARAM_QT(xform.rsa, vector, qInv); + xform.rsa.key_type = RTE_RSA_KEY_TYPE_QT; + int ret = rsa_init_session(&xform); if (ret) { RTE_LOG(ERR, USER1, "Failed to init session for RSA\n"); return ret; } - TEST_ASSERT_SUCCESS(RSA_Decrypt(vector, message, 0), + TEST_ASSERT_SUCCESS(rsa_decrypt(vector, message, 0), "RSA: Failed to encrypt"); TEST_ASSERT_BUFFERS_ARE_EQUAL(vector->message.data, self->result_op->asym->rsa.message.data, @@ -3535,20 +3535,20 @@ static struct unit_test_suite cryptodev_qat_asym_testsuite = { TEST_CASE_NAMED_WITH_DATA( "RSA Encryption (n=128, pt=20, e=3) EXP, Padding: NONE", ut_setup_asym, ut_teardown_asym, - KAT_RSA_Encrypt, &RSA_vector_128_20_3_None), + kat_rsa_encrypt, &rsa_vector_128_20_3_none), TEST_CASE_NAMED_WITH_DATA( "RSA Decryption (n=128, pt=20, e=3) EXP, Padding: NONE", ut_setup_asym, ut_teardown_asym, - KAT_RSA_Decrypt, &RSA_vector_128_20_3_None), + kat_rsa_decrypt, &rsa_vector_128_20_3_none), /* RSA CRT */ TEST_CASE_NAMED_WITH_DATA( "RSA Encryption (n=128, pt=20, e=3) CRT, Padding: NONE", ut_setup_asym, ut_teardown_asym, - KAT_RSA_Encrypt_CRT, &RSA_vector_128_20_3_None), + kat_rsa_encrypt_crt, &rsa_vector_128_20_3_none), TEST_CASE_NAMED_WITH_DATA( "RSA Decryption (n=128, pt=20, e=3) CRT, Padding: NONE", ut_setup_asym, ut_teardown_asym, - KAT_RSA_Decrypt_CRT, &RSA_vector_128_20_3_None), + kat_rsa_decrypt_crt, &rsa_vector_128_20_3_none), TEST_CASES_END() /**< NULL terminate unit test array */ } }; diff --git a/app/test/test_cryptodev_rsa_test_vectors.h b/app/test/test_cryptodev_rsa_test_vectors.h index b4982014a2..89981f13f0 100644 --- a/app/test/test_cryptodev_rsa_test_vectors.h +++ b/app/test/test_cryptodev_rsa_test_vectors.h @@ -72,7 +72,7 @@ struct rsa_test_data_2 { }; static const struct -rsa_test_data_2 RSA_vector_128_20_3_None = { +rsa_test_data_2 rsa_vector_128_20_3_none = { .description = "RSA Encryption Decryption (n=128, pt=20, e=3) EXP, QT", .xform_type = RTE_CRYPTO_ASYM_XFORM_RSA,