[dpdk-dev] [PATCH 2/7] test/crypto: Add PDCP cplane decap cases
Akhil Goyal
akhil.goyal at nxp.com
Thu Sep 5 16:47:49 CEST 2019
This patch add test cases for control plane PDCP
5 and 12 bit SN test cases for decapsulation of
cipher+integrity for all algo combinations
Test vectors are reused from the encap cases
by swapping the input and output data.
The case are added to DPAA_SEC and DPAA2_SEC testsuite.
Signed-off-by: Akhil Goyal <akhil.goyal at nxp.com>
Signed-off-by: Vakul Garg <vakul.garg at nxp.com>
Signed-off-by: Hemant Agrawal <hemant.agrawal at nxp.com>
---
app/test/test_cryptodev.c | 18 +++
app/test/test_cryptodev_security_pdcp.c | 105 ++++++++++++++++++
.../test_cryptodev_security_pdcp_test_func.h | 2 +
3 files changed, 125 insertions(+)
diff --git a/app/test/test_cryptodev.c b/app/test/test_cryptodev.c
index 852ca5cbe..14a090667 100644
--- a/app/test/test_cryptodev.c
+++ b/app/test/test_cryptodev.c
@@ -7218,6 +7218,18 @@ test_pdcp_proto_cplane_encap(int i)
pdcp_test_data_in_len[i]+4);
}
+int
+test_pdcp_proto_cplane_decap(int i)
+{
+ return test_pdcp_proto(i, 0,
+ RTE_CRYPTO_CIPHER_OP_DECRYPT,
+ RTE_CRYPTO_AUTH_OP_VERIFY,
+ pdcp_test_data_out[i],
+ pdcp_test_data_in_len[i] + 4,
+ pdcp_test_data_in[i],
+ pdcp_test_data_in_len[i]);
+}
+
#endif
static int
@@ -11635,6 +11647,9 @@ static struct unit_test_suite cryptodev_dpaa_sec_testsuite = {
#ifdef RTE_LIBRTE_SECURITY
TEST_CASE_ST(ut_setup, ut_teardown,
test_PDCP_PROTO_cplane_encap_all),
+
+ TEST_CASE_ST(ut_setup, ut_teardown,
+ test_PDCP_PROTO_cplane_decap_all),
#endif
/** AES GCM Authenticated Encryption */
TEST_CASE_ST(ut_setup, ut_teardown,
@@ -11744,6 +11759,9 @@ static struct unit_test_suite cryptodev_dpaa2_sec_testsuite = {
#ifdef RTE_LIBRTE_SECURITY
TEST_CASE_ST(ut_setup, ut_teardown,
test_PDCP_PROTO_cplane_encap_all),
+
+ TEST_CASE_ST(ut_setup, ut_teardown,
+ test_PDCP_PROTO_cplane_decap_all),
#endif
/** AES GCM Authenticated Encryption */
TEST_CASE_ST(ut_setup, ut_teardown,
diff --git a/app/test/test_cryptodev_security_pdcp.c b/app/test/test_cryptodev_security_pdcp.c
index d79dd9055..f69a4db69 100644
--- a/app/test/test_cryptodev_security_pdcp.c
+++ b/app/test/test_cryptodev_security_pdcp.c
@@ -48,6 +48,31 @@ static int cplane_encap(uint32_t sn_size, uint8_t dir,
return test_pdcp_proto_cplane_encap(i);
}
+static int
+cplane_decap(uint32_t sn_size, uint8_t dir,
+ enum enc_alg_off enc_alg_off,
+ enum auth_alg_off auth_alg_off)
+{
+ int i = 0;
+
+ switch (sn_size) {
+ case 5:
+ i = PDCP_CPLANE_OFFSET + enc_alg_off +
+ auth_alg_off + ((dir == 0) ?
+ UPLINK : DOWNLINK);
+ break;
+ case 12:
+ i = PDCP_CPLANE_LONG_SN_OFFSET + enc_alg_off +
+ auth_alg_off + ((dir == 0) ?
+ UPLINK : DOWNLINK);
+ break;
+ default:
+ printf("\nInvalid SN: %u for %s\n", sn_size, __func__);
+ }
+
+ return test_pdcp_proto_cplane_decap(i);
+}
+
#define TEST_PDCP_COUNT(func) do { \
if (func == TEST_SUCCESS) { \
printf("\t%d)", n++); \
@@ -139,3 +164,83 @@ test_PDCP_PROTO_cplane_encap_all(void)
return n - i;
};
+int
+test_PDCP_PROTO_cplane_decap_all(void)
+{
+ int i = 0, n = 0;
+
+ TEST_PDCP_COUNT(cplane_decap(5, UPLINK, NULL_ENC, NULL_AUTH));
+ TEST_PDCP_COUNT(cplane_decap(5, DOWNLINK, NULL_ENC, NULL_AUTH));
+ TEST_PDCP_COUNT(cplane_decap(5, UPLINK, NULL_ENC, SNOW_AUTH));
+ TEST_PDCP_COUNT(cplane_decap(5, DOWNLINK, NULL_ENC, SNOW_AUTH));
+ TEST_PDCP_COUNT(cplane_decap(5, UPLINK, NULL_ENC, AES_AUTH));
+ TEST_PDCP_COUNT(cplane_decap(5, DOWNLINK, NULL_ENC, AES_AUTH));
+ TEST_PDCP_COUNT(cplane_decap(5, UPLINK, NULL_ENC, ZUC_AUTH));
+ TEST_PDCP_COUNT(cplane_decap(5, DOWNLINK, NULL_ENC, ZUC_AUTH));
+ TEST_PDCP_COUNT(cplane_decap(5, UPLINK, SNOW_ENC, NULL_AUTH));
+ TEST_PDCP_COUNT(cplane_decap(5, DOWNLINK, SNOW_ENC, NULL_AUTH));
+ TEST_PDCP_COUNT(cplane_decap(5, UPLINK, SNOW_ENC, SNOW_AUTH));
+ TEST_PDCP_COUNT(cplane_decap(5, DOWNLINK, SNOW_ENC, SNOW_AUTH));
+ TEST_PDCP_COUNT(cplane_decap(5, UPLINK, SNOW_ENC, AES_AUTH));
+ TEST_PDCP_COUNT(cplane_decap(5, DOWNLINK, SNOW_ENC, AES_AUTH));
+ TEST_PDCP_COUNT(cplane_decap(5, UPLINK, SNOW_ENC, ZUC_AUTH));
+ TEST_PDCP_COUNT(cplane_decap(5, DOWNLINK, SNOW_ENC, ZUC_AUTH));
+ TEST_PDCP_COUNT(cplane_decap(5, UPLINK, AES_ENC, NULL_AUTH));
+ TEST_PDCP_COUNT(cplane_decap(5, DOWNLINK, AES_ENC, NULL_AUTH));
+ TEST_PDCP_COUNT(cplane_decap(5, UPLINK, AES_ENC, SNOW_AUTH));
+ TEST_PDCP_COUNT(cplane_decap(5, DOWNLINK, AES_ENC, SNOW_AUTH));
+ TEST_PDCP_COUNT(cplane_decap(5, UPLINK, AES_ENC, AES_AUTH));
+ TEST_PDCP_COUNT(cplane_decap(5, DOWNLINK, AES_ENC, AES_AUTH));
+ TEST_PDCP_COUNT(cplane_decap(5, UPLINK, AES_ENC, ZUC_AUTH));
+ TEST_PDCP_COUNT(cplane_decap(5, DOWNLINK, AES_ENC, ZUC_AUTH));
+ TEST_PDCP_COUNT(cplane_decap(5, UPLINK, ZUC_ENC, NULL_AUTH));
+ TEST_PDCP_COUNT(cplane_decap(5, DOWNLINK, ZUC_ENC, NULL_AUTH));
+ TEST_PDCP_COUNT(cplane_decap(5, UPLINK, ZUC_ENC, SNOW_AUTH));
+ TEST_PDCP_COUNT(cplane_decap(5, DOWNLINK, ZUC_ENC, SNOW_AUTH));
+ TEST_PDCP_COUNT(cplane_decap(5, UPLINK, ZUC_ENC, AES_AUTH));
+ TEST_PDCP_COUNT(cplane_decap(5, DOWNLINK, ZUC_ENC, AES_AUTH));
+ TEST_PDCP_COUNT(cplane_decap(5, UPLINK, ZUC_ENC, ZUC_AUTH));
+ TEST_PDCP_COUNT(cplane_decap(5, DOWNLINK, ZUC_ENC, ZUC_AUTH));
+
+ /* C-plane 12-bit */
+ TEST_PDCP_COUNT(cplane_decap(12, UPLINK, NULL_ENC, NULL_AUTH));
+ TEST_PDCP_COUNT(cplane_decap(12, DOWNLINK, NULL_ENC, NULL_AUTH));
+ TEST_PDCP_COUNT(cplane_decap(12, UPLINK, NULL_ENC, SNOW_AUTH));
+ TEST_PDCP_COUNT(cplane_decap(12, DOWNLINK, NULL_ENC, SNOW_AUTH));
+ TEST_PDCP_COUNT(cplane_decap(12, UPLINK, NULL_ENC, AES_AUTH));
+ TEST_PDCP_COUNT(cplane_decap(12, DOWNLINK, NULL_ENC, AES_AUTH));
+ TEST_PDCP_COUNT(cplane_decap(12, UPLINK, NULL_ENC, ZUC_AUTH));
+ TEST_PDCP_COUNT(cplane_decap(12, DOWNLINK, NULL_ENC, ZUC_AUTH));
+ TEST_PDCP_COUNT(cplane_decap(12, UPLINK, SNOW_ENC, NULL_AUTH));
+ TEST_PDCP_COUNT(cplane_decap(12, DOWNLINK, SNOW_ENC, NULL_AUTH));
+ TEST_PDCP_COUNT(cplane_decap(12, UPLINK, SNOW_ENC, SNOW_AUTH));
+ TEST_PDCP_COUNT(cplane_decap(12, DOWNLINK, SNOW_ENC, SNOW_AUTH));
+ TEST_PDCP_COUNT(cplane_decap(12, UPLINK, SNOW_ENC, AES_AUTH));
+ TEST_PDCP_COUNT(cplane_decap(12, DOWNLINK, SNOW_ENC, AES_AUTH));
+ TEST_PDCP_COUNT(cplane_decap(12, UPLINK, SNOW_ENC, ZUC_AUTH));
+ TEST_PDCP_COUNT(cplane_decap(12, DOWNLINK, SNOW_ENC, ZUC_AUTH));
+ TEST_PDCP_COUNT(cplane_decap(12, UPLINK, AES_ENC, NULL_AUTH));
+ TEST_PDCP_COUNT(cplane_decap(12, DOWNLINK, AES_ENC, NULL_AUTH));
+ TEST_PDCP_COUNT(cplane_decap(12, UPLINK, AES_ENC, SNOW_AUTH));
+
+ TEST_PDCP_COUNT(cplane_decap(12, DOWNLINK, AES_ENC, SNOW_AUTH));
+ TEST_PDCP_COUNT(cplane_decap(12, UPLINK, AES_ENC, AES_AUTH));
+ TEST_PDCP_COUNT(cplane_decap(12, DOWNLINK, AES_ENC, AES_AUTH));
+ TEST_PDCP_COUNT(cplane_decap(12, UPLINK, AES_ENC, ZUC_AUTH));
+ TEST_PDCP_COUNT(cplane_decap(12, DOWNLINK, AES_ENC, ZUC_AUTH));
+
+ TEST_PDCP_COUNT(cplane_decap(12, UPLINK, ZUC_ENC, NULL_AUTH));
+ TEST_PDCP_COUNT(cplane_decap(12, DOWNLINK, ZUC_ENC, NULL_AUTH));
+ TEST_PDCP_COUNT(cplane_decap(12, UPLINK, ZUC_ENC, SNOW_AUTH));
+ TEST_PDCP_COUNT(cplane_decap(12, DOWNLINK, ZUC_ENC, SNOW_AUTH));
+ TEST_PDCP_COUNT(cplane_decap(12, UPLINK, ZUC_ENC, AES_AUTH));
+ TEST_PDCP_COUNT(cplane_decap(12, DOWNLINK, ZUC_ENC, AES_AUTH));
+ TEST_PDCP_COUNT(cplane_decap(12, UPLINK, ZUC_ENC, ZUC_AUTH));
+ TEST_PDCP_COUNT(cplane_decap(12, DOWNLINK, ZUC_ENC, ZUC_AUTH));
+
+ if (n - i)
+ printf("## %s: %d passed out of %d\n", __func__, i, n);
+
+ return n - i;
+};
+
diff --git a/app/test/test_cryptodev_security_pdcp_test_func.h b/app/test/test_cryptodev_security_pdcp_test_func.h
index ad1e7c70a..21a6e8a48 100644
--- a/app/test/test_cryptodev_security_pdcp_test_func.h
+++ b/app/test/test_cryptodev_security_pdcp_test_func.h
@@ -30,7 +30,9 @@ enum auth_alg_off {
};
int test_pdcp_proto_cplane_encap(int i);
+int test_pdcp_proto_cplane_decap(int i);
int test_PDCP_PROTO_cplane_encap_all(void);
+int test_PDCP_PROTO_cplane_decap_all(void);
#endif /* SECURITY_PDCP_TEST_FUNC_H_ */
--
2.17.1
More information about the dev
mailing list