From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 8C791A0471 for ; Tue, 16 Jul 2019 20:54:23 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 4CCB91BDF4; Tue, 16 Jul 2019 20:53:39 +0200 (CEST) Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by dpdk.org (Postfix) with ESMTP id 9E14A1BDE4 for ; Tue, 16 Jul 2019 20:53:32 +0200 (CEST) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by orsmga103.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 16 Jul 2019 11:53:32 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.64,271,1559545200"; d="scan'208";a="194985811" Received: from akusztax-mobl.ger.corp.intel.com ([10.104.116.184]) by fmsmga002.fm.intel.com with ESMTP; 16 Jul 2019 11:53:30 -0700 From: Arek Kusztal To: dev@dpdk.org Cc: akhil.goyal@nxp.com, fiona.trahe@intel.com, shallyv@marvell.com, Arek Kusztal Date: Tue, 16 Jul 2019 20:53:03 +0200 Message-Id: <20190716185304.12592-11-arkadiuszx.kusztal@intel.com> X-Mailer: git-send-email 2.19.1.windows.1 In-Reply-To: <20190716185304.12592-1-arkadiuszx.kusztal@intel.com> References: <20190716185304.12592-1-arkadiuszx.kusztal@intel.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: [dpdk-dev] [PATCH v3 10/11] test: add pkcs1_5 padding simulation X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" This patch adds function to simulate pkcs1_5 padding, it serves nothing else than example. It provides no security and should not be used in security context. Signed-off-by: Arek Kusztal --- app/test/test_cryptodev_asym_util.h | 54 +++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) diff --git a/app/test/test_cryptodev_asym_util.h b/app/test/test_cryptodev_asym_util.h index b3d9fb4..f984166 100644 --- a/app/test/test_cryptodev_asym_util.h +++ b/app/test/test_cryptodev_asym_util.h @@ -1,10 +1,64 @@ /* SPDX-License-Identifier: BSD-3-Clause * Copyright(c) 2018 Cavium Networks + * Copyright (c) 2019 Intel Corporation */ #ifndef TEST_CRYPTODEV_ASYM_TEST_UTIL_H__ #define TEST_CRYPTODEV_ASYM_TEST_UTIL_H__ +/* + * Two functions below simulate pkcs 1.5 padding and serves only as an example, + * both offer no security. + */ +static inline int rsa_simulate_pkcs1_5_padding(int op, uint8_t *p, + int key_size, const uint8_t *src, int len) { + + int ps_len; + + if (len > key_size - 11) + return -1; + ps_len = key_size - len - 3; + + *(p++) = 0; + *(p++) = op ? 1 : 2; + if (op) { + while (ps_len--) + *(p++) = 0xFF; + } else { + while (ps_len--) { + *p = (uint8_t)rand(); + *p ^= !(*p); + p++; + } + } + + *(p++) = 0; + memcpy(p, src, len); + + return 0; +} + +static inline int rsa_simulate_strip_pkcs1_5_padding(uint8_t *src, + int key_size) { + uint8_t tmp[key_size], *orig_src = src; + int i = 1; + ++src; + while (*(src) && i < key_size) { + ++i; + ++src; + } + if (i == key_size) + return -1; + + ++i; + ++src; + + memcpy(tmp, src, key_size - i); + memcpy(orig_src, tmp, key_size - i); + return key_size - i; +} + + /* Below Apis compare resulted buffer to original test vector */ static inline int rsa_verify(struct rsa_test_data *rsa_param, -- 2.1.0