DPDK-dev Archive on lore.kernel.org
 help / color / Atom feed
From: Arek Kusztal <arkadiuszx.kusztal@intel.com>
To: dev@dpdk.org
Cc: akhil.goyal@nxp.com, fiona.trahe@intel.com, shallyv@marvell.com,
	Arek Kusztal <arkadiuszx.kusztal@intel.com>
Subject: [dpdk-dev] [PATCH v3 11/11] test: add RSA PKCS1_5 padding case when no padding selected
Date: Tue, 16 Jul 2019 20:53:04 +0200
Message-ID: <20190716185304.12592-12-arkadiuszx.kusztal@intel.com> (raw)
In-Reply-To: <20190716185304.12592-1-arkadiuszx.kusztal@intel.com>

This patch adds an example how to use padding none option with RSA.

Signed-off-by: Arek Kusztal <arkadiuszx.kusztal@intel.com>
---
 app/test/test_cryptodev_asym.c | 46 +++++++++++++++++++++++++++++++++---------
 1 file changed, 37 insertions(+), 9 deletions(-)

diff --git a/app/test/test_cryptodev_asym.c b/app/test/test_cryptodev_asym.c
index 0e1277b..fa5ddab 100644
--- a/app/test/test_cryptodev_asym.c
+++ b/app/test/test_cryptodev_asym.c
@@ -157,13 +157,15 @@ queue_ops_rsa_sign_verify(struct rte_cryptodev_asym_session *sess)
 }
 
 static int
-queue_ops_rsa_enc_dec(struct rte_cryptodev_asym_session *sess)
+queue_ops_rsa_enc_dec(struct rte_cryptodev_asym_session *sess,
+		enum rte_crypto_rsa_padding_type padding)
 {
 	struct crypto_testsuite_params *ts_params = &testsuite_params;
 	struct rte_mempool *op_mpool = ts_params->op_mpool;
 	uint8_t dev_id = ts_params->valid_devs[0];
 	struct rte_crypto_op *op, *result_op;
 	struct rte_crypto_asym_op *asym_op;
+	uint8_t input_buf[TEST_DATA_SIZE] = {0};
 	uint8_t cipher_buf[TEST_DATA_SIZE] = {0};
 	int ret, status = TEST_SUCCESS;
 
@@ -180,11 +182,19 @@ queue_ops_rsa_enc_dec(struct rte_cryptodev_asym_session *sess)
 	/* Compute encryption on the test vector */
 	asym_op->rsa.op_type = RTE_CRYPTO_ASYM_OP_ENCRYPT;
 
-	asym_op->rsa.message.data = rsaplaintext.data;
 	asym_op->rsa.cipher.data = cipher_buf;
 	asym_op->rsa.cipher.length = 0;
-	asym_op->rsa.message.length = rsaplaintext.len;
-	asym_op->rsa.pad = RTE_CRYPTO_RSA_PADDING_PKCS1_5;
+	asym_op->rsa.pad = padding;
+
+	if (padding == RTE_CRYPTO_RSA_PADDING_NONE) {
+		rsa_simulate_pkcs1_5_padding(0, input_buf, rsa_xform.rsa.n.length,
+				rsaplaintext.data, rsaplaintext.len);
+		asym_op->rsa.message.length = rsa_xform.rsa.n.length;
+		asym_op->rsa.message.data = input_buf;
+	} else if (padding == RTE_CRYPTO_RSA_PADDING_PKCS1_5) {
+		asym_op->rsa.message.data = rsaplaintext.data;
+		asym_op->rsa.message.length = rsaplaintext.len;
+	}
 
 	debug_hexdump(stdout, "message", asym_op->rsa.message.data,
 		      asym_op->rsa.message.length);
@@ -215,7 +225,7 @@ queue_ops_rsa_enc_dec(struct rte_cryptodev_asym_session *sess)
 	/* Use the resulted output as decryption Input vector*/
 	asym_op = result_op->asym;
 	asym_op->rsa.op_type = RTE_CRYPTO_ASYM_OP_DECRYPT;
-	asym_op->rsa.pad = RTE_CRYPTO_RSA_PADDING_PKCS1_5;
+	asym_op->rsa.pad = padding;
 
 	/* Process crypto operation */
 	if (rte_cryptodev_enqueue_burst(dev_id, 0, &op, 1) != 1) {
@@ -233,6 +243,13 @@ queue_ops_rsa_enc_dec(struct rte_cryptodev_asym_session *sess)
 		goto error_exit;
 	}
 	status = TEST_SUCCESS;
+
+	if (padding == RTE_CRYPTO_RSA_PADDING_NONE) {
+		result_op->asym->rsa.message.length =
+			rsa_simulate_strip_pkcs1_5_padding(result_op->asym->rsa.message.data,
+			rsa_xform.rsa.n.length);
+	}
+
 	ret = rsa_verify(&rsaplaintext, result_op);
 	if (ret)
 		status = TEST_FAILED;
@@ -562,7 +579,7 @@ test_rsa_sign_verify(void)
 }
 
 static int
