From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id A98AD4547B; Mon, 17 Jun 2024 07:59:55 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 0956A4064E; Mon, 17 Jun 2024 07:59:34 +0200 (CEST) Received: from mx0b-0016f401.pphosted.com (mx0a-0016f401.pphosted.com [67.231.148.174]) by mails.dpdk.org (Postfix) with ESMTP id 7DDEA4021E for ; Mon, 17 Jun 2024 07:58:58 +0200 (CEST) Received: from pps.filterd (m0045849.ppops.net [127.0.0.1]) by mx0a-0016f401.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 45GMeOPg031121; Sun, 16 Jun 2024 22:58:57 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=marvell.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=pfpt0220; bh=T UHjX/NR+ywtklQ/F3qtFi1l5J6MGn+/hXn9UFeONAM=; b=C5TMupIShilncaYrN no4sUFuI3gO3B8MrYYWk8yD6ZQ1cKJg0UAavY0tYyI5v4SmIzgUQ3I1XuWd6hO/M m8EGFdwGCXopSFb8H6swPaNA8deZOdmCKcbgnXQaSk9j8lyCY1Sd4j5KdBLYEmMC Cs7ToCNeCdSyemHbpXdoAQnF+UWvBHH559aG2z01a+FJXrkZkyIvKdj+Muwgptj6 aBOCTx0yvQzD+V/U/essrvnVPhvFXE6jLm4/ViFC4N8h3ggdIFfLUVNkCvy4i3EF bIa2rfvkoKz3ooxns3/Uobn1bMN+5ltYHkymR10zQDRKczN9rzCSug9qh6X44frv A4o2g== Received: from dc6wp-exch02.marvell.com ([4.21.29.225]) by mx0a-0016f401.pphosted.com (PPS) with ESMTPS id 3ys8ajv2r2-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Sun, 16 Jun 2024 22:58:57 -0700 (PDT) Received: from DC6WP-EXCH02.marvell.com (10.76.176.209) by DC6WP-EXCH02.marvell.com (10.76.176.209) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.4; Sun, 16 Jun 2024 22:58:56 -0700 Received: from maili.marvell.com (10.69.176.80) by DC6WP-EXCH02.marvell.com (10.76.176.209) with Microsoft SMTP Server id 15.2.1544.4 via Frontend Transport; Sun, 16 Jun 2024 22:58:56 -0700 Received: from localhost.localdomain (unknown [10.28.36.177]) by maili.marvell.com (Postfix) with ESMTP id 6FE2D3F704E; Sun, 16 Jun 2024 22:58:53 -0700 (PDT) From: Aakash Sasidharan To: Akhil Goyal , Fan Zhang CC: , , , , Subject: [PATCH 4/7] test/crypto: verify padding corruption in TLS-1.2 Date: Mon, 17 Jun 2024 11:28:38 +0530 Message-ID: <20240617055841.2359729-5-asasidharan@marvell.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20240617055841.2359729-1-asasidharan@marvell.com> References: <20240617055841.2359729-1-asasidharan@marvell.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain X-Proofpoint-GUID: 35RxsW2A-zbXe41oePOP31twkYdGoOAJ X-Proofpoint-ORIG-GUID: 35RxsW2A-zbXe41oePOP31twkYdGoOAJ X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1039,Hydra:6.0.680,FMLib:17.12.28.16 definitions=2024-06-17_04,2024-06-14_03,2024-05-17_01 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 From: Vidya Sagar Velumuri Add unit test to verify corrupted padding bytes in TLS-1.2 record Signed-off-by: Vidya Sagar Velumuri --- app/test/test_cryptodev.c | 22 ++++++++++++++++++- app/test/test_cryptodev_security_tls_record.c | 7 ++++++ app/test/test_cryptodev_security_tls_record.h | 1 + 3 files changed, 29 insertions(+), 1 deletion(-) diff --git a/app/test/test_cryptodev.c b/app/test/test_cryptodev.c index f3145abfee..f68864e117 100644 --- a/app/test/test_cryptodev.c +++ b/app/test/test_cryptodev.c @@ -12173,7 +12173,7 @@ test_tls_record_proto_all(const struct tls_record_test_flags *flags) if (ret == TEST_SKIPPED) continue; - if (flags->pkt_corruption) { + if (flags->pkt_corruption || flags->padding_corruption) { if (ret == TEST_SUCCESS) return TEST_FAILED; } else { @@ -12404,6 +12404,22 @@ test_tls_record_proto_sg_opt_padding_max(void) return test_tls_record_proto_opt_padding(33, 4, RTE_SECURITY_VERSION_TLS_1_2); } +static int +test_tls_record_proto_sg_opt_padding_corrupt(void) +{ + struct tls_record_test_flags flags = { + .opt_padding = 8, + .padding_corruption = true, + .nb_segs_in_mbuf = 4, + }; + struct crypto_testsuite_params *ts_params = &testsuite_params; + struct rte_cryptodev_info dev_info; + + rte_cryptodev_info_get(ts_params->valid_devs[0], &dev_info); + + return test_tls_record_proto_all(&flags); +} + static int test_dtls_1_2_record_proto_data_walkthrough(void) { @@ -17997,6 +18013,10 @@ static struct unit_test_suite tls12_record_proto_testsuite = { "TLS record SG mode with optional padding > max range", ut_setup_security, ut_teardown, test_tls_record_proto_sg_opt_padding_max), + TEST_CASE_NAMED_ST( + "TLS record SG mode with padding corruption", + ut_setup_security, ut_teardown, + test_tls_record_proto_sg_opt_padding_corrupt), TEST_CASES_END() /**< NULL terminate unit test array */ } }; diff --git a/app/test/test_cryptodev_security_tls_record.c b/app/test/test_cryptodev_security_tls_record.c index 03d9efefc3..1ba9609e1b 100644 --- a/app/test/test_cryptodev_security_tls_record.c +++ b/app/test/test_cryptodev_security_tls_record.c @@ -215,6 +215,13 @@ test_tls_record_td_update(struct tls_record_test_data td_inb[], if (flags->pkt_corruption) td_inb[i].input_text.data[0] = ~td_inb[i].input_text.data[0]; + /* Corrupt a byte in the last but one block */ + if (flags->padding_corruption) { + int offset = td_inb[i].input_text.len - TLS_RECORD_PAD_CORRUPT_OFFSET; + + td_inb[i].input_text.data[offset] = ~td_inb[i].input_text.data[offset]; + } + /* Clear outbound specific flags */ td_inb[i].tls_record_xform.options.iv_gen_disable = 0; } diff --git a/app/test/test_cryptodev_security_tls_record.h b/app/test/test_cryptodev_security_tls_record.h index 18a90c6ff6..acb7f15f1c 100644 --- a/app/test/test_cryptodev_security_tls_record.h +++ b/app/test/test_cryptodev_security_tls_record.h @@ -41,6 +41,7 @@ static_assert(TLS_1_3_RECORD_PLAINTEXT_MAX_LEN <= TEST_SEC_CLEARTEXT_MAX_LEN, "TEST_SEC_CLEARTEXT_MAX_LEN should be at least RECORD MAX LEN!"); #define TLS_RECORD_PLAINTEXT_MIN_LEN (1u) +#define TLS_RECORD_PAD_CORRUPT_OFFSET 20 enum tls_record_test_content_type { TLS_RECORD_TEST_CONTENT_TYPE_APP, -- 2.25.1