All of lore.kernel.org
 help / color / mirror / Atom feed
From: Arek Kusztal <arkadiuszx.kusztal@intel.com>
To: dev@dpdk.org
Cc: akhil.goyal@nxp.com, fiona.trahe@intel.com,
	Arek Kusztal <arkadiuszx.kusztal@intel.com>
Subject: [dpdk-dev] [PATCH v2 5/5] test/crypto: add rsa tests to qat
Date: Fri, 11 Oct 2019 12:03:39 +0200	[thread overview]
Message-ID: <20191011100339.12912-6-arkadiuszx.kusztal@intel.com> (raw)
In-Reply-To: <20191011100339.12912-1-arkadiuszx.kusztal@intel.com>

This commit adds RSA tests to Intel QuickAssist Technology pmd
test suite

Signed-off-by: Arek Kusztal <arkadiuszx.kusztal@intel.com>
---
 app/test/test_cryptodev_asym.c             | 115 ++++++++++++++--
 app/test/test_cryptodev_rsa_test_vectors.h | 213 +++++++++++++++++++++++++++++
 2 files changed, 313 insertions(+), 15 deletions(-)

diff --git a/app/test/test_cryptodev_asym.c b/app/test/test_cryptodev_asym.c
index 31d8bfa..66d0ec5 100644
--- a/app/test/test_cryptodev_asym.c
+++ b/app/test/test_cryptodev_asym.c
@@ -54,6 +54,7 @@ struct crypto_unittest_params {
 union test_case_structure {
 	struct modex_test_data modex;
 	struct modinv_test_data modinv;
+	struct rsa_test_data_2 rsa_data;
 };
 
 struct test_cases_array {
@@ -246,10 +247,12 @@ queue_ops_rsa_enc_dec(struct rte_cryptodev_asym_session *sess)
 	return status;
 }
 static int
-test_cryptodev_asym_ver(union test_case_structure *data_tc,
-						struct rte_crypto_op *result_op)
+test_cryptodev_asym_ver(struct rte_crypto_op *op,
+				struct rte_crypto_asym_xform *xform_tc,
+				union test_case_structure *data_tc,
+				struct rte_crypto_op *result_op)
 {
-	int status = TEST_SUCCESS;
+	int status = TEST_FAILED;
 	int ret = 0;
 	uint8_t *data_expected = NULL, *data_received = NULL;
 	size_t data_size = 0;
@@ -265,17 +268,29 @@ test_cryptodev_asym_ver(union test_case_structure *data_tc,
 		data_received = result_op->asym->modinv.result.data;
 		data_size = result_op->asym->modinv.result.length;
 		break;
+	case RTE_CRYPTO_ASYM_XFORM_RSA:
+		if (op->asym->rsa.op_type == RTE_CRYPTO_ASYM_OP_ENCRYPT) {
+			data_size = xform_tc->rsa.n.length;
+			data_received = result_op->asym->rsa.cipher.data;
+			data_expected = data_tc->rsa_data.ct.data;
+		} else if (op->asym->rsa.op_type == RTE_CRYPTO_ASYM_OP_DECRYPT) {
+			data_size = xform_tc->rsa.n.length;
+			data_expected = data_tc->rsa_data.pt.data;
+			data_received = result_op->asym->rsa.message.data;
+			while (*data_received == 0 && data_size--)
+				data_received++;
+		}
+		break;
 	case RTE_CRYPTO_ASYM_XFORM_DH:
 	case RTE_CRYPTO_ASYM_XFORM_DSA:
-	case RTE_CRYPTO_ASYM_XFORM_RSA:
 	case RTE_CRYPTO_ASYM_XFORM_NONE:
 	case RTE_CRYPTO_ASYM_XFORM_UNSPECIFIED:
 	default:
 		break;
 	}
 	ret = memcmp(data_expected, data_received, data_size);
-	if (ret)
-		status = TEST_FAILED;
+	if (!ret && data_size)
+		status = TEST_SUCCESS;
 
 	return status;
 }
@@ -283,7 +298,8 @@ test_cryptodev_asym_ver(union test_case_structure *data_tc,
 static int
 test_cryptodev_asym_op(struct crypto_testsuite_params *ts_params,
 	union test_case_structure *data_tc,
-	char *test_msg, int sessionless)
+	char *test_msg, int sessionless, enum rte_crypto_asym_op_type type,
+	enum rte_crypto_rsa_priv_key_type key_type)
 {
 	struct rte_crypto_asym_op *asym_op = NULL;
 	struct rte_crypto_op *op = NULL;
@@ -368,9 +384,44 @@ test_cryptodev_asym_op(struct crypto_testsuite_params *ts_params,
 			goto error_exit;
 		}
 		break;
+	case RTE_CRYPTO_ASYM_XFORM_RSA:
+		result = rte_zmalloc(NULL, data_tc->rsa_data.n.len, 0);
+		op->asym->rsa.op_type = type;
+		xform_tc.rsa.e.data = data_tc->rsa_data.e.data;
+		xform_tc.rsa.e.length = data_tc->rsa_data.e.len;
+		xform_tc.rsa.d.data = data_tc->rsa_data.d.data;
+		xform_tc.rsa.d.length = data_tc->rsa_data.d.len;
+		xform_tc.rsa.n.data = data_tc->rsa_data.n.data;
+		xform_tc.rsa.n.length = data_tc->rsa_data.n.len;
+
+		xform_tc.rsa.qt.p.data = data_tc->rsa_data.p.data;
+		xform_tc.rsa.qt.p.length = data_tc->rsa_data.p.len;
+		xform_tc.rsa.qt.q.data = data_tc->rsa_data.q.data;
+		xform_tc.rsa.qt.q.length = data_tc->rsa_data.q.len;
+		xform_tc.rsa.qt.dP.data = data_tc->rsa_data.dP.data;
+		xform_tc.rsa.qt.dP.length = data_tc->rsa_data.dP.len;
+		xform_tc.rsa.qt.dQ.data = data_tc->rsa_data.dQ.data;
+		xform_tc.rsa.qt.dQ.length = data_tc->rsa_data.dQ.len;
+		xform_tc.rsa.qt.qInv.data = data_tc->rsa_data.qInv.data;
+		xform_tc.rsa.qt.qInv.length = data_tc->rsa_data.qInv.len;
+
+		xform_tc.rsa.key_type = key_type;
+		op->asym->rsa.pad = data_tc->rsa_data.padding;
+
+		if (op->asym->rsa.op_type == RTE_CRYPTO_ASYM_OP_ENCRYPT) {
+			asym_op->rsa.message.data = data_tc->rsa_data.pt.data;
+			asym_op->rsa.message.length = data_tc->rsa_data.pt.len;
+			asym_op->rsa.cipher.data = result;
+			asym_op->rsa.cipher.length = data_tc->rsa_data.n.len;
+		} else if (op->asym->rsa.op_type == RTE_CRYPTO_ASYM_OP_DECRYPT) {
+			asym_op->rsa.message.data = result;
+			asym_op->rsa.message.length = data_tc->rsa_data.n.len;
+			asym_op->rsa.cipher.data = data_tc->rsa_data.ct.data;
+			asym_op->rsa.cipher.length = data_tc->rsa_data.ct.len;
+		}
+		break;
 	case RTE_CRYPTO_ASYM_XFORM_DH:
 	case RTE_CRYPTO_ASYM_XFORM_DSA:
-	case RTE_CRYPTO_ASYM_XFORM_RSA:
 	case RTE_CRYPTO_ASYM_XFORM_NONE:
 	case RTE_CRYPTO_ASYM_XFORM_UNSPECIFIED:
 	default:
@@ -429,7 +480,7 @@ test_cryptodev_asym_op(struct crypto_testsuite_params *ts_params,
 		goto error_exit;
 	}
 
-	if (test_cryptodev_asym_ver(data_tc, result_op) != TEST_SUCCESS) {
+	if (test_cryptodev_asym_ver(op, &xform_tc, data_tc, result_op) != TEST_SUCCESS) {
 		snprintf(test_msg, ASYM_TEST_MSG_LEN,
 			"line %u FAILED: %s",
 			__LINE__, "Verification failed ");
@@ -460,18 +511,41 @@ test_cryptodev_asym_op(struct crypto_testsuite_params *ts_params,
 static int
 test_one_case(const void *test_case, int sessionless)
 {
-	int status = TEST_SUCCESS;
+	int status = TEST_SUCCESS, i = 0;
 	char test_msg[ASYM_TEST_MSG_LEN + 1];
 
 	/* Map the case to union */
 	union test_case_structure tc;
 	memcpy(&tc, test_case, sizeof(tc));
 
-	status = test_cryptodev_asym_op(&testsuite_params, &tc, test_msg,
-			sessionless);
-
-	printf("  %u) TestCase %s %s\n", test_index++,
-		tc.modex.description, test_msg);
+	if (tc.modex.xform_type == RTE_CRYPTO_ASYM_XFORM_MODEX
+			|| tc.modex.xform_type == RTE_CRYPTO_ASYM_XFORM_MODINV) {
+		status = test_cryptodev_asym_op(&testsuite_params, &tc, test_msg,
+				sessionless, 0, 0);
+		printf("  %u) TestCase %s %s\n", test_index++,
+			tc.modex.description, test_msg);
+	} else {
+		for (i = 0; i < RTE_CRYPTO_ASYM_OP_LIST_END; i++) {
+			if (tc.modex.xform_type == RTE_CRYPTO_ASYM_XFORM_RSA) {
+				if (tc.rsa_data.op_type_flags & (1 << i)) {
+					if (tc.rsa_data.key_exp)
+						status = test_cryptodev_asym_op(
+							&testsuite_params, &tc,
+							test_msg, sessionless, i,
+							RTE_RSA_KEY_TYPE_EXP);
+					if (tc.rsa_data.key_qt && (i ==
+							RTE_CRYPTO_ASYM_OP_DECRYPT ||
+							i == RTE_CRYPTO_ASYM_OP_SIGN))
+						status = test_cryptodev_asym_op(
+							&testsuite_params,
+							&tc, test_msg, sessionless, i,
+							RTE_RSA_KET_TYPE_QT);
+				}
+			}
+		}
+		printf("  %u) TestCase %s %s\n", test_index++,
+			tc.modex.description, test_msg);
+	}
 
 	return status;
 }
@@ -502,6 +576,17 @@ load_test_vectors(void)
 		test_vector.address[test_vector.size] = &modinv_test_case[i];
 		test_vector.size++;
 	}
+	/* Load RSA vector*/
+	v_size = ARRAY_SIZE(rsa_test_case_list);
+	for (i = 0; i < v_size; i++) {
+		if (test_vector.size >= (TEST_VECTOR_SIZE)) {
+			RTE_LOG(DEBUG, USER1,
+				"TEST_VECTOR_SIZE too small\n");
+			return -1;
+		}
+		test_vector.address[test_vector.size] = &rsa_test_case_list[i];
+		test_vector.size++;
+	}
 	return 0;
 }
 
diff --git a/app/test/test_cryptodev_rsa_test_vectors.h b/app/test/test_cryptodev_rsa_test_vectors.h
index 0dc0375..4545d4d 100644
--- a/app/test/test_cryptodev_rsa_test_vectors.h
+++ b/app/test/test_cryptodev_rsa_test_vectors.h
@@ -5,10 +5,223 @@
 #ifndef TEST_CRYPTODEV_RSA_TEST_VECTORS_H__
 #define TEST_CRYPTODEV_RSA_TEST_VECTORS_H__
 
+#include <stdint.h>
+
 #include "rte_crypto_asym.h"
 
 #define TEST_DATA_SIZE 4096
 
+struct rsa_test_data_2 {
+	enum rte_crypto_asym_xform_type xform_type;
+	const char *description;
+	uint64_t op_type_flags;
+	struct {
+		uint8_t data[DATA_SIZE];
+		uint16_t len;
+	} pt;
+	struct {
+		uint8_t data[DATA_SIZE];
+		uint16_t len;
+	} ct;
+	struct {
+		uint8_t data[DATA_SIZE];
+		uint16_t len;
+	} sign;
+	struct {
+		uint8_t data[DATA_SIZE];
+		uint16_t len;
+	} e;
+	struct {
+		uint8_t data[DATA_SIZE];
+		uint16_t len;
+	} d;
+	struct {
+		uint8_t data[DATA_SIZE];
+		uint16_t len;
+	} n;
+	struct {
+		uint8_t data[DATA_SIZE];
+		uint16_t len;
+	} p;
+	struct {
+		uint8_t data[DATA_SIZE];
+		uint16_t len;
+	} q;
+	struct {
+		uint8_t data[DATA_SIZE];
+		uint16_t len;
+	} dP;
+	struct {
+		uint8_t data[DATA_SIZE];
+		uint16_t len;
+	} dQ;
+	struct {
+		uint8_t data[DATA_SIZE];
+		uint16_t len;
+	} qInv;
+
+	uint16_t result_len;
+	enum rte_crypto_rsa_padding_type padding;
+	int key_exp;
+	int key_qt;
+};
+
+static const struct
+rsa_test_data_2 rsa_test_case_list[] = {
+	{
+		.description = "RSA Encryption Decryption "
+					   "(n=128, pt=20, e=3) EXP, QT",
+		.xform_type = RTE_CRYPTO_ASYM_XFORM_RSA,
+		.op_type_flags = 1UL << RTE_CRYPTO_ASYM_OP_ENCRYPT |
+					1UL << RTE_CRYPTO_ASYM_OP_DECRYPT,
+		.pt = {
+			.data = {
+				0xf8, 0xba, 0x1a, 0x55, 0xd0, 0x2f, 0x85, 0xae,
+				0x96, 0x7b, 0xb6, 0x2f, 0xb6, 0xcd, 0xa8, 0xeb,
+				0x7e, 0x78, 0xa0, 0x50
+			},
+			.len = 20,
+		},
+		.ct = {
+			.data = {
+				0x2C, 0x60, 0x75, 0x45, 0x98, 0x9D, 0xE0, 0x72,
+				0xA0, 0x9D, 0x3A, 0x9E, 0x03, 0x38, 0x73, 0x3C,
+				0x31, 0x83, 0x04, 0xFE, 0x75, 0x43, 0xE6, 0x17,
+				0x5C, 0x01, 0x29, 0x51, 0x69, 0x33, 0x62, 0x2D,
+				0x78, 0xBE, 0xAE, 0xC4, 0xBC, 0xDE, 0x7E, 0x2C,
+				0x77, 0x84, 0xF2, 0xC5, 0x14, 0xB5, 0x2F, 0xF7,
+				0xC5, 0x94, 0xEF, 0x86, 0x75, 0x75, 0xB5, 0x11,
+				0xE5, 0x0E, 0x0A, 0x29, 0x76, 0xE2, 0xEA, 0x32,
+				0x0E, 0x43, 0x77, 0x7E, 0x2C, 0x27, 0xAC, 0x3B,
+				0x86, 0xA5, 0xDB, 0xC9, 0x48, 0x40, 0xE8, 0x99,
+				0x9A, 0x0A, 0x3D, 0xD6, 0x74, 0xFA, 0x2E, 0x2E,
+				0x5B, 0xAF, 0x8C, 0x99, 0x44, 0x2A, 0x67, 0x38,
+				0x27, 0x41, 0x59, 0x9D, 0xB8, 0x51, 0xC9, 0xF7,
+				0x43, 0x61, 0x31, 0x6E, 0xF1, 0x25, 0x38, 0x7F,
+				0xAE, 0xC6, 0xD0, 0xBB, 0x29, 0x76, 0x3F, 0x46,
+				0x2E, 0x1B, 0xE4, 0x67, 0x71, 0xE3, 0x87, 0x5A
+			},
+			.len = 128,
+		},
+		.e = {
+			.data = {
+				0x01, 0x00, 0x01
+			},
+			.len = 3,
+		},
+		.d = {
+			.data = {
+				0x24, 0xd7, 0xea, 0xf4, 0x7f, 0xe0, 0xca, 0x31,
+				0x4d, 0xee, 0xc4, 0xa1, 0xbe, 0xab, 0x06, 0x61,
+				0x32, 0xe7, 0x51, 0x46, 0x27, 0xdf, 0x72, 0xe9,
+				0x6f, 0xa8, 0x4c, 0xd1, 0x26, 0xef, 0x65, 0xeb,
+				0x67, 0xff, 0x5f, 0xa7, 0x3b, 0x25, 0xb9, 0x08,
+				0x8e, 0xa0, 0x47, 0x56, 0xe6, 0x8e, 0xf9, 0xd3,
+				0x18, 0x06, 0x3d, 0xc6, 0xb1, 0xf8, 0xdc, 0x1b,
+				0x8d, 0xe5, 0x30, 0x54, 0x26, 0xac, 0x16, 0x3b,
+				0x7b, 0xad, 0x46, 0x9e, 0x21, 0x6a, 0x57, 0xe6,
+				0x81, 0x56, 0x1d, 0x2a, 0xc4, 0x39, 0x63, 0x67,
+				0x81, 0x2c, 0xca, 0xcc, 0xf8, 0x42, 0x04, 0xbe,
+				0xcf, 0x8f, 0x6c, 0x5b, 0x81, 0x46, 0xb9, 0xc7,
+				0x62, 0x90, 0x87, 0x35, 0x03, 0x9b, 0x89, 0xcb,
+				0x37, 0xbd, 0xf1, 0x1b, 0x99, 0xa1, 0x9a, 0x78,
+				0xd5, 0x4c, 0xdd, 0x3f, 0x41, 0x0c, 0xb7, 0x1a,
+				0xd9, 0x7b, 0x87, 0x5f, 0xbe, 0xb1, 0x83, 0x41
+			},
+			.len = 128,
+		},
+		.n = {
+			.data = {
+				0xb3, 0xa1, 0xaf, 0xb7, 0x13, 0x08, 0x00, 0x0a,
+				0x35, 0xdc, 0x2b, 0x20, 0x8d, 0xa1, 0xb5, 0xce,
+				0x47, 0x8a, 0xc3, 0x80, 0xf4, 0x7d, 0x4a, 0xa2,
+				0x62, 0xfd, 0x61, 0x7f, 0xb5, 0xa8, 0xde, 0x0a,
+				0x17, 0x97, 0xa0, 0xbf, 0xdf, 0x56, 0x5a, 0x3d,
+				0x51, 0x56, 0x4f, 0x70, 0x70, 0x3f, 0x63, 0x6a,
+				0x44, 0x5b, 0xad, 0x84, 0x0d, 0x3f, 0x27, 0x6e,
+				0x3b, 0x34, 0x91, 0x60, 0x14, 0xb9, 0xaa, 0x72,
+				0xfd, 0xa3, 0x64, 0xd2, 0x03, 0xa7, 0x53, 0x87,
+				0x9e, 0x88, 0x0b, 0xc1, 0x14, 0x93, 0x1a, 0x62,
+				0xff, 0xb1, 0x5d, 0x74, 0xcd, 0x59, 0x63, 0x18,
+				0x11, 0x3d, 0x4f, 0xba, 0x75, 0xd4, 0x33, 0x4e,
+				0x23, 0x6b, 0x7b, 0x57, 0x44, 0xe1, 0xd3, 0x03,
+				0x13, 0xa6, 0xf0, 0x8b, 0x60, 0xb0, 0x9e, 0xee,
+				0x75, 0x08, 0x9d, 0x71, 0x63, 0x13, 0xcb, 0xa6,
+				0x81, 0x92, 0x14, 0x03, 0x22, 0x2d, 0xde, 0x55
+			},
+			.len = 128,
+		},
+		.p = {
+			.data = {
+				0xdc, 0xba, 0x00, 0x01, 0x57, 0x93, 0xe3, 0x05,
+				0xed, 0x61, 0x9a, 0xa3, 0xaf, 0x6a, 0xd3, 0x47,
+				0x8f, 0x2d, 0x1e, 0x7f, 0x4d, 0x60, 0xc8, 0x8d,
+				0x34, 0xb8, 0x17, 0x84, 0xbc, 0xd4, 0xe9, 0x79,
+				0x95, 0x75, 0x19, 0x37, 0xe0, 0xcc, 0xfe, 0x4c,
+				0x5d, 0x49, 0x53, 0x61, 0x29, 0xf1, 0xdc, 0x82,
+				0x03, 0x96, 0x7d, 0x95, 0x4f, 0xdd, 0x3c, 0x0a,
+				0x64, 0x8a, 0x43, 0x2f, 0x95, 0x4a, 0xed, 0xdd
+			},
+			.len = 64,
+		},
+		.q = {
+			.data = {
+				0xd0, 0x56, 0x7a, 0x0a, 0xd5, 0x95, 0xa4, 0x85,
+				0x53, 0x35, 0xa1, 0x48, 0x07, 0x6a, 0x7c, 0x08,
+				0xe0, 0xfd, 0x4b, 0x88, 0x77, 0xa6, 0x15, 0x23,
+				0x0f, 0xbf, 0x14, 0x46, 0x11, 0xee, 0x95, 0xc7,
+				0x5e, 0x77, 0x65, 0xa2, 0xb5, 0x50, 0xdf, 0x19,
+				0x07, 0xc7, 0x72, 0xdb, 0x29, 0xf6, 0x54, 0x86,
+				0xe1, 0xb3, 0x97, 0x0a, 0x28, 0x64, 0x3a, 0x38,
+				0xa6, 0x7d, 0x13, 0xc3, 0x79, 0xaa, 0x56, 0xd9
+			},
+			.len = 64,
+		},
+		.dP = {
+			.data = {
+				0xc5, 0x43, 0x0d, 0x82, 0x25, 0x8c, 0xab, 0x55,
+				0xbe, 0xc2, 0x7d, 0xfb, 0x4f, 0x68, 0x3f, 0x0e,
+				0x32, 0xec, 0xf5, 0xd6, 0x7b, 0x86, 0xc5, 0x75,
+				0x3c, 0xea, 0x51, 0x4a, 0x75, 0xa0, 0x2a, 0x50,
+				0x58, 0xbb, 0xe0, 0x1f, 0xca, 0x2e, 0x2a, 0x0e,
+				0x81, 0x48, 0x68, 0xd5, 0xeb, 0x30, 0x96, 0x0b,
+				0x33, 0xbd, 0xa8, 0xda, 0x6a, 0x17, 0xa3, 0xf2,
+				0xfd, 0xcb, 0x7b, 0x23, 0xe9, 0x5e, 0x9f, 0x99
+			},
+			.len = 64,
+		},
+		.dQ = {
+			.data = {
+				0xbe, 0xff, 0xf9, 0x05, 0x43, 0xc8, 0xdc, 0x3b,
+				0x0b, 0x0d, 0x28, 0xde, 0x73, 0x46, 0x11, 0x8e,
+				0xc6, 0x4e, 0x11, 0xd8, 0x7b, 0xf0, 0xfc, 0x81,
+				0xd7, 0x66, 0xd3, 0xbc, 0x65, 0xa6, 0x39, 0x14,
+				0xbd, 0xab, 0x72, 0xb7, 0x57, 0xc9, 0x5b, 0xaf,
+				0x83, 0xed, 0x3b, 0x84, 0x68, 0x15, 0x18, 0x6b,
+				0x4c, 0x32, 0xac, 0x6f, 0x38, 0x96, 0xa2, 0xb5,
+				0xdb, 0x14, 0xe2, 0x70, 0x9c, 0x73, 0x29, 0x09
+			},
+			.len = 64,
+		},
+		.qInv = {
+			.data = {
+				0x59, 0xbd, 0xb1, 0x37, 0xeb, 0x4e, 0xcf, 0x68,
+				0xe7, 0x85, 0x91, 0xbb, 0xc0, 0xdb, 0x8e, 0x41,
+				0x91, 0x4a, 0xc0, 0xb1, 0xc5, 0xe8, 0x91, 0xf6,
+				0xc7, 0x5a, 0x98, 0x1a, 0x8a, 0x0f, 0x45, 0xb2,
+				0x5b, 0xff, 0x7a, 0x2d, 0x98, 0x89, 0x55, 0xd9,
+				0xbf, 0x6e, 0xdd, 0x2d, 0xd4, 0xe8, 0x0a, 0xaa,
+				0xae, 0x2a, 0xc4, 0x16, 0xb5, 0xba, 0xe1, 0x69,
+				0x71, 0x94, 0xdd, 0xa0, 0xf5, 0x1e, 0x6d, 0xcc
+			},
+			.len = 64,
+		},
+		.padding = RTE_CRYPTO_RSA_PADDING_NONE,
+		.key_exp = 1,
+		.key_qt = 1,
+	}
+};
+
 struct rsa_test_data {
 	uint8_t data[TEST_DATA_SIZE];
 	unsigned int len;
-- 
2.1.0


  parent reply	other threads:[~2019-10-11 10:07 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-10-11 10:03 [dpdk-dev] [PATCH v2 0/5] Add session-less, RSA, RSA-CRT to QAT Arek Kusztal
2019-10-11 10:03 ` [dpdk-dev] [PATCH v2 1/5] crypto/qat: add sessionless implementation to asym pmd Arek Kusztal
2019-10-11 10:03 ` [dpdk-dev] [PATCH v2 2/5] crypto/qat: add rsa " Arek Kusztal
2019-10-11 10:03 ` [dpdk-dev] [PATCH v2 3/5] crypto/qat: add rsa crt " Arek Kusztal
2019-10-11 10:03 ` [dpdk-dev] [PATCH v2 4/5] test/crypto: add sessionless to asymmetric mod exp Arek Kusztal
2019-10-11 10:03 ` Arek Kusztal [this message]
2019-10-15 10:22 ` [dpdk-dev] [PATCH v2 0/5] Add session-less, RSA, RSA-CRT to QAT Akhil Goyal
2019-10-17  9:27   ` Trahe, Fiona
2019-10-21 10:47     ` Trahe, Fiona

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20191011100339.12912-6-arkadiuszx.kusztal@intel.com \
    --to=arkadiuszx.kusztal@intel.com \
    --cc=akhil.goyal@nxp.com \
    --cc=dev@dpdk.org \
    --cc=fiona.trahe@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.