-test_rsa_enc_dec(void)
+test_rsa_enc_dec(enum rte_crypto_rsa_padding_type padding)
 {
 	struct crypto_testsuite_params *ts_params = &testsuite_params;
 	struct rte_mempool *sess_mpool = ts_params->session_mpool;
@@ -597,7 +614,7 @@ test_rsa_enc_dec(void)
 		goto error_exit;
 	}
 
-	status = queue_ops_rsa_enc_dec(sess);
+	status = queue_ops_rsa_enc_dec(sess, padding);
 
 error_exit:
 
@@ -610,6 +627,16 @@ test_rsa_enc_dec(void)
 }
 
 static int
+test_rsa_enc_dec_padding_none(void) {
+	return test_rsa_enc_dec(RTE_CRYPTO_RSA_PADDING_NONE);
+}
+
+static int
+test_rsa_enc_dec_padding_pkcs_1(void) {
+	return test_rsa_enc_dec(RTE_CRYPTO_RSA_PADDING_PKCS1_5);
+}
+
+static int
 test_rsa_sign_verify_crt(void)
 {
 	struct crypto_testsuite_params *ts_params = &testsuite_params;
@@ -692,7 +719,7 @@ test_rsa_enc_dec_crt(void)
 		status = TEST_FAILED;
 		goto error_exit;
 	}
-	status = queue_ops_rsa_enc_dec(sess);
+	status = queue_ops_rsa_enc_dec(sess, RTE_CRYPTO_RSA_PADDING_PKCS1_5);
 
 error_exit:
 
@@ -1767,7 +1794,8 @@ static struct unit_test_suite cryptodev_openssl_asym_testsuite  = {
 		TEST_CASE_ST(ut_setup, ut_teardown, test_capability),
 		TEST_CASE_ST(ut_setup, ut_teardown, test_dsa),
 		TEST_CASE_ST(ut_setup, ut_teardown, test_dh_keygenration),
-		TEST_CASE_ST(ut_setup, ut_teardown, test_rsa_enc_dec),
+		TEST_CASE_ST(ut_setup, ut_teardown, test_rsa_enc_dec_padding_none),
+		TEST_CASE_ST(ut_setup, ut_teardown, test_rsa_enc_dec_padding_pkcs_1),
 		TEST_CASE_ST(ut_setup, ut_teardown, test_rsa_sign_verify),
 		TEST_CASE_ST(ut_setup, ut_teardown, test_rsa_enc_dec_crt),
 		TEST_CASE_ST(ut_setup, ut_teardown, test_rsa_sign_verify_crt),
-- 
2.1.0


      parent reply index

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-07-16 18:52 [dpdk-dev] [PATCH v3 00/11] Rework API for RSA algorithm in asymmetric crypto Arek Kusztal
2019-07-16 18:52 ` [dpdk-dev] [PATCH v3 01/11] cryptodev: change RSA API comments about primes Arek Kusztal
2019-07-17  7:32   ` [dpdk-dev] [EXT] " Shally Verma
2019-07-17  8:39     ` Kusztal, ArkadiuszX
2019-07-16 18:52 ` [dpdk-dev] [PATCH v3 02/11] cryptodev: add cipher field to RSA op Arek Kusztal
2019-07-17  7:39   ` [dpdk-dev] [EXT] " Shally Verma
2019-07-17 16:01     ` Kusztal, ArkadiuszX
2019-07-16 18:52 ` [dpdk-dev] [PATCH v3 03/11] crypto/openssl: add cipher field to openssl RSA implementation Arek Kusztal
2019-07-17  7:50   ` [dpdk-dev] [EXT] " Shally Verma
2019-07-16 18:52 ` [dpdk-dev] [PATCH v3 04/11] test: add cipher field to RSA test Arek Kusztal
2019-07-17  7:41   ` [dpdk-dev] [EXT] " Shally Verma
2019-07-17  8:27     ` Kusztal, ArkadiuszX
2019-07-17  9:42     ` Kusztal, ArkadiuszX
2019-07-17 12:54       ` Shally Verma
2019-07-18 12:44         ` Trahe, Fiona
2019-07-19  4:10           ` Shally Verma
2019-07-16 18:52 ` [dpdk-dev] [PATCH v3 05/11] cryptodev: add information about message format when signing with RSA Arek Kusztal
2019-07-17 10:07   ` [dpdk-dev] [EXT] " Shally Verma
2019-07-17 10:26     ` Kusztal, ArkadiuszX
2019-07-16 18:52 ` [dpdk-dev] [PATCH v3 06/11] cryptodev: remove RSA PKCS1 BT0 padding Arek Kusztal
2019-07-17 10:09   ` [dpdk-dev] [EXT] " Shally Verma
2019-07-16 18:53 ` [dpdk-dev] [PATCH v3 07/11] openssl: remove RSA PKCS1_5 " Arek Kusztal
2019-07-17 10:18   ` [dpdk-dev] [EXT] " Shally Verma
2019-07-16 18:53 ` [dpdk-dev] [PATCH v3 08/11] test: remove RSA PKCS1_5 BT0 padding from test cases Arek Kusztal
2019-07-17 10:10   ` [dpdk-dev] [EXT] " Shally Verma
2019-07-16 18:53 ` [dpdk-dev] [PATCH v3 09/11] cryptodev: add RSA padding none description Arek Kusztal
2019-07-17 10:17   ` [dpdk-dev] [EXT] " Shally Verma
2019-07-17 10:40     ` Kusztal, ArkadiuszX
2019-07-16 18:53 ` [dpdk-dev] [PATCH v3 10/11] test: add pkcs1_5 padding simulation Arek Kusztal
2019-07-17 10:22   ` [dpdk-dev] [EXT] " Shally Verma
2019-07-17 10:28     ` Kusztal, ArkadiuszX
2019-07-16 18:53 ` Arek Kusztal [this message]

Reply instructions:

You may reply publically 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=20190716185304.12592-12-arkadiuszx.kusztal@intel.com \
    --to=arkadiuszx.kusztal@intel.com \
    --cc=akhil.goyal@nxp.com \
    --cc=dev@dpdk.org \
    --cc=fiona.trahe@intel.com \
    --cc=shallyv@marvell.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

DPDK-dev Archive on lore.kernel.org

Archives are clonable:
	git clone --mirror https://lore.kernel.org/dpdk-dev/0 dpdk-dev/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 dpdk-dev dpdk-dev/ https://lore.kernel.org/dpdk-dev \
		dev@dpdk.org dpdk-dev@archiver.kernel.org
	public-inbox-index dpdk-dev


Newsgroup available over NNTP:
	nntp://nntp.lore.kernel.org/org.dpdk.dev


AGPL code for this site: git clone https://public-inbox.org/ public-inbox