* [dpdk-dev] [PATCH] test: add snow3g test cases when digest is encrypted
@ 2019-02-13 8:43 Lukasz Krakowiak
2019-02-13 10:20 ` Lukasz Krakowiak
2019-02-27 10:18 ` [dpdk-dev] [PATCH v2] " Lukasz Krakowiak
0 siblings, 2 replies; 14+ messages in thread
From: Lukasz Krakowiak @ 2019-02-13 8:43 UTC (permalink / raw)
To: pablo.de.lara.guarch; +Cc: dev, stable, Lukasz Krakowiak
Add test case for encryption, dectryption for snow3g when digest
is encrypted
Change-Id: I75bb535fa46ae23104f17d9c51278eca2c76e021
Signed-off-by: Lukasz Krakowiak <lukaszx.krakowiak@intel.com>
---
test/test/test_cryptodev.c | 91 ++++++++++--
.../test/test_cryptodev_snow3g_test_vectors.h | 132 +++++++++++++++++-
2 files changed, 210 insertions(+), 13 deletions(-)
diff --git a/test/test/test_cryptodev.c b/test/test/test_cryptodev.c
index 32f1893bc..d8acfc7d1 100644
--- a/test/test/test_cryptodev.c
+++ b/test/test/test_cryptodev.c
@@ -2833,8 +2833,8 @@ create_wireless_algo_auth_cipher_operation(unsigned int auth_tag_len,
sym_op->m_src = ut_params->ibuf;
/* digest */
- sym_op->auth.digest.data = (uint8_t *)rte_pktmbuf_append(
- ut_params->ibuf, auth_tag_len);
+ sym_op->auth.digest.data = (uint8_t *) rte_pktmbuf_mtod_offset(
+ ut_params->ibuf, uint8_t *, data_pad_len);
TEST_ASSERT_NOT_NULL(sym_op->auth.digest.data,
"no room to append auth tag");
@@ -2844,10 +2844,6 @@ create_wireless_algo_auth_cipher_operation(unsigned int auth_tag_len,
memset(sym_op->auth.digest.data, 0, auth_tag_len);
- debug_hexdump(stdout, "digest:",
- sym_op->auth.digest.data,
- auth_tag_len);
-
/* Copy cipher and auth IVs at the end of the crypto operation */
uint8_t *iv_ptr = rte_crypto_op_ctod_offset(ut_params->op, uint8_t *,
IV_OFFSET);
@@ -4052,7 +4048,7 @@ static int test_snow3g_decryption(const struct snow3g_test_data *tdata)
retval = create_wireless_algo_cipher_operation(tdata->cipher_iv.data,
tdata->cipher_iv.len,
tdata->validCipherLenInBits.len,
- 0);
+ tdata->cipher.offset_bits);
if (retval < 0)
return retval;
@@ -4360,11 +4356,12 @@ test_snow3g_auth_cipher(const struct snow3g_test_data *tdata)
tdata->digest.len,
tdata->cipher_iv.data, tdata->cipher_iv.len,
tdata->auth_iv.data, tdata->auth_iv.len,
- plaintext_pad_len,
+ tdata->digest.offset_bytes == 0 ?
+ plaintext_pad_len : tdata->digest.offset_bytes,
tdata->validCipherLenInBits.len,
- 0,
+ tdata->cipher.offset_bits,
tdata->validAuthLenInBits.len,
- 0);
+ tdata->auth.offset_bits);
if (retval < 0)
return retval;
@@ -4379,7 +4376,10 @@ test_snow3g_auth_cipher(const struct snow3g_test_data *tdata)
ciphertext = plaintext;
ut_params->digest = rte_pktmbuf_mtod(ut_params->obuf, uint8_t *)
- + plaintext_pad_len;
+ + (tdata->digest.offset_bytes == 0 ?
+ plaintext_pad_len : tdata->digest.offset_bytes);
+
+ debug_hexdump(stdout, "digest:", ut_params->digest, tdata->digest.len);
debug_hexdump(stdout, "ciphertext:", ciphertext, plaintext_len);
/* Validate obuf */
@@ -4973,6 +4973,61 @@ test_snow3g_decryption_test_case_5(void)
{
return test_snow3g_decryption(&snow3g_test_case_5);
}
+
+/*
+ * Function prepares snow3g_hash_test_data from snow3g_test_data.
+ * Pattern digest from snow3g_test_data must be allocated as
+ * 4 last bytes in plaintext.
+ */
+static void
+snow3g_hash_test_vector_setup(const struct snow3g_test_data *pattern,
+ struct snow3g_hash_test_data *output)
+{
+ if ((pattern != NULL) && (output != NULL)) {
+ output->key.len = pattern->key.len;
+
+ memcpy(output->key.data,
+ pattern->key.data, pattern->key.len);
+
+ output->auth_iv.len = pattern->auth_iv.len;
+
+ memcpy(output->auth_iv.data,
+ pattern->auth_iv.data, pattern->auth_iv.len);
+
+ output->plaintext.len = pattern->plaintext.len;
+
+ memcpy(output->plaintext.data,
+ pattern->plaintext.data, pattern->plaintext.len >> 3);
+
+ output->digest.len = pattern->digest.len;
+
+ memcpy(output->digest.data,
+ &pattern->plaintext.data[pattern->digest.offset_bytes],
+ pattern->digest.len);
+
+ output->validAuthLenInBits.len =
+ pattern->validAuthLenInBits.len;
+ }
+}
+
+/*
+ * Test case verify computed cipher and digest from snow3g_test_case_7 data.
+ */
+static int
+test_snow3g_decryption_with_digest_test_case_1(void)
+{
+ struct snow3g_hash_test_data snow3g_hash_data;
+
+ /*
+ * Function prepare data for hash veryfication test case.
+ * Digest is allocated in 4 last bytes in plaintext, pattern.
+ */
+ snow3g_hash_test_vector_setup(&snow3g_test_case_7, &snow3g_hash_data);
+
+ return test_snow3g_decryption(&snow3g_test_case_7) &
+ test_snow3g_authentication_verify(&snow3g_hash_data);
+}
+
static int
test_snow3g_cipher_auth_test_case_1(void)
{
@@ -4985,6 +5040,12 @@ test_snow3g_auth_cipher_test_case_1(void)
return test_snow3g_auth_cipher(&snow3g_test_case_6);
}
+static int
+test_snow3g_auth_cipher_with_digest_test_case_1(void)
+{
+ return test_snow3g_auth_cipher(&snow3g_test_case_7);
+}
+
static int
test_kasumi_auth_cipher_test_case_1(void)
{
@@ -9138,6 +9199,8 @@ static struct unit_test_suite cryptodev_qat_testsuite = {
test_snow3g_decryption_test_case_4),
TEST_CASE_ST(ut_setup, ut_teardown,
test_snow3g_decryption_test_case_5),
+ TEST_CASE_ST(ut_setup, ut_teardown,
+ test_snow3g_decryption_with_digest_test_case_1),
TEST_CASE_ST(ut_setup, ut_teardown,
test_snow3g_hash_generate_test_case_1),
TEST_CASE_ST(ut_setup, ut_teardown,
@@ -9154,6 +9217,8 @@ static struct unit_test_suite cryptodev_qat_testsuite = {
test_snow3g_cipher_auth_test_case_1),
TEST_CASE_ST(ut_setup, ut_teardown,
test_snow3g_auth_cipher_test_case_1),
+ TEST_CASE_ST(ut_setup, ut_teardown,
+ test_snow3g_auth_cipher_with_digest_test_case_1),
/** ZUC encrypt only (EEA3) */
TEST_CASE_ST(ut_setup, ut_teardown,
@@ -9872,6 +9937,8 @@ static struct unit_test_suite cryptodev_sw_snow3g_testsuite = {
test_snow3g_encryption_test_case_4),
TEST_CASE_ST(ut_setup, ut_teardown,
test_snow3g_encryption_test_case_5),
+ TEST_CASE_ST(ut_setup, ut_teardown,
+ test_snow3g_auth_cipher_with_digest_test_case_1),
TEST_CASE_ST(ut_setup, ut_teardown,
test_snow3g_encryption_test_case_1_oop),
@@ -9894,6 +9961,8 @@ static struct unit_test_suite cryptodev_sw_snow3g_testsuite = {
test_snow3g_decryption_test_case_4),
TEST_CASE_ST(ut_setup, ut_teardown,
test_snow3g_decryption_test_case_5),
+ TEST_CASE_ST(ut_setup, ut_teardown,
+ test_snow3g_decryption_with_digest_test_case_1),
TEST_CASE_ST(ut_setup, ut_teardown,
test_snow3g_hash_generate_test_case_1),
TEST_CASE_ST(ut_setup, ut_teardown,
diff --git a/test/test/test_cryptodev_snow3g_test_vectors.h b/test/test/test_cryptodev_snow3g_test_vectors.h
index cb9dc4b35..3e55ac1f9 100644
--- a/test/test/test_cryptodev_snow3g_test_vectors.h
+++ b/test/test/test_cryptodev_snow3g_test_vectors.h
@@ -45,8 +45,19 @@ struct snow3g_test_data {
struct {
uint8_t data[64];
- unsigned len;
+ unsigned int len; /* length must be in Bytes */
+ unsigned int offset_bytes; /* offset must be in Bytes */
} digest;
+
+ struct {
+ unsigned int len_bits; /* length must be in Bits */
+ unsigned int offset_bits;
+ } cipher;
+
+ struct {
+ unsigned int len_bits; /* length must be in Bits */
+ unsigned int offset_bits;
+ } auth;
};
struct snow3g_test_data snow3g_test_case_1 = {
.key = {
@@ -99,6 +110,9 @@ struct snow3g_test_data snow3g_test_case_1 = {
},
.len = 800
},
+ .cipher = {
+ .offset_bits = 0
+ },
.validDataLenInBits = {
.len = 798
},
@@ -155,6 +169,9 @@ struct snow3g_test_data snow3g_test_case_2 = {
},
.len = 512
},
+ .cipher = {
+ .offset_bits = 0
+ },
.validDataLenInBits = {
.len = 510
},
@@ -199,6 +216,9 @@ struct snow3g_test_data snow3g_test_case_3 = {
},
.len = 120
},
+ .cipher = {
+ .offset_bits = 0
+ },
.validDataLenInBits = {
.len = 120
},
@@ -254,6 +274,9 @@ struct snow3g_test_data snow3g_test_case_4 = {
},
.len = 256
},
+ .cipher = {
+ .offset_bits = 0
+ },
.validDataLenInBits = {
.len = 253
},
@@ -314,6 +337,9 @@ struct snow3g_test_data snow3g_test_case_5 = {
},
.len = 840
},
+ .cipher = {
+ .offset_bits = 0
+ },
.validDataLenInBits = {
.len = 837
},
@@ -365,9 +391,18 @@ struct snow3g_test_data snow3g_test_case_6 = {
},
.len = 384
},
+ .cipher = {
+ .len_bits = 384,
+ .offset_bits = 0
+ },
+ .auth = {
+ .len_bits = 384,
+ .offset_bits = 0
+ },
.digest = {
.data = {0x38, 0xB5, 0x54, 0xC0 },
- .len = 4
+ .len = 4,
+ .offset_bytes = 0
},
.validDataLenInBits = {
.len = 384
@@ -380,4 +415,97 @@ struct snow3g_test_data snow3g_test_case_6 = {
},
};
+
+struct snow3g_test_data snow3g_test_case_7 = {
+ .key = {
+ .data = {
+ 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08,
+ 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10
+
+ },
+ .len = 16
+ },
+ .cipher_iv = {
+ .data = {
+ 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08,
+ 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08
+ },
+ .len = 16
+ },
+ .auth_iv = {
+ .data = {
+ 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+ },
+ .len = 16
+ },
+ .plaintext = {
+ .data = {
+ 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
+ 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
+ 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
+ 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
+ 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
+ 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
+ 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
+ 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
+ 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
+ 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
+ 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
+ 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
+ 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
+ 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
+ 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
+ 0x5A, 0x5A, 0x5A, 0x5A, 0xF1, 0x9E, 0x2B, 0x6F,
+ },
+ .len = 128 << 3
+ },
+ .ciphertext = {
+ .data = {
+ 0x5A, 0x5A, 0xE4, 0xAD, 0x29, 0xA2, 0x6A, 0xA6,
+ 0x20, 0x1D, 0xCD, 0x08, 0x50, 0xD6, 0xE6, 0x47,
+ 0xBC, 0x88, 0x08, 0x01, 0x17, 0xFA, 0x47, 0x5B,
+ 0x90, 0x40, 0xBA, 0x0C, 0xB5, 0x58, 0xF3, 0x0C,
+ 0xA0, 0xD4, 0x98, 0x83, 0x1B, 0xCE, 0x54, 0xE3,
+ 0x29, 0x00, 0x3C, 0xA4, 0xAD, 0x74, 0xEE, 0x05,
+ 0xA3, 0x6C, 0xD4, 0xAC, 0xC6, 0x30, 0x33, 0xC9,
+ 0x37, 0x57, 0x41, 0x9B, 0xD4, 0x73, 0xB9, 0x77,
+ 0x70, 0x8B, 0x63, 0xDD, 0x22, 0xB8, 0xE1, 0x85,
+ 0xB2, 0x92, 0x7C, 0x37, 0xD3, 0x2E, 0xD9, 0xF4,
+ 0x4A, 0x69, 0x25, 0x30, 0xE3, 0x5B, 0x8B, 0xF6,
+ 0x0F, 0xDE, 0x0B, 0x92, 0xD5, 0x25, 0x52, 0x6D,
+ 0x26, 0xEB, 0x2F, 0x8A, 0x3B, 0x8B, 0x38, 0xE2,
+ 0x48, 0xD3, 0x4A, 0x98, 0xF7, 0x3A, 0xC2, 0x46,
+ 0x69, 0x8D, 0x73, 0x3E, 0x57, 0x88, 0x2C, 0x80,
+ 0xF0, 0xF2, 0x75, 0xB8, 0x7D, 0x27, 0xC6, 0xDA,
+
+ },
+ .len = 128 << 3
+ },
+ .cipher = {
+ .len_bits = 126 << 3,
+ .offset_bits = 2 << 3
+ },
+ .auth = {
+ .len_bits = 124 << 3,
+ .offset_bits = 0
+ },
+ .digest = {
+ .data = {
+ 0x7D, 0x27, 0xC6, 0xDA
+ },
+ .len = 4,
+ .offset_bytes = 124
+ },
+ .validDataLenInBits = {
+ .len = 128 << 3
+ },
+ .validCipherLenInBits = {
+ .len = 126 << 3
+ },
+ .validAuthLenInBits = {
+ .len = 124 << 3
+ },
+};
+
#endif /* TEST_CRYPTODEV_SNOW3G_TEST_VECTORS_H_ */
--
2.19.2
^ permalink raw reply [flat|nested] 14+ messages in thread
* [dpdk-dev] [PATCH] test: add snow3g test cases when digest is encrypted
2019-02-13 8:43 [dpdk-dev] [PATCH] test: add snow3g test cases when digest is encrypted Lukasz Krakowiak
@ 2019-02-13 10:20 ` Lukasz Krakowiak
2019-02-27 10:18 ` [dpdk-dev] [PATCH v2] " Lukasz Krakowiak
1 sibling, 0 replies; 14+ messages in thread
From: Lukasz Krakowiak @ 2019-02-13 10:20 UTC (permalink / raw)
To: pablo.de.lara.guarch; +Cc: dev, stable, fiona.trahe, Lukasz Krakowiak
Add test case for encryption, dectryption for snow3g when digest
is encrypted
Signed-off-by: Lukasz Krakowiak <lukaszx.krakowiak@intel.com>
---
test/test/test_cryptodev.c | 91 ++++++++++--
.../test/test_cryptodev_snow3g_test_vectors.h | 132 +++++++++++++++++-
2 files changed, 210 insertions(+), 13 deletions(-)
diff --git a/test/test/test_cryptodev.c b/test/test/test_cryptodev.c
index 32f1893bc..d8acfc7d1 100644
--- a/test/test/test_cryptodev.c
+++ b/test/test/test_cryptodev.c
@@ -2833,8 +2833,8 @@ create_wireless_algo_auth_cipher_operation(unsigned int auth_tag_len,
sym_op->m_src = ut_params->ibuf;
/* digest */
- sym_op->auth.digest.data = (uint8_t *)rte_pktmbuf_append(
- ut_params->ibuf, auth_tag_len);
+ sym_op->auth.digest.data = (uint8_t *) rte_pktmbuf_mtod_offset(
+ ut_params->ibuf, uint8_t *, data_pad_len);
TEST_ASSERT_NOT_NULL(sym_op->auth.digest.data,
"no room to append auth tag");
@@ -2844,10 +2844,6 @@ create_wireless_algo_auth_cipher_operation(unsigned int auth_tag_len,
memset(sym_op->auth.digest.data, 0, auth_tag_len);
- debug_hexdump(stdout, "digest:",
- sym_op->auth.digest.data,
- auth_tag_len);
-
/* Copy cipher and auth IVs at the end of the crypto operation */
uint8_t *iv_ptr = rte_crypto_op_ctod_offset(ut_params->op, uint8_t *,
IV_OFFSET);
@@ -4052,7 +4048,7 @@ static int test_snow3g_decryption(const struct snow3g_test_data *tdata)
retval = create_wireless_algo_cipher_operation(tdata->cipher_iv.data,
tdata->cipher_iv.len,
tdata->validCipherLenInBits.len,
- 0);
+ tdata->cipher.offset_bits);
if (retval < 0)
return retval;
@@ -4360,11 +4356,12 @@ test_snow3g_auth_cipher(const struct snow3g_test_data *tdata)
tdata->digest.len,
tdata->cipher_iv.data, tdata->cipher_iv.len,
tdata->auth_iv.data, tdata->auth_iv.len,
- plaintext_pad_len,
+ tdata->digest.offset_bytes == 0 ?
+ plaintext_pad_len : tdata->digest.offset_bytes,
tdata->validCipherLenInBits.len,
- 0,
+ tdata->cipher.offset_bits,
tdata->validAuthLenInBits.len,
- 0);
+ tdata->auth.offset_bits);
if (retval < 0)
return retval;
@@ -4379,7 +4376,10 @@ test_snow3g_auth_cipher(const struct snow3g_test_data *tdata)
ciphertext = plaintext;
ut_params->digest = rte_pktmbuf_mtod(ut_params->obuf, uint8_t *)
- + plaintext_pad_len;
+ + (tdata->digest.offset_bytes == 0 ?
+ plaintext_pad_len : tdata->digest.offset_bytes);
+
+ debug_hexdump(stdout, "digest:", ut_params->digest, tdata->digest.len);
debug_hexdump(stdout, "ciphertext:", ciphertext, plaintext_len);
/* Validate obuf */
@@ -4973,6 +4973,61 @@ test_snow3g_decryption_test_case_5(void)
{
return test_snow3g_decryption(&snow3g_test_case_5);
}
+
+/*
+ * Function prepares snow3g_hash_test_data from snow3g_test_data.
+ * Pattern digest from snow3g_test_data must be allocated as
+ * 4 last bytes in plaintext.
+ */
+static void
+snow3g_hash_test_vector_setup(const struct snow3g_test_data *pattern,
+ struct snow3g_hash_test_data *output)
+{
+ if ((pattern != NULL) && (output != NULL)) {
+ output->key.len = pattern->key.len;
+
+ memcpy(output->key.data,
+ pattern->key.data, pattern->key.len);
+
+ output->auth_iv.len = pattern->auth_iv.len;
+
+ memcpy(output->auth_iv.data,
+ pattern->auth_iv.data, pattern->auth_iv.len);
+
+ output->plaintext.len = pattern->plaintext.len;
+
+ memcpy(output->plaintext.data,
+ pattern->plaintext.data, pattern->plaintext.len >> 3);
+
+ output->digest.len = pattern->digest.len;
+
+ memcpy(output->digest.data,
+ &pattern->plaintext.data[pattern->digest.offset_bytes],
+ pattern->digest.len);
+
+ output->validAuthLenInBits.len =
+ pattern->validAuthLenInBits.len;
+ }
+}
+
+/*
+ * Test case verify computed cipher and digest from snow3g_test_case_7 data.
+ */
+static int
+test_snow3g_decryption_with_digest_test_case_1(void)
+{
+ struct snow3g_hash_test_data snow3g_hash_data;
+
+ /*
+ * Function prepare data for hash veryfication test case.
+ * Digest is allocated in 4 last bytes in plaintext, pattern.
+ */
+ snow3g_hash_test_vector_setup(&snow3g_test_case_7, &snow3g_hash_data);
+
+ return test_snow3g_decryption(&snow3g_test_case_7) &
+ test_snow3g_authentication_verify(&snow3g_hash_data);
+}
+
static int
test_snow3g_cipher_auth_test_case_1(void)
{
@@ -4985,6 +5040,12 @@ test_snow3g_auth_cipher_test_case_1(void)
return test_snow3g_auth_cipher(&snow3g_test_case_6);
}
+static int
+test_snow3g_auth_cipher_with_digest_test_case_1(void)
+{
+ return test_snow3g_auth_cipher(&snow3g_test_case_7);
+}
+
static int
test_kasumi_auth_cipher_test_case_1(void)
{
@@ -9138,6 +9199,8 @@ static struct unit_test_suite cryptodev_qat_testsuite = {
test_snow3g_decryption_test_case_4),
TEST_CASE_ST(ut_setup, ut_teardown,
test_snow3g_decryption_test_case_5),
+ TEST_CASE_ST(ut_setup, ut_teardown,
+ test_snow3g_decryption_with_digest_test_case_1),
TEST_CASE_ST(ut_setup, ut_teardown,
test_snow3g_hash_generate_test_case_1),
TEST_CASE_ST(ut_setup, ut_teardown,
@@ -9154,6 +9217,8 @@ static struct unit_test_suite cryptodev_qat_testsuite = {
test_snow3g_cipher_auth_test_case_1),
TEST_CASE_ST(ut_setup, ut_teardown,
test_snow3g_auth_cipher_test_case_1),
+ TEST_CASE_ST(ut_setup, ut_teardown,
+ test_snow3g_auth_cipher_with_digest_test_case_1),
/** ZUC encrypt only (EEA3) */
TEST_CASE_ST(ut_setup, ut_teardown,
@@ -9872,6 +9937,8 @@ static struct unit_test_suite cryptodev_sw_snow3g_testsuite = {
test_snow3g_encryption_test_case_4),
TEST_CASE_ST(ut_setup, ut_teardown,
test_snow3g_encryption_test_case_5),
+ TEST_CASE_ST(ut_setup, ut_teardown,
+ test_snow3g_auth_cipher_with_digest_test_case_1),
TEST_CASE_ST(ut_setup, ut_teardown,
test_snow3g_encryption_test_case_1_oop),
@@ -9894,6 +9961,8 @@ static struct unit_test_suite cryptodev_sw_snow3g_testsuite = {
test_snow3g_decryption_test_case_4),
TEST_CASE_ST(ut_setup, ut_teardown,
test_snow3g_decryption_test_case_5),
+ TEST_CASE_ST(ut_setup, ut_teardown,
+ test_snow3g_decryption_with_digest_test_case_1),
TEST_CASE_ST(ut_setup, ut_teardown,
test_snow3g_hash_generate_test_case_1),
TEST_CASE_ST(ut_setup, ut_teardown,
diff --git a/test/test/test_cryptodev_snow3g_test_vectors.h b/test/test/test_cryptodev_snow3g_test_vectors.h
index cb9dc4b35..3e55ac1f9 100644
--- a/test/test/test_cryptodev_snow3g_test_vectors.h
+++ b/test/test/test_cryptodev_snow3g_test_vectors.h
@@ -45,8 +45,19 @@ struct snow3g_test_data {
struct {
uint8_t data[64];
- unsigned len;
+ unsigned int len; /* length must be in Bytes */
+ unsigned int offset_bytes; /* offset must be in Bytes */
} digest;
+
+ struct {
+ unsigned int len_bits; /* length must be in Bits */
+ unsigned int offset_bits;
+ } cipher;
+
+ struct {
+ unsigned int len_bits; /* length must be in Bits */
+ unsigned int offset_bits;
+ } auth;
};
struct snow3g_test_data snow3g_test_case_1 = {
.key = {
@@ -99,6 +110,9 @@ struct snow3g_test_data snow3g_test_case_1 = {
},
.len = 800
},
+ .cipher = {
+ .offset_bits = 0
+ },
.validDataLenInBits = {
.len = 798
},
@@ -155,6 +169,9 @@ struct snow3g_test_data snow3g_test_case_2 = {
},
.len = 512
},
+ .cipher = {
+ .offset_bits = 0
+ },
.validDataLenInBits = {
.len = 510
},
@@ -199,6 +216,9 @@ struct snow3g_test_data snow3g_test_case_3 = {
},
.len = 120
},
+ .cipher = {
+ .offset_bits = 0
+ },
.validDataLenInBits = {
.len = 120
},
@@ -254,6 +274,9 @@ struct snow3g_test_data snow3g_test_case_4 = {
},
.len = 256
},
+ .cipher = {
+ .offset_bits = 0
+ },
.validDataLenInBits = {
.len = 253
},
@@ -314,6 +337,9 @@ struct snow3g_test_data snow3g_test_case_5 = {
},
.len = 840
},
+ .cipher = {
+ .offset_bits = 0
+ },
.validDataLenInBits = {
.len = 837
},
@@ -365,9 +391,18 @@ struct snow3g_test_data snow3g_test_case_6 = {
},
.len = 384
},
+ .cipher = {
+ .len_bits = 384,
+ .offset_bits = 0
+ },
+ .auth = {
+ .len_bits = 384,
+ .offset_bits = 0
+ },
.digest = {
.data = {0x38, 0xB5, 0x54, 0xC0 },
- .len = 4
+ .len = 4,
+ .offset_bytes = 0
},
.validDataLenInBits = {
.len = 384
@@ -380,4 +415,97 @@ struct snow3g_test_data snow3g_test_case_6 = {
},
};
+
+struct snow3g_test_data snow3g_test_case_7 = {
+ .key = {
+ .data = {
+ 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08,
+ 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10
+
+ },
+ .len = 16
+ },
+ .cipher_iv = {
+ .data = {
+ 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08,
+ 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08
+ },
+ .len = 16
+ },
+ .auth_iv = {
+ .data = {
+ 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+ },
+ .len = 16
+ },
+ .plaintext = {
+ .data = {
+ 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
+ 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
+ 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
+ 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
+ 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
+ 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
+ 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
+ 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
+ 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
+ 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
+ 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
+ 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
+ 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
+ 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
+ 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
+ 0x5A, 0x5A, 0x5A, 0x5A, 0xF1, 0x9E, 0x2B, 0x6F,
+ },
+ .len = 128 << 3
+ },
+ .ciphertext = {
+ .data = {
+ 0x5A, 0x5A, 0xE4, 0xAD, 0x29, 0xA2, 0x6A, 0xA6,
+ 0x20, 0x1D, 0xCD, 0x08, 0x50, 0xD6, 0xE6, 0x47,
+ 0xBC, 0x88, 0x08, 0x01, 0x17, 0xFA, 0x47, 0x5B,
+ 0x90, 0x40, 0xBA, 0x0C, 0xB5, 0x58, 0xF3, 0x0C,
+ 0xA0, 0xD4, 0x98, 0x83, 0x1B, 0xCE, 0x54, 0xE3,
+ 0x29, 0x00, 0x3C, 0xA4, 0xAD, 0x74, 0xEE, 0x05,
+ 0xA3, 0x6C, 0xD4, 0xAC, 0xC6, 0x30, 0x33, 0xC9,
+ 0x37, 0x57, 0x41, 0x9B, 0xD4, 0x73, 0xB9, 0x77,
+ 0x70, 0x8B, 0x63, 0xDD, 0x22, 0xB8, 0xE1, 0x85,
+ 0xB2, 0x92, 0x7C, 0x37, 0xD3, 0x2E, 0xD9, 0xF4,
+ 0x4A, 0x69, 0x25, 0x30, 0xE3, 0x5B, 0x8B, 0xF6,
+ 0x0F, 0xDE, 0x0B, 0x92, 0xD5, 0x25, 0x52, 0x6D,
+ 0x26, 0xEB, 0x2F, 0x8A, 0x3B, 0x8B, 0x38, 0xE2,
+ 0x48, 0xD3, 0x4A, 0x98, 0xF7, 0x3A, 0xC2, 0x46,
+ 0x69, 0x8D, 0x73, 0x3E, 0x57, 0x88, 0x2C, 0x80,
+ 0xF0, 0xF2, 0x75, 0xB8, 0x7D, 0x27, 0xC6, 0xDA,
+
+ },
+ .len = 128 << 3
+ },
+ .cipher = {
+ .len_bits = 126 << 3,
+ .offset_bits = 2 << 3
+ },
+ .auth = {
+ .len_bits = 124 << 3,
+ .offset_bits = 0
+ },
+ .digest = {
+ .data = {
+ 0x7D, 0x27, 0xC6, 0xDA
+ },
+ .len = 4,
+ .offset_bytes = 124
+ },
+ .validDataLenInBits = {
+ .len = 128 << 3
+ },
+ .validCipherLenInBits = {
+ .len = 126 << 3
+ },
+ .validAuthLenInBits = {
+ .len = 124 << 3
+ },
+};
+
#endif /* TEST_CRYPTODEV_SNOW3G_TEST_VECTORS_H_ */
--
2.19.2
^ permalink raw reply [flat|nested] 14+ messages in thread
* [dpdk-dev] [PATCH v2] test: add snow3g test cases when digest is encrypted
2019-02-13 8:43 [dpdk-dev] [PATCH] test: add snow3g test cases when digest is encrypted Lukasz Krakowiak
2019-02-13 10:20 ` Lukasz Krakowiak
@ 2019-02-27 10:18 ` Lukasz Krakowiak
2019-03-01 17:36 ` Kusztal, ArkadiuszX
2019-03-25 10:47 ` [dpdk-dev] [PATCH v3] " Lukasz Krakowiak
1 sibling, 2 replies; 14+ messages in thread
From: Lukasz Krakowiak @ 2019-02-27 10:18 UTC (permalink / raw)
To: pablo.de.lara.guarch; +Cc: dev, fiona.trahe, Lukasz Krakowiak
Add test case for encryption, dectryption for snow3g when digest
is encrypted
Signed-off-by: Lukasz Krakowiak <lukaszx.krakowiak@intel.com>
---
test/test/test_cryptodev.c | 91 ++++++++++--
.../test/test_cryptodev_snow3g_test_vectors.h | 132 +++++++++++++++++-
2 files changed, 210 insertions(+), 13 deletions(-)
diff --git a/test/test/test_cryptodev.c b/test/test/test_cryptodev.c
index 32f1893bc..d8acfc7d1 100644
--- a/test/test/test_cryptodev.c
+++ b/test/test/test_cryptodev.c
@@ -2833,8 +2833,8 @@ create_wireless_algo_auth_cipher_operation(unsigned int auth_tag_len,
sym_op->m_src = ut_params->ibuf;
/* digest */
- sym_op->auth.digest.data = (uint8_t *)rte_pktmbuf_append(
- ut_params->ibuf, auth_tag_len);
+ sym_op->auth.digest.data = (uint8_t *) rte_pktmbuf_mtod_offset(
+ ut_params->ibuf, uint8_t *, data_pad_len);
TEST_ASSERT_NOT_NULL(sym_op->auth.digest.data,
"no room to append auth tag");
@@ -2844,10 +2844,6 @@ create_wireless_algo_auth_cipher_operation(unsigned int auth_tag_len,
memset(sym_op->auth.digest.data, 0, auth_tag_len);
- debug_hexdump(stdout, "digest:",
- sym_op->auth.digest.data,
- auth_tag_len);
-
/* Copy cipher and auth IVs at the end of the crypto operation */
uint8_t *iv_ptr = rte_crypto_op_ctod_offset(ut_params->op, uint8_t *,
IV_OFFSET);
@@ -4052,7 +4048,7 @@ static int test_snow3g_decryption(const struct snow3g_test_data *tdata)
retval = create_wireless_algo_cipher_operation(tdata->cipher_iv.data,
tdata->cipher_iv.len,
tdata->validCipherLenInBits.len,
- 0);
+ tdata->cipher.offset_bits);
if (retval < 0)
return retval;
@@ -4360,11 +4356,12 @@ test_snow3g_auth_cipher(const struct snow3g_test_data *tdata)
tdata->digest.len,
tdata->cipher_iv.data, tdata->cipher_iv.len,
tdata->auth_iv.data, tdata->auth_iv.len,
- plaintext_pad_len,
+ tdata->digest.offset_bytes == 0 ?
+ plaintext_pad_len : tdata->digest.offset_bytes,
tdata->validCipherLenInBits.len,
- 0,
+ tdata->cipher.offset_bits,
tdata->validAuthLenInBits.len,
- 0);
+ tdata->auth.offset_bits);
if (retval < 0)
return retval;
@@ -4379,7 +4376,10 @@ test_snow3g_auth_cipher(const struct snow3g_test_data *tdata)
ciphertext = plaintext;
ut_params->digest = rte_pktmbuf_mtod(ut_params->obuf, uint8_t *)
- + plaintext_pad_len;
+ + (tdata->digest.offset_bytes == 0 ?
+ plaintext_pad_len : tdata->digest.offset_bytes);
+
+ debug_hexdump(stdout, "digest:", ut_params->digest, tdata->digest.len);
debug_hexdump(stdout, "ciphertext:", ciphertext, plaintext_len);
/* Validate obuf */
@@ -4973,6 +4973,61 @@ test_snow3g_decryption_test_case_5(void)
{
return test_snow3g_decryption(&snow3g_test_case_5);
}
+
+/*
+ * Function prepares snow3g_hash_test_data from snow3g_test_data.
+ * Pattern digest from snow3g_test_data must be allocated as
+ * 4 last bytes in plaintext.
+ */
+static void
+snow3g_hash_test_vector_setup(const struct snow3g_test_data *pattern,
+ struct snow3g_hash_test_data *output)
+{
+ if ((pattern != NULL) && (output != NULL)) {
+ output->key.len = pattern->key.len;
+
+ memcpy(output->key.data,
+ pattern->key.data, pattern->key.len);
+
+ output->auth_iv.len = pattern->auth_iv.len;
+
+ memcpy(output->auth_iv.data,
+ pattern->auth_iv.data, pattern->auth_iv.len);
+
+ output->plaintext.len = pattern->plaintext.len;
+
+ memcpy(output->plaintext.data,
+ pattern->plaintext.data, pattern->plaintext.len >> 3);
+
+ output->digest.len = pattern->digest.len;
+
+ memcpy(output->digest.data,
+ &pattern->plaintext.data[pattern->digest.offset_bytes],
+ pattern->digest.len);
+
+ output->validAuthLenInBits.len =
+ pattern->validAuthLenInBits.len;
+ }
+}
+
+/*
+ * Test case verify computed cipher and digest from snow3g_test_case_7 data.
+ */
+static int
+test_snow3g_decryption_with_digest_test_case_1(void)
+{
+ struct snow3g_hash_test_data snow3g_hash_data;
+
+ /*
+ * Function prepare data for hash veryfication test case.
+ * Digest is allocated in 4 last bytes in plaintext, pattern.
+ */
+ snow3g_hash_test_vector_setup(&snow3g_test_case_7, &snow3g_hash_data);
+
+ return test_snow3g_decryption(&snow3g_test_case_7) &
+ test_snow3g_authentication_verify(&snow3g_hash_data);
+}
+
static int
test_snow3g_cipher_auth_test_case_1(void)
{
@@ -4985,6 +5040,12 @@ test_snow3g_auth_cipher_test_case_1(void)
return test_snow3g_auth_cipher(&snow3g_test_case_6);
}
+static int
+test_snow3g_auth_cipher_with_digest_test_case_1(void)
+{
+ return test_snow3g_auth_cipher(&snow3g_test_case_7);
+}
+
static int
test_kasumi_auth_cipher_test_case_1(void)
{
@@ -9138,6 +9199,8 @@ static struct unit_test_suite cryptodev_qat_testsuite = {
test_snow3g_decryption_test_case_4),
TEST_CASE_ST(ut_setup, ut_teardown,
test_snow3g_decryption_test_case_5),
+ TEST_CASE_ST(ut_setup, ut_teardown,
+ test_snow3g_decryption_with_digest_test_case_1),
TEST_CASE_ST(ut_setup, ut_teardown,
test_snow3g_hash_generate_test_case_1),
TEST_CASE_ST(ut_setup, ut_teardown,
@@ -9154,6 +9217,8 @@ static struct unit_test_suite cryptodev_qat_testsuite = {
test_snow3g_cipher_auth_test_case_1),
TEST_CASE_ST(ut_setup, ut_teardown,
test_snow3g_auth_cipher_test_case_1),
+ TEST_CASE_ST(ut_setup, ut_teardown,
+ test_snow3g_auth_cipher_with_digest_test_case_1),
/** ZUC encrypt only (EEA3) */
TEST_CASE_ST(ut_setup, ut_teardown,
@@ -9872,6 +9937,8 @@ static struct unit_test_suite cryptodev_sw_snow3g_testsuite = {
test_snow3g_encryption_test_case_4),
TEST_CASE_ST(ut_setup, ut_teardown,
test_snow3g_encryption_test_case_5),
+ TEST_CASE_ST(ut_setup, ut_teardown,
+ test_snow3g_auth_cipher_with_digest_test_case_1),
TEST_CASE_ST(ut_setup, ut_teardown,
test_snow3g_encryption_test_case_1_oop),
@@ -9894,6 +9961,8 @@ static struct unit_test_suite cryptodev_sw_snow3g_testsuite = {
test_snow3g_decryption_test_case_4),
TEST_CASE_ST(ut_setup, ut_teardown,
test_snow3g_decryption_test_case_5),
+ TEST_CASE_ST(ut_setup, ut_teardown,
+ test_snow3g_decryption_with_digest_test_case_1),
TEST_CASE_ST(ut_setup, ut_teardown,
test_snow3g_hash_generate_test_case_1),
TEST_CASE_ST(ut_setup, ut_teardown,
diff --git a/test/test/test_cryptodev_snow3g_test_vectors.h b/test/test/test_cryptodev_snow3g_test_vectors.h
index cb9dc4b35..3e55ac1f9 100644
--- a/test/test/test_cryptodev_snow3g_test_vectors.h
+++ b/test/test/test_cryptodev_snow3g_test_vectors.h
@@ -45,8 +45,19 @@ struct snow3g_test_data {
struct {
uint8_t data[64];
- unsigned len;
+ unsigned int len; /* length must be in Bytes */
+ unsigned int offset_bytes; /* offset must be in Bytes */
} digest;
+
+ struct {
+ unsigned int len_bits; /* length must be in Bits */
+ unsigned int offset_bits;
+ } cipher;
+
+ struct {
+ unsigned int len_bits; /* length must be in Bits */
+ unsigned int offset_bits;
+ } auth;
};
struct snow3g_test_data snow3g_test_case_1 = {
.key = {
@@ -99,6 +110,9 @@ struct snow3g_test_data snow3g_test_case_1 = {
},
.len = 800
},
+ .cipher = {
+ .offset_bits = 0
+ },
.validDataLenInBits = {
.len = 798
},
@@ -155,6 +169,9 @@ struct snow3g_test_data snow3g_test_case_2 = {
},
.len = 512
},
+ .cipher = {
+ .offset_bits = 0
+ },
.validDataLenInBits = {
.len = 510
},
@@ -199,6 +216,9 @@ struct snow3g_test_data snow3g_test_case_3 = {
},
.len = 120
},
+ .cipher = {
+ .offset_bits = 0
+ },
.validDataLenInBits = {
.len = 120
},
@@ -254,6 +274,9 @@ struct snow3g_test_data snow3g_test_case_4 = {
},
.len = 256
},
+ .cipher = {
+ .offset_bits = 0
+ },
.validDataLenInBits = {
.len = 253
},
@@ -314,6 +337,9 @@ struct snow3g_test_data snow3g_test_case_5 = {
},
.len = 840
},
+ .cipher = {
+ .offset_bits = 0
+ },
.validDataLenInBits = {
.len = 837
},
@@ -365,9 +391,18 @@ struct snow3g_test_data snow3g_test_case_6 = {
},
.len = 384
},
+ .cipher = {
+ .len_bits = 384,
+ .offset_bits = 0
+ },
+ .auth = {
+ .len_bits = 384,
+ .offset_bits = 0
+ },
.digest = {
.data = {0x38, 0xB5, 0x54, 0xC0 },
- .len = 4
+ .len = 4,
+ .offset_bytes = 0
},
.validDataLenInBits = {
.len = 384
@@ -380,4 +415,97 @@ struct snow3g_test_data snow3g_test_case_6 = {
},
};
+
+struct snow3g_test_data snow3g_test_case_7 = {
+ .key = {
+ .data = {
+ 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08,
+ 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10
+
+ },
+ .len = 16
+ },
+ .cipher_iv = {
+ .data = {
+ 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08,
+ 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08
+ },
+ .len = 16
+ },
+ .auth_iv = {
+ .data = {
+ 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+ },
+ .len = 16
+ },
+ .plaintext = {
+ .data = {
+ 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
+ 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
+ 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
+ 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
+ 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
+ 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
+ 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
+ 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
+ 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
+ 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
+ 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
+ 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
+ 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
+ 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
+ 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
+ 0x5A, 0x5A, 0x5A, 0x5A, 0xF1, 0x9E, 0x2B, 0x6F,
+ },
+ .len = 128 << 3
+ },
+ .ciphertext = {
+ .data = {
+ 0x5A, 0x5A, 0xE4, 0xAD, 0x29, 0xA2, 0x6A, 0xA6,
+ 0x20, 0x1D, 0xCD, 0x08, 0x50, 0xD6, 0xE6, 0x47,
+ 0xBC, 0x88, 0x08, 0x01, 0x17, 0xFA, 0x47, 0x5B,
+ 0x90, 0x40, 0xBA, 0x0C, 0xB5, 0x58, 0xF3, 0x0C,
+ 0xA0, 0xD4, 0x98, 0x83, 0x1B, 0xCE, 0x54, 0xE3,
+ 0x29, 0x00, 0x3C, 0xA4, 0xAD, 0x74, 0xEE, 0x05,
+ 0xA3, 0x6C, 0xD4, 0xAC, 0xC6, 0x30, 0x33, 0xC9,
+ 0x37, 0x57, 0x41, 0x9B, 0xD4, 0x73, 0xB9, 0x77,
+ 0x70, 0x8B, 0x63, 0xDD, 0x22, 0xB8, 0xE1, 0x85,
+ 0xB2, 0x92, 0x7C, 0x37, 0xD3, 0x2E, 0xD9, 0xF4,
+ 0x4A, 0x69, 0x25, 0x30, 0xE3, 0x5B, 0x8B, 0xF6,
+ 0x0F, 0xDE, 0x0B, 0x92, 0xD5, 0x25, 0x52, 0x6D,
+ 0x26, 0xEB, 0x2F, 0x8A, 0x3B, 0x8B, 0x38, 0xE2,
+ 0x48, 0xD3, 0x4A, 0x98, 0xF7, 0x3A, 0xC2, 0x46,
+ 0x69, 0x8D, 0x73, 0x3E, 0x57, 0x88, 0x2C, 0x80,
+ 0xF0, 0xF2, 0x75, 0xB8, 0x7D, 0x27, 0xC6, 0xDA,
+
+ },
+ .len = 128 << 3
+ },
+ .cipher = {
+ .len_bits = 126 << 3,
+ .offset_bits = 2 << 3
+ },
+ .auth = {
+ .len_bits = 124 << 3,
+ .offset_bits = 0
+ },
+ .digest = {
+ .data = {
+ 0x7D, 0x27, 0xC6, 0xDA
+ },
+ .len = 4,
+ .offset_bytes = 124
+ },
+ .validDataLenInBits = {
+ .len = 128 << 3
+ },
+ .validCipherLenInBits = {
+ .len = 126 << 3
+ },
+ .validAuthLenInBits = {
+ .len = 124 << 3
+ },
+};
+
#endif /* TEST_CRYPTODEV_SNOW3G_TEST_VECTORS_H_ */
--
2.19.2
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [dpdk-dev] [PATCH v2] test: add snow3g test cases when digest is encrypted
2019-02-27 10:18 ` [dpdk-dev] [PATCH v2] " Lukasz Krakowiak
@ 2019-03-01 17:36 ` Kusztal, ArkadiuszX
2019-03-22 14:51 ` Akhil Goyal
2019-03-25 10:47 ` [dpdk-dev] [PATCH v3] " Lukasz Krakowiak
1 sibling, 1 reply; 14+ messages in thread
From: Kusztal, ArkadiuszX @ 2019-03-01 17:36 UTC (permalink / raw)
To: Krakowiak, LukaszX, De Lara Guarch, Pablo
Cc: dev, Trahe, Fiona, Krakowiak, LukaszX
> -----Original Message-----
> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Lukasz Krakowiak
> Sent: Wednesday, February 27, 2019 11:18 AM
> To: De Lara Guarch, Pablo <pablo.de.lara.guarch@intel.com>
> Cc: dev@dpdk.org; Trahe, Fiona <fiona.trahe@intel.com>; Krakowiak,
> LukaszX <lukaszx.krakowiak@intel.com>
> Subject: [dpdk-dev] [PATCH v2] test: add snow3g test cases when digest is
> encrypted
>
> Add test case for encryption, dectryption for snow3g when digest is
> encrypted
>
> Signed-off-by: Lukasz Krakowiak <lukaszx.krakowiak@intel.com>
> ---
> test/test/test_cryptodev.c | 91 ++++++++++--
> .../test/test_cryptodev_snow3g_test_vectors.h | 132 +++++++++++++++++-
> 2 files changed, 210 insertions(+), 13 deletions(-)
>
> diff --git a/test/test/test_cryptodev.c b/test/test/test_cryptodev.c index
> 32f1893bc..d8acfc7d1 100644
> --- a/test/test/test_cryptodev.c
> +++ b/test/test/test_cryptodev.c
Acked-by: Arek Kusztal <arkadiuszx.kusztal@intel.com>
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [dpdk-dev] [PATCH v2] test: add snow3g test cases when digest is encrypted
2019-03-01 17:36 ` Kusztal, ArkadiuszX
@ 2019-03-22 14:51 ` Akhil Goyal
2019-03-22 14:51 ` Akhil Goyal
0 siblings, 1 reply; 14+ messages in thread
From: Akhil Goyal @ 2019-03-22 14:51 UTC (permalink / raw)
To: Kusztal, ArkadiuszX, Krakowiak, LukaszX, De Lara Guarch, Pablo
Cc: dev, Trahe, Fiona
Hi Lukasz,
On 3/1/2019 11:06 PM, Kusztal, ArkadiuszX wrote:
>
>> -----Original Message-----
>> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Lukasz Krakowiak
>> Sent: Wednesday, February 27, 2019 11:18 AM
>> To: De Lara Guarch, Pablo <pablo.de.lara.guarch@intel.com>
>> Cc: dev@dpdk.org; Trahe, Fiona <fiona.trahe@intel.com>; Krakowiak,
>> LukaszX <lukaszx.krakowiak@intel.com>
>> Subject: [dpdk-dev] [PATCH v2] test: add snow3g test cases when digest is
>> encrypted
>>
>> Add test case for encryption, dectryption for snow3g when digest is
>> encrypted
>>
>> Signed-off-by: Lukasz Krakowiak <lukaszx.krakowiak@intel.com>
>> ---
>> test/test/test_cryptodev.c | 91 ++++++++++--
>> .../test/test_cryptodev_snow3g_test_vectors.h | 132 +++++++++++++++++-
>> 2 files changed, 210 insertions(+), 13 deletions(-)
>>
>> diff --git a/test/test/test_cryptodev.c b/test/test/test_cryptodev.c index
>> 32f1893bc..d8acfc7d1 100644
>> --- a/test/test/test_cryptodev.c
>> +++ b/test/test/test_cryptodev.c
> Acked-by: Arek Kusztal <arkadiuszx.kusztal@intel.com>
Could you please rebase this patch.
test directory has moved to app
Thanks,
Akhil
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [dpdk-dev] [PATCH v2] test: add snow3g test cases when digest is encrypted
2019-03-22 14:51 ` Akhil Goyal
@ 2019-03-22 14:51 ` Akhil Goyal
0 siblings, 0 replies; 14+ messages in thread
From: Akhil Goyal @ 2019-03-22 14:51 UTC (permalink / raw)
To: Kusztal, ArkadiuszX, Krakowiak, LukaszX, De Lara Guarch, Pablo
Cc: dev, Trahe, Fiona
Hi Lukasz,
On 3/1/2019 11:06 PM, Kusztal, ArkadiuszX wrote:
>
>> -----Original Message-----
>> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Lukasz Krakowiak
>> Sent: Wednesday, February 27, 2019 11:18 AM
>> To: De Lara Guarch, Pablo <pablo.de.lara.guarch@intel.com>
>> Cc: dev@dpdk.org; Trahe, Fiona <fiona.trahe@intel.com>; Krakowiak,
>> LukaszX <lukaszx.krakowiak@intel.com>
>> Subject: [dpdk-dev] [PATCH v2] test: add snow3g test cases when digest is
>> encrypted
>>
>> Add test case for encryption, dectryption for snow3g when digest is
>> encrypted
>>
>> Signed-off-by: Lukasz Krakowiak <lukaszx.krakowiak@intel.com>
>> ---
>> test/test/test_cryptodev.c | 91 ++++++++++--
>> .../test/test_cryptodev_snow3g_test_vectors.h | 132 +++++++++++++++++-
>> 2 files changed, 210 insertions(+), 13 deletions(-)
>>
>> diff --git a/test/test/test_cryptodev.c b/test/test/test_cryptodev.c index
>> 32f1893bc..d8acfc7d1 100644
>> --- a/test/test/test_cryptodev.c
>> +++ b/test/test/test_cryptodev.c
> Acked-by: Arek Kusztal <arkadiuszx.kusztal@intel.com>
Could you please rebase this patch.
test directory has moved to app
Thanks,
Akhil
^ permalink raw reply [flat|nested] 14+ messages in thread
* [dpdk-dev] [PATCH v3] test: add snow3g test cases when digest is encrypted
2019-02-27 10:18 ` [dpdk-dev] [PATCH v2] " Lukasz Krakowiak
2019-03-01 17:36 ` Kusztal, ArkadiuszX
@ 2019-03-25 10:47 ` Lukasz Krakowiak
2019-03-25 10:47 ` Lukasz Krakowiak
` (2 more replies)
1 sibling, 3 replies; 14+ messages in thread
From: Lukasz Krakowiak @ 2019-03-25 10:47 UTC (permalink / raw)
To: pablo.de.lara.guarch; +Cc: dev, fiona.trahe, Lukasz Krakowiak
Add test case for encryption, dectryption for snow3g when digest
is encrypted
---
v3:
* fixed path for test directory.
v2:
* coding style improved
Signed-off-by: Lukasz Krakowiak <lukaszx.krakowiak@intel.com>
---
app/test/test_cryptodev.c | 91 ++++++++++--
app/test/test_cryptodev_snow3g_test_vectors.h | 132 +++++++++++++++++-
2 files changed, 210 insertions(+), 13 deletions(-)
diff --git a/app/test/test_cryptodev.c b/app/test/test_cryptodev.c
index 2ff204137..9f31aaa7e 100644
--- a/app/test/test_cryptodev.c
+++ b/app/test/test_cryptodev.c
@@ -2834,8 +2834,8 @@ create_wireless_algo_auth_cipher_operation(unsigned int auth_tag_len,
sym_op->m_src = ut_params->ibuf;
/* digest */
- sym_op->auth.digest.data = (uint8_t *)rte_pktmbuf_append(
- ut_params->ibuf, auth_tag_len);
+ sym_op->auth.digest.data = (uint8_t *) rte_pktmbuf_mtod_offset(
+ ut_params->ibuf, uint8_t *, data_pad_len);
TEST_ASSERT_NOT_NULL(sym_op->auth.digest.data,
"no room to append auth tag");
@@ -2845,10 +2845,6 @@ create_wireless_algo_auth_cipher_operation(unsigned int auth_tag_len,
memset(sym_op->auth.digest.data, 0, auth_tag_len);
- debug_hexdump(stdout, "digest:",
- sym_op->auth.digest.data,
- auth_tag_len);
-
/* Copy cipher and auth IVs at the end of the crypto operation */
uint8_t *iv_ptr = rte_crypto_op_ctod_offset(ut_params->op, uint8_t *,
IV_OFFSET);
@@ -4053,7 +4049,7 @@ static int test_snow3g_decryption(const struct snow3g_test_data *tdata)
retval = create_wireless_algo_cipher_operation(tdata->cipher_iv.data,
tdata->cipher_iv.len,
tdata->validCipherLenInBits.len,
- 0);
+ tdata->cipher.offset_bits);
if (retval < 0)
return retval;
@@ -4361,11 +4357,12 @@ test_snow3g_auth_cipher(const struct snow3g_test_data *tdata)
tdata->digest.len,
tdata->cipher_iv.data, tdata->cipher_iv.len,
tdata->auth_iv.data, tdata->auth_iv.len,
- plaintext_pad_len,
+ tdata->digest.offset_bytes == 0 ?
+ plaintext_pad_len : tdata->digest.offset_bytes,
tdata->validCipherLenInBits.len,
- 0,
+ tdata->cipher.offset_bits,
tdata->validAuthLenInBits.len,
- 0);
+ tdata->auth.offset_bits);
if (retval < 0)
return retval;
@@ -4380,7 +4377,10 @@ test_snow3g_auth_cipher(const struct snow3g_test_data *tdata)
ciphertext = plaintext;
ut_params->digest = rte_pktmbuf_mtod(ut_params->obuf, uint8_t *)
- + plaintext_pad_len;
+ + (tdata->digest.offset_bytes == 0 ?
+ plaintext_pad_len : tdata->digest.offset_bytes);
+
+ debug_hexdump(stdout, "digest:", ut_params->digest, tdata->digest.len);
debug_hexdump(stdout, "ciphertext:", ciphertext, plaintext_len);
/* Validate obuf */
@@ -4974,6 +4974,61 @@ test_snow3g_decryption_test_case_5(void)
{
return test_snow3g_decryption(&snow3g_test_case_5);
}
+
+/*
+ * Function prepares snow3g_hash_test_data from snow3g_test_data.
+ * Pattern digest from snow3g_test_data must be allocated as
+ * 4 last bytes in plaintext.
+ */
+static void
+snow3g_hash_test_vector_setup(const struct snow3g_test_data *pattern,
+ struct snow3g_hash_test_data *output)
+{
+ if ((pattern != NULL) && (output != NULL)) {
+ output->key.len = pattern->key.len;
+
+ memcpy(output->key.data,
+ pattern->key.data, pattern->key.len);
+
+ output->auth_iv.len = pattern->auth_iv.len;
+
+ memcpy(output->auth_iv.data,
+ pattern->auth_iv.data, pattern->auth_iv.len);
+
+ output->plaintext.len = pattern->plaintext.len;
+
+ memcpy(output->plaintext.data,
+ pattern->plaintext.data, pattern->plaintext.len >> 3);
+
+ output->digest.len = pattern->digest.len;
+
+ memcpy(output->digest.data,
+ &pattern->plaintext.data[pattern->digest.offset_bytes],
+ pattern->digest.len);
+
+ output->validAuthLenInBits.len =
+ pattern->validAuthLenInBits.len;
+ }
+}
+
+/*
+ * Test case verify computed cipher and digest from snow3g_test_case_7 data.
+ */
+static int
+test_snow3g_decryption_with_digest_test_case_1(void)
+{
+ struct snow3g_hash_test_data snow3g_hash_data;
+
+ /*
+ * Function prepare data for hash veryfication test case.
+ * Digest is allocated in 4 last bytes in plaintext, pattern.
+ */
+ snow3g_hash_test_vector_setup(&snow3g_test_case_7, &snow3g_hash_data);
+
+ return test_snow3g_decryption(&snow3g_test_case_7) &
+ test_snow3g_authentication_verify(&snow3g_hash_data);
+}
+
static int
test_snow3g_cipher_auth_test_case_1(void)
{
@@ -4986,6 +5041,12 @@ test_snow3g_auth_cipher_test_case_1(void)
return test_snow3g_auth_cipher(&snow3g_test_case_6);
}
+static int
+test_snow3g_auth_cipher_with_digest_test_case_1(void)
+{
+ return test_snow3g_auth_cipher(&snow3g_test_case_7);
+}
+
static int
test_kasumi_auth_cipher_test_case_1(void)
{
@@ -9139,6 +9200,8 @@ static struct unit_test_suite cryptodev_qat_testsuite = {
test_snow3g_decryption_test_case_4),
TEST_CASE_ST(ut_setup, ut_teardown,
test_snow3g_decryption_test_case_5),
+ TEST_CASE_ST(ut_setup, ut_teardown,
+ test_snow3g_decryption_with_digest_test_case_1),
TEST_CASE_ST(ut_setup, ut_teardown,
test_snow3g_hash_generate_test_case_1),
TEST_CASE_ST(ut_setup, ut_teardown,
@@ -9155,6 +9218,8 @@ static struct unit_test_suite cryptodev_qat_testsuite = {
test_snow3g_cipher_auth_test_case_1),
TEST_CASE_ST(ut_setup, ut_teardown,
test_snow3g_auth_cipher_test_case_1),
+ TEST_CASE_ST(ut_setup, ut_teardown,
+ test_snow3g_auth_cipher_with_digest_test_case_1),
/** ZUC encrypt only (EEA3) */
TEST_CASE_ST(ut_setup, ut_teardown,
@@ -9873,6 +9938,8 @@ static struct unit_test_suite cryptodev_sw_snow3g_testsuite = {
test_snow3g_encryption_test_case_4),
TEST_CASE_ST(ut_setup, ut_teardown,
test_snow3g_encryption_test_case_5),
+ TEST_CASE_ST(ut_setup, ut_teardown,
+ test_snow3g_auth_cipher_with_digest_test_case_1),
TEST_CASE_ST(ut_setup, ut_teardown,
test_snow3g_encryption_test_case_1_oop),
@@ -9895,6 +9962,8 @@ static struct unit_test_suite cryptodev_sw_snow3g_testsuite = {
test_snow3g_decryption_test_case_4),
TEST_CASE_ST(ut_setup, ut_teardown,
test_snow3g_decryption_test_case_5),
+ TEST_CASE_ST(ut_setup, ut_teardown,
+ test_snow3g_decryption_with_digest_test_case_1),
TEST_CASE_ST(ut_setup, ut_teardown,
test_snow3g_hash_generate_test_case_1),
TEST_CASE_ST(ut_setup, ut_teardown,
diff --git a/app/test/test_cryptodev_snow3g_test_vectors.h b/app/test/test_cryptodev_snow3g_test_vectors.h
index cb9dc4b35..3e55ac1f9 100644
--- a/app/test/test_cryptodev_snow3g_test_vectors.h
+++ b/app/test/test_cryptodev_snow3g_test_vectors.h
@@ -45,8 +45,19 @@ struct snow3g_test_data {
struct {
uint8_t data[64];
- unsigned len;
+ unsigned int len; /* length must be in Bytes */
+ unsigned int offset_bytes; /* offset must be in Bytes */
} digest;
+
+ struct {
+ unsigned int len_bits; /* length must be in Bits */
+ unsigned int offset_bits;
+ } cipher;
+
+ struct {
+ unsigned int len_bits; /* length must be in Bits */
+ unsigned int offset_bits;
+ } auth;
};
struct snow3g_test_data snow3g_test_case_1 = {
.key = {
@@ -99,6 +110,9 @@ struct snow3g_test_data snow3g_test_case_1 = {
},
.len = 800
},
+ .cipher = {
+ .offset_bits = 0
+ },
.validDataLenInBits = {
.len = 798
},
@@ -155,6 +169,9 @@ struct snow3g_test_data snow3g_test_case_2 = {
},
.len = 512
},
+ .cipher = {
+ .offset_bits = 0
+ },
.validDataLenInBits = {
.len = 510
},
@@ -199,6 +216,9 @@ struct snow3g_test_data snow3g_test_case_3 = {
},
.len = 120
},
+ .cipher = {
+ .offset_bits = 0
+ },
.validDataLenInBits = {
.len = 120
},
@@ -254,6 +274,9 @@ struct snow3g_test_data snow3g_test_case_4 = {
},
.len = 256
},
+ .cipher = {
+ .offset_bits = 0
+ },
.validDataLenInBits = {
.len = 253
},
@@ -314,6 +337,9 @@ struct snow3g_test_data snow3g_test_case_5 = {
},
.len = 840
},
+ .cipher = {
+ .offset_bits = 0
+ },
.validDataLenInBits = {
.len = 837
},
@@ -365,9 +391,18 @@ struct snow3g_test_data snow3g_test_case_6 = {
},
.len = 384
},
+ .cipher = {
+ .len_bits = 384,
+ .offset_bits = 0
+ },
+ .auth = {
+ .len_bits = 384,
+ .offset_bits = 0
+ },
.digest = {
.data = {0x38, 0xB5, 0x54, 0xC0 },
- .len = 4
+ .len = 4,
+ .offset_bytes = 0
},
.validDataLenInBits = {
.len = 384
@@ -380,4 +415,97 @@ struct snow3g_test_data snow3g_test_case_6 = {
},
};
+
+struct snow3g_test_data snow3g_test_case_7 = {
+ .key = {
+ .data = {
+ 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08,
+ 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10
+
+ },
+ .len = 16
+ },
+ .cipher_iv = {
+ .data = {
+ 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08,
+ 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08
+ },
+ .len = 16
+ },
+ .auth_iv = {
+ .data = {
+ 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+ },
+ .len = 16
+ },
+ .plaintext = {
+ .data = {
+ 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
+ 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
+ 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
+ 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
+ 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
+ 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
+ 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
+ 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
+ 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
+ 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
+ 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
+ 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
+ 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
+ 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
+ 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
+ 0x5A, 0x5A, 0x5A, 0x5A, 0xF1, 0x9E, 0x2B, 0x6F,
+ },
+ .len = 128 << 3
+ },
+ .ciphertext = {
+ .data = {
+ 0x5A, 0x5A, 0xE4, 0xAD, 0x29, 0xA2, 0x6A, 0xA6,
+ 0x20, 0x1D, 0xCD, 0x08, 0x50, 0xD6, 0xE6, 0x47,
+ 0xBC, 0x88, 0x08, 0x01, 0x17, 0xFA, 0x47, 0x5B,
+ 0x90, 0x40, 0xBA, 0x0C, 0xB5, 0x58, 0xF3, 0x0C,
+ 0xA0, 0xD4, 0x98, 0x83, 0x1B, 0xCE, 0x54, 0xE3,
+ 0x29, 0x00, 0x3C, 0xA4, 0xAD, 0x74, 0xEE, 0x05,
+ 0xA3, 0x6C, 0xD4, 0xAC, 0xC6, 0x30, 0x33, 0xC9,
+ 0x37, 0x57, 0x41, 0x9B, 0xD4, 0x73, 0xB9, 0x77,
+ 0x70, 0x8B, 0x63, 0xDD, 0x22, 0xB8, 0xE1, 0x85,
+ 0xB2, 0x92, 0x7C, 0x37, 0xD3, 0x2E, 0xD9, 0xF4,
+ 0x4A, 0x69, 0x25, 0x30, 0xE3, 0x5B, 0x8B, 0xF6,
+ 0x0F, 0xDE, 0x0B, 0x92, 0xD5, 0x25, 0x52, 0x6D,
+ 0x26, 0xEB, 0x2F, 0x8A, 0x3B, 0x8B, 0x38, 0xE2,
+ 0x48, 0xD3, 0x4A, 0x98, 0xF7, 0x3A, 0xC2, 0x46,
+ 0x69, 0x8D, 0x73, 0x3E, 0x57, 0x88, 0x2C, 0x80,
+ 0xF0, 0xF2, 0x75, 0xB8, 0x7D, 0x27, 0xC6, 0xDA,
+
+ },
+ .len = 128 << 3
+ },
+ .cipher = {
+ .len_bits = 126 << 3,
+ .offset_bits = 2 << 3
+ },
+ .auth = {
+ .len_bits = 124 << 3,
+ .offset_bits = 0
+ },
+ .digest = {
+ .data = {
+ 0x7D, 0x27, 0xC6, 0xDA
+ },
+ .len = 4,
+ .offset_bytes = 124
+ },
+ .validDataLenInBits = {
+ .len = 128 << 3
+ },
+ .validCipherLenInBits = {
+ .len = 126 << 3
+ },
+ .validAuthLenInBits = {
+ .len = 124 << 3
+ },
+};
+
#endif /* TEST_CRYPTODEV_SNOW3G_TEST_VECTORS_H_ */
--
2.19.2
^ permalink raw reply [flat|nested] 14+ messages in thread
* [dpdk-dev] [PATCH v3] test: add snow3g test cases when digest is encrypted
2019-03-25 10:47 ` [dpdk-dev] [PATCH v3] " Lukasz Krakowiak
@ 2019-03-25 10:47 ` Lukasz Krakowiak
2019-03-28 13:09 ` Trahe, Fiona
2019-03-28 13:10 ` Trahe, Fiona
2 siblings, 0 replies; 14+ messages in thread
From: Lukasz Krakowiak @ 2019-03-25 10:47 UTC (permalink / raw)
To: pablo.de.lara.guarch; +Cc: dev, fiona.trahe, Lukasz Krakowiak
Add test case for encryption, dectryption for snow3g when digest
is encrypted
---
v3:
* fixed path for test directory.
v2:
* coding style improved
Signed-off-by: Lukasz Krakowiak <lukaszx.krakowiak@intel.com>
---
app/test/test_cryptodev.c | 91 ++++++++++--
app/test/test_cryptodev_snow3g_test_vectors.h | 132 +++++++++++++++++-
2 files changed, 210 insertions(+), 13 deletions(-)
diff --git a/app/test/test_cryptodev.c b/app/test/test_cryptodev.c
index 2ff204137..9f31aaa7e 100644
--- a/app/test/test_cryptodev.c
+++ b/app/test/test_cryptodev.c
@@ -2834,8 +2834,8 @@ create_wireless_algo_auth_cipher_operation(unsigned int auth_tag_len,
sym_op->m_src = ut_params->ibuf;
/* digest */
- sym_op->auth.digest.data = (uint8_t *)rte_pktmbuf_append(
- ut_params->ibuf, auth_tag_len);
+ sym_op->auth.digest.data = (uint8_t *) rte_pktmbuf_mtod_offset(
+ ut_params->ibuf, uint8_t *, data_pad_len);
TEST_ASSERT_NOT_NULL(sym_op->auth.digest.data,
"no room to append auth tag");
@@ -2845,10 +2845,6 @@ create_wireless_algo_auth_cipher_operation(unsigned int auth_tag_len,
memset(sym_op->auth.digest.data, 0, auth_tag_len);
- debug_hexdump(stdout, "digest:",
- sym_op->auth.digest.data,
- auth_tag_len);
-
/* Copy cipher and auth IVs at the end of the crypto operation */
uint8_t *iv_ptr = rte_crypto_op_ctod_offset(ut_params->op, uint8_t *,
IV_OFFSET);
@@ -4053,7 +4049,7 @@ static int test_snow3g_decryption(const struct snow3g_test_data *tdata)
retval = create_wireless_algo_cipher_operation(tdata->cipher_iv.data,
tdata->cipher_iv.len,
tdata->validCipherLenInBits.len,
- 0);
+ tdata->cipher.offset_bits);
if (retval < 0)
return retval;
@@ -4361,11 +4357,12 @@ test_snow3g_auth_cipher(const struct snow3g_test_data *tdata)
tdata->digest.len,
tdata->cipher_iv.data, tdata->cipher_iv.len,
tdata->auth_iv.data, tdata->auth_iv.len,
- plaintext_pad_len,
+ tdata->digest.offset_bytes == 0 ?
+ plaintext_pad_len : tdata->digest.offset_bytes,
tdata->validCipherLenInBits.len,
- 0,
+ tdata->cipher.offset_bits,
tdata->validAuthLenInBits.len,
- 0);
+ tdata->auth.offset_bits);
if (retval < 0)
return retval;
@@ -4380,7 +4377,10 @@ test_snow3g_auth_cipher(const struct snow3g_test_data *tdata)
ciphertext = plaintext;
ut_params->digest = rte_pktmbuf_mtod(ut_params->obuf, uint8_t *)
- + plaintext_pad_len;
+ + (tdata->digest.offset_bytes == 0 ?
+ plaintext_pad_len : tdata->digest.offset_bytes);
+
+ debug_hexdump(stdout, "digest:", ut_params->digest, tdata->digest.len);
debug_hexdump(stdout, "ciphertext:", ciphertext, plaintext_len);
/* Validate obuf */
@@ -4974,6 +4974,61 @@ test_snow3g_decryption_test_case_5(void)
{
return test_snow3g_decryption(&snow3g_test_case_5);
}
+
+/*
+ * Function prepares snow3g_hash_test_data from snow3g_test_data.
+ * Pattern digest from snow3g_test_data must be allocated as
+ * 4 last bytes in plaintext.
+ */
+static void
+snow3g_hash_test_vector_setup(const struct snow3g_test_data *pattern,
+ struct snow3g_hash_test_data *output)
+{
+ if ((pattern != NULL) && (output != NULL)) {
+ output->key.len = pattern->key.len;
+
+ memcpy(output->key.data,
+ pattern->key.data, pattern->key.len);
+
+ output->auth_iv.len = pattern->auth_iv.len;
+
+ memcpy(output->auth_iv.data,
+ pattern->auth_iv.data, pattern->auth_iv.len);
+
+ output->plaintext.len = pattern->plaintext.len;
+
+ memcpy(output->plaintext.data,
+ pattern->plaintext.data, pattern->plaintext.len >> 3);
+
+ output->digest.len = pattern->digest.len;
+
+ memcpy(output->digest.data,
+ &pattern->plaintext.data[pattern->digest.offset_bytes],
+ pattern->digest.len);
+
+ output->validAuthLenInBits.len =
+ pattern->validAuthLenInBits.len;
+ }
+}
+
+/*
+ * Test case verify computed cipher and digest from snow3g_test_case_7 data.
+ */
+static int
+test_snow3g_decryption_with_digest_test_case_1(void)
+{
+ struct snow3g_hash_test_data snow3g_hash_data;
+
+ /*
+ * Function prepare data for hash veryfication test case.
+ * Digest is allocated in 4 last bytes in plaintext, pattern.
+ */
+ snow3g_hash_test_vector_setup(&snow3g_test_case_7, &snow3g_hash_data);
+
+ return test_snow3g_decryption(&snow3g_test_case_7) &
+ test_snow3g_authentication_verify(&snow3g_hash_data);
+}
+
static int
test_snow3g_cipher_auth_test_case_1(void)
{
@@ -4986,6 +5041,12 @@ test_snow3g_auth_cipher_test_case_1(void)
return test_snow3g_auth_cipher(&snow3g_test_case_6);
}
+static int
+test_snow3g_auth_cipher_with_digest_test_case_1(void)
+{
+ return test_snow3g_auth_cipher(&snow3g_test_case_7);
+}
+
static int
test_kasumi_auth_cipher_test_case_1(void)
{
@@ -9139,6 +9200,8 @@ static struct unit_test_suite cryptodev_qat_testsuite = {
test_snow3g_decryption_test_case_4),
TEST_CASE_ST(ut_setup, ut_teardown,
test_snow3g_decryption_test_case_5),
+ TEST_CASE_ST(ut_setup, ut_teardown,
+ test_snow3g_decryption_with_digest_test_case_1),
TEST_CASE_ST(ut_setup, ut_teardown,
test_snow3g_hash_generate_test_case_1),
TEST_CASE_ST(ut_setup, ut_teardown,
@@ -9155,6 +9218,8 @@ static struct unit_test_suite cryptodev_qat_testsuite = {
test_snow3g_cipher_auth_test_case_1),
TEST_CASE_ST(ut_setup, ut_teardown,
test_snow3g_auth_cipher_test_case_1),
+ TEST_CASE_ST(ut_setup, ut_teardown,
+ test_snow3g_auth_cipher_with_digest_test_case_1),
/** ZUC encrypt only (EEA3) */
TEST_CASE_ST(ut_setup, ut_teardown,
@@ -9873,6 +9938,8 @@ static struct unit_test_suite cryptodev_sw_snow3g_testsuite = {
test_snow3g_encryption_test_case_4),
TEST_CASE_ST(ut_setup, ut_teardown,
test_snow3g_encryption_test_case_5),
+ TEST_CASE_ST(ut_setup, ut_teardown,
+ test_snow3g_auth_cipher_with_digest_test_case_1),
TEST_CASE_ST(ut_setup, ut_teardown,
test_snow3g_encryption_test_case_1_oop),
@@ -9895,6 +9962,8 @@ static struct unit_test_suite cryptodev_sw_snow3g_testsuite = {
test_snow3g_decryption_test_case_4),
TEST_CASE_ST(ut_setup, ut_teardown,
test_snow3g_decryption_test_case_5),
+ TEST_CASE_ST(ut_setup, ut_teardown,
+ test_snow3g_decryption_with_digest_test_case_1),
TEST_CASE_ST(ut_setup, ut_teardown,
test_snow3g_hash_generate_test_case_1),
TEST_CASE_ST(ut_setup, ut_teardown,
diff --git a/app/test/test_cryptodev_snow3g_test_vectors.h b/app/test/test_cryptodev_snow3g_test_vectors.h
index cb9dc4b35..3e55ac1f9 100644
--- a/app/test/test_cryptodev_snow3g_test_vectors.h
+++ b/app/test/test_cryptodev_snow3g_test_vectors.h
@@ -45,8 +45,19 @@ struct snow3g_test_data {
struct {
uint8_t data[64];
- unsigned len;
+ unsigned int len; /* length must be in Bytes */
+ unsigned int offset_bytes; /* offset must be in Bytes */
} digest;
+
+ struct {
+ unsigned int len_bits; /* length must be in Bits */
+ unsigned int offset_bits;
+ } cipher;
+
+ struct {
+ unsigned int len_bits; /* length must be in Bits */
+ unsigned int offset_bits;
+ } auth;
};
struct snow3g_test_data snow3g_test_case_1 = {
.key = {
@@ -99,6 +110,9 @@ struct snow3g_test_data snow3g_test_case_1 = {
},
.len = 800
},
+ .cipher = {
+ .offset_bits = 0
+ },
.validDataLenInBits = {
.len = 798
},
@@ -155,6 +169,9 @@ struct snow3g_test_data snow3g_test_case_2 = {
},
.len = 512
},
+ .cipher = {
+ .offset_bits = 0
+ },
.validDataLenInBits = {
.len = 510
},
@@ -199,6 +216,9 @@ struct snow3g_test_data snow3g_test_case_3 = {
},
.len = 120
},
+ .cipher = {
+ .offset_bits = 0
+ },
.validDataLenInBits = {
.len = 120
},
@@ -254,6 +274,9 @@ struct snow3g_test_data snow3g_test_case_4 = {
},
.len = 256
},
+ .cipher = {
+ .offset_bits = 0
+ },
.validDataLenInBits = {
.len = 253
},
@@ -314,6 +337,9 @@ struct snow3g_test_data snow3g_test_case_5 = {
},
.len = 840
},
+ .cipher = {
+ .offset_bits = 0
+ },
.validDataLenInBits = {
.len = 837
},
@@ -365,9 +391,18 @@ struct snow3g_test_data snow3g_test_case_6 = {
},
.len = 384
},
+ .cipher = {
+ .len_bits = 384,
+ .offset_bits = 0
+ },
+ .auth = {
+ .len_bits = 384,
+ .offset_bits = 0
+ },
.digest = {
.data = {0x38, 0xB5, 0x54, 0xC0 },
- .len = 4
+ .len = 4,
+ .offset_bytes = 0
},
.validDataLenInBits = {
.len = 384
@@ -380,4 +415,97 @@ struct snow3g_test_data snow3g_test_case_6 = {
},
};
+
+struct snow3g_test_data snow3g_test_case_7 = {
+ .key = {
+ .data = {
+ 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08,
+ 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10
+
+ },
+ .len = 16
+ },
+ .cipher_iv = {
+ .data = {
+ 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08,
+ 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08
+ },
+ .len = 16
+ },
+ .auth_iv = {
+ .data = {
+ 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+ },
+ .len = 16
+ },
+ .plaintext = {
+ .data = {
+ 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
+ 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
+ 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
+ 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
+ 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
+ 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
+ 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
+ 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
+ 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
+ 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
+ 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
+ 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
+ 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
+ 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
+ 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
+ 0x5A, 0x5A, 0x5A, 0x5A, 0xF1, 0x9E, 0x2B, 0x6F,
+ },
+ .len = 128 << 3
+ },
+ .ciphertext = {
+ .data = {
+ 0x5A, 0x5A, 0xE4, 0xAD, 0x29, 0xA2, 0x6A, 0xA6,
+ 0x20, 0x1D, 0xCD, 0x08, 0x50, 0xD6, 0xE6, 0x47,
+ 0xBC, 0x88, 0x08, 0x01, 0x17, 0xFA, 0x47, 0x5B,
+ 0x90, 0x40, 0xBA, 0x0C, 0xB5, 0x58, 0xF3, 0x0C,
+ 0xA0, 0xD4, 0x98, 0x83, 0x1B, 0xCE, 0x54, 0xE3,
+ 0x29, 0x00, 0x3C, 0xA4, 0xAD, 0x74, 0xEE, 0x05,
+ 0xA3, 0x6C, 0xD4, 0xAC, 0xC6, 0x30, 0x33, 0xC9,
+ 0x37, 0x57, 0x41, 0x9B, 0xD4, 0x73, 0xB9, 0x77,
+ 0x70, 0x8B, 0x63, 0xDD, 0x22, 0xB8, 0xE1, 0x85,
+ 0xB2, 0x92, 0x7C, 0x37, 0xD3, 0x2E, 0xD9, 0xF4,
+ 0x4A, 0x69, 0x25, 0x30, 0xE3, 0x5B, 0x8B, 0xF6,
+ 0x0F, 0xDE, 0x0B, 0x92, 0xD5, 0x25, 0x52, 0x6D,
+ 0x26, 0xEB, 0x2F, 0x8A, 0x3B, 0x8B, 0x38, 0xE2,
+ 0x48, 0xD3, 0x4A, 0x98, 0xF7, 0x3A, 0xC2, 0x46,
+ 0x69, 0x8D, 0x73, 0x3E, 0x57, 0x88, 0x2C, 0x80,
+ 0xF0, 0xF2, 0x75, 0xB8, 0x7D, 0x27, 0xC6, 0xDA,
+
+ },
+ .len = 128 << 3
+ },
+ .cipher = {
+ .len_bits = 126 << 3,
+ .offset_bits = 2 << 3
+ },
+ .auth = {
+ .len_bits = 124 << 3,
+ .offset_bits = 0
+ },
+ .digest = {
+ .data = {
+ 0x7D, 0x27, 0xC6, 0xDA
+ },
+ .len = 4,
+ .offset_bytes = 124
+ },
+ .validDataLenInBits = {
+ .len = 128 << 3
+ },
+ .validCipherLenInBits = {
+ .len = 126 << 3
+ },
+ .validAuthLenInBits = {
+ .len = 124 << 3
+ },
+};
+
#endif /* TEST_CRYPTODEV_SNOW3G_TEST_VECTORS_H_ */
--
2.19.2
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [dpdk-dev] [PATCH v3] test: add snow3g test cases when digest is encrypted
2019-03-25 10:47 ` [dpdk-dev] [PATCH v3] " Lukasz Krakowiak
2019-03-25 10:47 ` Lukasz Krakowiak
@ 2019-03-28 13:09 ` Trahe, Fiona
2019-03-28 13:09 ` Trahe, Fiona
2019-03-28 13:10 ` Trahe, Fiona
2 siblings, 1 reply; 14+ messages in thread
From: Trahe, Fiona @ 2019-03-28 13:09 UTC (permalink / raw)
To: Krakowiak, LukaszX, De Lara Guarch, Pablo; +Cc: dev, Trahe, Fiona
> -----Original Message-----
> From: Krakowiak, LukaszX
> Sent: Monday, March 25, 2019 10:48 AM
> To: De Lara Guarch, Pablo <pablo.de.lara.guarch@intel.com>
> Cc: dev@dpdk.org; Trahe, Fiona <fiona.trahe@intel.com>; Krakowiak, LukaszX
> <lukaszx.krakowiak@intel.com>
> Subject: [PATCH v3] test: add snow3g test cases when digest is encrypted
>
> Add test case for encryption, dectryption for snow3g when digest
> is encrypted
>
> ---
> v3:
> * fixed path for test directory.
>
> v2:
> * coding style improved
>
> Signed-off-by: Lukasz Krakowiak <lukaszx.krakowiak@intel.com>
> ---
> app/test/test_cryptodev.c | 91 ++++++++++--
> app/test/test_cryptodev_snow3g_test_vectors.h | 132 +++++++++++++++++-
> 2 files changed, 210 insertions(+), 13 deletions(-)
>
> diff --git a/app/test/test_cryptodev.c b/app/test/test_cryptodev.c
> index 2ff204137..9f31aaa7e 100644
> --- a/app/test/test_cryptodev.c
> +++ b/app/test/test_cryptodev.c
> @@ -2834,8 +2834,8 @@ create_wireless_algo_auth_cipher_operation(unsigned int auth_tag_len,
> sym_op->m_src = ut_params->ibuf;
>
> /* digest */
> - sym_op->auth.digest.data = (uint8_t *)rte_pktmbuf_append(
> - ut_params->ibuf, auth_tag_len);
> + sym_op->auth.digest.data = (uint8_t *) rte_pktmbuf_mtod_offset(
> + ut_params->ibuf, uint8_t *, data_pad_len);
>
> TEST_ASSERT_NOT_NULL(sym_op->auth.digest.data,
> "no room to append auth tag");
> @@ -2845,10 +2845,6 @@ create_wireless_algo_auth_cipher_operation(unsigned int auth_tag_len,
>
> memset(sym_op->auth.digest.data, 0, auth_tag_len);
>
> - debug_hexdump(stdout, "digest:",
> - sym_op->auth.digest.data,
> - auth_tag_len);
> -
> /* Copy cipher and auth IVs at the end of the crypto operation */
> uint8_t *iv_ptr = rte_crypto_op_ctod_offset(ut_params->op, uint8_t *,
> IV_OFFSET);
> @@ -4053,7 +4049,7 @@ static int test_snow3g_decryption(const struct snow3g_test_data *tdata)
> retval = create_wireless_algo_cipher_operation(tdata->cipher_iv.data,
> tdata->cipher_iv.len,
> tdata->validCipherLenInBits.len,
> - 0);
> + tdata->cipher.offset_bits);
> if (retval < 0)
> return retval;
>
> @@ -4361,11 +4357,12 @@ test_snow3g_auth_cipher(const struct snow3g_test_data *tdata)
> tdata->digest.len,
> tdata->cipher_iv.data, tdata->cipher_iv.len,
> tdata->auth_iv.data, tdata->auth_iv.len,
> - plaintext_pad_len,
> + tdata->digest.offset_bytes == 0 ?
> + plaintext_pad_len : tdata->digest.offset_bytes,
> tdata->validCipherLenInBits.len,
> - 0,
> + tdata->cipher.offset_bits,
> tdata->validAuthLenInBits.len,
> - 0);
> + tdata->auth.offset_bits);
>
> if (retval < 0)
> return retval;
> @@ -4380,7 +4377,10 @@ test_snow3g_auth_cipher(const struct snow3g_test_data *tdata)
> ciphertext = plaintext;
>
> ut_params->digest = rte_pktmbuf_mtod(ut_params->obuf, uint8_t *)
> - + plaintext_pad_len;
> + + (tdata->digest.offset_bytes == 0 ?
> + plaintext_pad_len : tdata->digest.offset_bytes);
> +
> + debug_hexdump(stdout, "digest:", ut_params->digest, tdata->digest.len);
> debug_hexdump(stdout, "ciphertext:", ciphertext, plaintext_len);
>
> /* Validate obuf */
> @@ -4974,6 +4974,61 @@ test_snow3g_decryption_test_case_5(void)
> {
> return test_snow3g_decryption(&snow3g_test_case_5);
> }
> +
> +/*
> + * Function prepares snow3g_hash_test_data from snow3g_test_data.
> + * Pattern digest from snow3g_test_data must be allocated as
> + * 4 last bytes in plaintext.
> + */
> +static void
> +snow3g_hash_test_vector_setup(const struct snow3g_test_data *pattern,
> + struct snow3g_hash_test_data *output)
> +{
> + if ((pattern != NULL) && (output != NULL)) {
> + output->key.len = pattern->key.len;
> +
> + memcpy(output->key.data,
> + pattern->key.data, pattern->key.len);
> +
> + output->auth_iv.len = pattern->auth_iv.len;
> +
> + memcpy(output->auth_iv.data,
> + pattern->auth_iv.data, pattern->auth_iv.len);
> +
> + output->plaintext.len = pattern->plaintext.len;
> +
> + memcpy(output->plaintext.data,
> + pattern->plaintext.data, pattern->plaintext.len >> 3);
> +
> + output->digest.len = pattern->digest.len;
> +
> + memcpy(output->digest.data,
> + &pattern->plaintext.data[pattern->digest.offset_bytes],
> + pattern->digest.len);
> +
> + output->validAuthLenInBits.len =
> + pattern->validAuthLenInBits.len;
> + }
> +}
> +
> +/*
> + * Test case verify computed cipher and digest from snow3g_test_case_7 data.
> + */
> +static int
> +test_snow3g_decryption_with_digest_test_case_1(void)
> +{
> + struct snow3g_hash_test_data snow3g_hash_data;
> +
> + /*
> + * Function prepare data for hash veryfication test case.
> + * Digest is allocated in 4 last bytes in plaintext, pattern.
> + */
> + snow3g_hash_test_vector_setup(&snow3g_test_case_7, &snow3g_hash_data);
> +
> + return test_snow3g_decryption(&snow3g_test_case_7) &
> + test_snow3g_authentication_verify(&snow3g_hash_data);
> +}
> +
> static int
> test_snow3g_cipher_auth_test_case_1(void)
> {
> @@ -4986,6 +5041,12 @@ test_snow3g_auth_cipher_test_case_1(void)
> return test_snow3g_auth_cipher(&snow3g_test_case_6);
> }
>
> +static int
> +test_snow3g_auth_cipher_with_digest_test_case_1(void)
> +{
> + return test_snow3g_auth_cipher(&snow3g_test_case_7);
> +}
> +
> static int
> test_kasumi_auth_cipher_test_case_1(void)
> {
> @@ -9139,6 +9200,8 @@ static struct unit_test_suite cryptodev_qat_testsuite = {
> test_snow3g_decryption_test_case_4),
> TEST_CASE_ST(ut_setup, ut_teardown,
> test_snow3g_decryption_test_case_5),
> + TEST_CASE_ST(ut_setup, ut_teardown,
> + test_snow3g_decryption_with_digest_test_case_1),
> TEST_CASE_ST(ut_setup, ut_teardown,
> test_snow3g_hash_generate_test_case_1),
> TEST_CASE_ST(ut_setup, ut_teardown,
> @@ -9155,6 +9218,8 @@ static struct unit_test_suite cryptodev_qat_testsuite = {
> test_snow3g_cipher_auth_test_case_1),
> TEST_CASE_ST(ut_setup, ut_teardown,
> test_snow3g_auth_cipher_test_case_1),
> + TEST_CASE_ST(ut_setup, ut_teardown,
> + test_snow3g_auth_cipher_with_digest_test_case_1),
>
> /** ZUC encrypt only (EEA3) */
> TEST_CASE_ST(ut_setup, ut_teardown,
> @@ -9873,6 +9938,8 @@ static struct unit_test_suite cryptodev_sw_snow3g_testsuite = {
> test_snow3g_encryption_test_case_4),
> TEST_CASE_ST(ut_setup, ut_teardown,
> test_snow3g_encryption_test_case_5),
> + TEST_CASE_ST(ut_setup, ut_teardown,
> + test_snow3g_auth_cipher_with_digest_test_case_1),
>
> TEST_CASE_ST(ut_setup, ut_teardown,
> test_snow3g_encryption_test_case_1_oop),
> @@ -9895,6 +9962,8 @@ static struct unit_test_suite cryptodev_sw_snow3g_testsuite = {
> test_snow3g_decryption_test_case_4),
> TEST_CASE_ST(ut_setup, ut_teardown,
> test_snow3g_decryption_test_case_5),
> + TEST_CASE_ST(ut_setup, ut_teardown,
> + test_snow3g_decryption_with_digest_test_case_1),
> TEST_CASE_ST(ut_setup, ut_teardown,
> test_snow3g_hash_generate_test_case_1),
> TEST_CASE_ST(ut_setup, ut_teardown,
> diff --git a/app/test/test_cryptodev_snow3g_test_vectors.h
> b/app/test/test_cryptodev_snow3g_test_vectors.h
> index cb9dc4b35..3e55ac1f9 100644
> --- a/app/test/test_cryptodev_snow3g_test_vectors.h
> +++ b/app/test/test_cryptodev_snow3g_test_vectors.h
> @@ -45,8 +45,19 @@ struct snow3g_test_data {
>
> struct {
> uint8_t data[64];
> - unsigned len;
> + unsigned int len; /* length must be in Bytes */
> + unsigned int offset_bytes; /* offset must be in Bytes */
> } digest;
> +
> + struct {
> + unsigned int len_bits; /* length must be in Bits */
> + unsigned int offset_bits;
> + } cipher;
> +
> + struct {
> + unsigned int len_bits; /* length must be in Bits */
> + unsigned int offset_bits;
> + } auth;
> };
> struct snow3g_test_data snow3g_test_case_1 = {
> .key = {
> @@ -99,6 +110,9 @@ struct snow3g_test_data snow3g_test_case_1 = {
> },
> .len = 800
> },
> + .cipher = {
> + .offset_bits = 0
> + },
> .validDataLenInBits = {
> .len = 798
> },
> @@ -155,6 +169,9 @@ struct snow3g_test_data snow3g_test_case_2 = {
> },
> .len = 512
> },
> + .cipher = {
> + .offset_bits = 0
> + },
> .validDataLenInBits = {
> .len = 510
> },
> @@ -199,6 +216,9 @@ struct snow3g_test_data snow3g_test_case_3 = {
> },
> .len = 120
> },
> + .cipher = {
> + .offset_bits = 0
> + },
> .validDataLenInBits = {
> .len = 120
> },
> @@ -254,6 +274,9 @@ struct snow3g_test_data snow3g_test_case_4 = {
> },
> .len = 256
> },
> + .cipher = {
> + .offset_bits = 0
> + },
> .validDataLenInBits = {
> .len = 253
> },
> @@ -314,6 +337,9 @@ struct snow3g_test_data snow3g_test_case_5 = {
> },
> .len = 840
> },
> + .cipher = {
> + .offset_bits = 0
> + },
> .validDataLenInBits = {
> .len = 837
> },
> @@ -365,9 +391,18 @@ struct snow3g_test_data snow3g_test_case_6 = {
> },
> .len = 384
> },
> + .cipher = {
> + .len_bits = 384,
> + .offset_bits = 0
> + },
> + .auth = {
> + .len_bits = 384,
> + .offset_bits = 0
> + },
> .digest = {
> .data = {0x38, 0xB5, 0x54, 0xC0 },
> - .len = 4
> + .len = 4,
> + .offset_bytes = 0
> },
> .validDataLenInBits = {
> .len = 384
> @@ -380,4 +415,97 @@ struct snow3g_test_data snow3g_test_case_6 = {
> },
> };
>
> +
> +struct snow3g_test_data snow3g_test_case_7 = {
> + .key = {
> + .data = {
> + 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08,
> + 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10
> +
> + },
> + .len = 16
> + },
> + .cipher_iv = {
> + .data = {
> + 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08,
> + 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08
> + },
> + .len = 16
> + },
> + .auth_iv = {
> + .data = {
> + 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08,
> + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
> + },
> + .len = 16
> + },
> + .plaintext = {
> + .data = {
> + 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
> + 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
> + 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
> + 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
> + 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
> + 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
> + 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
> + 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
> + 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
> + 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
> + 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
> + 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
> + 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
> + 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
> + 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
> + 0x5A, 0x5A, 0x5A, 0x5A, 0xF1, 0x9E, 0x2B, 0x6F,
> + },
> + .len = 128 << 3
> + },
> + .ciphertext = {
> + .data = {
> + 0x5A, 0x5A, 0xE4, 0xAD, 0x29, 0xA2, 0x6A, 0xA6,
> + 0x20, 0x1D, 0xCD, 0x08, 0x50, 0xD6, 0xE6, 0x47,
> + 0xBC, 0x88, 0x08, 0x01, 0x17, 0xFA, 0x47, 0x5B,
> + 0x90, 0x40, 0xBA, 0x0C, 0xB5, 0x58, 0xF3, 0x0C,
> + 0xA0, 0xD4, 0x98, 0x83, 0x1B, 0xCE, 0x54, 0xE3,
> + 0x29, 0x00, 0x3C, 0xA4, 0xAD, 0x74, 0xEE, 0x05,
> + 0xA3, 0x6C, 0xD4, 0xAC, 0xC6, 0x30, 0x33, 0xC9,
> + 0x37, 0x57, 0x41, 0x9B, 0xD4, 0x73, 0xB9, 0x77,
> + 0x70, 0x8B, 0x63, 0xDD, 0x22, 0xB8, 0xE1, 0x85,
> + 0xB2, 0x92, 0x7C, 0x37, 0xD3, 0x2E, 0xD9, 0xF4,
> + 0x4A, 0x69, 0x25, 0x30, 0xE3, 0x5B, 0x8B, 0xF6,
> + 0x0F, 0xDE, 0x0B, 0x92, 0xD5, 0x25, 0x52, 0x6D,
> + 0x26, 0xEB, 0x2F, 0x8A, 0x3B, 0x8B, 0x38, 0xE2,
> + 0x48, 0xD3, 0x4A, 0x98, 0xF7, 0x3A, 0xC2, 0x46,
> + 0x69, 0x8D, 0x73, 0x3E, 0x57, 0x88, 0x2C, 0x80,
> + 0xF0, 0xF2, 0x75, 0xB8, 0x7D, 0x27, 0xC6, 0xDA,
> +
> + },
> + .len = 128 << 3
> + },
> + .cipher = {
> + .len_bits = 126 << 3,
> + .offset_bits = 2 << 3
> + },
> + .auth = {
> + .len_bits = 124 << 3,
> + .offset_bits = 0
> + },
> + .digest = {
> + .data = {
> + 0x7D, 0x27, 0xC6, 0xDA
> + },
> + .len = 4,
> + .offset_bytes = 124
> + },
> + .validDataLenInBits = {
> + .len = 128 << 3
> + },
> + .validCipherLenInBits = {
> + .len = 126 << 3
> + },
> + .validAuthLenInBits = {
> + .len = 124 << 3
> + },
> +};
> +
> #endif /* TEST_CRYPTODEV_SNOW3G_TEST_VECTORS_H_ */
> --
> 2.19.2
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [dpdk-dev] [PATCH v3] test: add snow3g test cases when digest is encrypted
2019-03-28 13:09 ` Trahe, Fiona
@ 2019-03-28 13:09 ` Trahe, Fiona
0 siblings, 0 replies; 14+ messages in thread
From: Trahe, Fiona @ 2019-03-28 13:09 UTC (permalink / raw)
To: Krakowiak, LukaszX, De Lara Guarch, Pablo; +Cc: dev, Trahe, Fiona
> -----Original Message-----
> From: Krakowiak, LukaszX
> Sent: Monday, March 25, 2019 10:48 AM
> To: De Lara Guarch, Pablo <pablo.de.lara.guarch@intel.com>
> Cc: dev@dpdk.org; Trahe, Fiona <fiona.trahe@intel.com>; Krakowiak, LukaszX
> <lukaszx.krakowiak@intel.com>
> Subject: [PATCH v3] test: add snow3g test cases when digest is encrypted
>
> Add test case for encryption, dectryption for snow3g when digest
> is encrypted
>
> ---
> v3:
> * fixed path for test directory.
>
> v2:
> * coding style improved
>
> Signed-off-by: Lukasz Krakowiak <lukaszx.krakowiak@intel.com>
> ---
> app/test/test_cryptodev.c | 91 ++++++++++--
> app/test/test_cryptodev_snow3g_test_vectors.h | 132 +++++++++++++++++-
> 2 files changed, 210 insertions(+), 13 deletions(-)
>
> diff --git a/app/test/test_cryptodev.c b/app/test/test_cryptodev.c
> index 2ff204137..9f31aaa7e 100644
> --- a/app/test/test_cryptodev.c
> +++ b/app/test/test_cryptodev.c
> @@ -2834,8 +2834,8 @@ create_wireless_algo_auth_cipher_operation(unsigned int auth_tag_len,
> sym_op->m_src = ut_params->ibuf;
>
> /* digest */
> - sym_op->auth.digest.data = (uint8_t *)rte_pktmbuf_append(
> - ut_params->ibuf, auth_tag_len);
> + sym_op->auth.digest.data = (uint8_t *) rte_pktmbuf_mtod_offset(
> + ut_params->ibuf, uint8_t *, data_pad_len);
>
> TEST_ASSERT_NOT_NULL(sym_op->auth.digest.data,
> "no room to append auth tag");
> @@ -2845,10 +2845,6 @@ create_wireless_algo_auth_cipher_operation(unsigned int auth_tag_len,
>
> memset(sym_op->auth.digest.data, 0, auth_tag_len);
>
> - debug_hexdump(stdout, "digest:",
> - sym_op->auth.digest.data,
> - auth_tag_len);
> -
> /* Copy cipher and auth IVs at the end of the crypto operation */
> uint8_t *iv_ptr = rte_crypto_op_ctod_offset(ut_params->op, uint8_t *,
> IV_OFFSET);
> @@ -4053,7 +4049,7 @@ static int test_snow3g_decryption(const struct snow3g_test_data *tdata)
> retval = create_wireless_algo_cipher_operation(tdata->cipher_iv.data,
> tdata->cipher_iv.len,
> tdata->validCipherLenInBits.len,
> - 0);
> + tdata->cipher.offset_bits);
> if (retval < 0)
> return retval;
>
> @@ -4361,11 +4357,12 @@ test_snow3g_auth_cipher(const struct snow3g_test_data *tdata)
> tdata->digest.len,
> tdata->cipher_iv.data, tdata->cipher_iv.len,
> tdata->auth_iv.data, tdata->auth_iv.len,
> - plaintext_pad_len,
> + tdata->digest.offset_bytes == 0 ?
> + plaintext_pad_len : tdata->digest.offset_bytes,
> tdata->validCipherLenInBits.len,
> - 0,
> + tdata->cipher.offset_bits,
> tdata->validAuthLenInBits.len,
> - 0);
> + tdata->auth.offset_bits);
>
> if (retval < 0)
> return retval;
> @@ -4380,7 +4377,10 @@ test_snow3g_auth_cipher(const struct snow3g_test_data *tdata)
> ciphertext = plaintext;
>
> ut_params->digest = rte_pktmbuf_mtod(ut_params->obuf, uint8_t *)
> - + plaintext_pad_len;
> + + (tdata->digest.offset_bytes == 0 ?
> + plaintext_pad_len : tdata->digest.offset_bytes);
> +
> + debug_hexdump(stdout, "digest:", ut_params->digest, tdata->digest.len);
> debug_hexdump(stdout, "ciphertext:", ciphertext, plaintext_len);
>
> /* Validate obuf */
> @@ -4974,6 +4974,61 @@ test_snow3g_decryption_test_case_5(void)
> {
> return test_snow3g_decryption(&snow3g_test_case_5);
> }
> +
> +/*
> + * Function prepares snow3g_hash_test_data from snow3g_test_data.
> + * Pattern digest from snow3g_test_data must be allocated as
> + * 4 last bytes in plaintext.
> + */
> +static void
> +snow3g_hash_test_vector_setup(const struct snow3g_test_data *pattern,
> + struct snow3g_hash_test_data *output)
> +{
> + if ((pattern != NULL) && (output != NULL)) {
> + output->key.len = pattern->key.len;
> +
> + memcpy(output->key.data,
> + pattern->key.data, pattern->key.len);
> +
> + output->auth_iv.len = pattern->auth_iv.len;
> +
> + memcpy(output->auth_iv.data,
> + pattern->auth_iv.data, pattern->auth_iv.len);
> +
> + output->plaintext.len = pattern->plaintext.len;
> +
> + memcpy(output->plaintext.data,
> + pattern->plaintext.data, pattern->plaintext.len >> 3);
> +
> + output->digest.len = pattern->digest.len;
> +
> + memcpy(output->digest.data,
> + &pattern->plaintext.data[pattern->digest.offset_bytes],
> + pattern->digest.len);
> +
> + output->validAuthLenInBits.len =
> + pattern->validAuthLenInBits.len;
> + }
> +}
> +
> +/*
> + * Test case verify computed cipher and digest from snow3g_test_case_7 data.
> + */
> +static int
> +test_snow3g_decryption_with_digest_test_case_1(void)
> +{
> + struct snow3g_hash_test_data snow3g_hash_data;
> +
> + /*
> + * Function prepare data for hash veryfication test case.
> + * Digest is allocated in 4 last bytes in plaintext, pattern.
> + */
> + snow3g_hash_test_vector_setup(&snow3g_test_case_7, &snow3g_hash_data);
> +
> + return test_snow3g_decryption(&snow3g_test_case_7) &
> + test_snow3g_authentication_verify(&snow3g_hash_data);
> +}
> +
> static int
> test_snow3g_cipher_auth_test_case_1(void)
> {
> @@ -4986,6 +5041,12 @@ test_snow3g_auth_cipher_test_case_1(void)
> return test_snow3g_auth_cipher(&snow3g_test_case_6);
> }
>
> +static int
> +test_snow3g_auth_cipher_with_digest_test_case_1(void)
> +{
> + return test_snow3g_auth_cipher(&snow3g_test_case_7);
> +}
> +
> static int
> test_kasumi_auth_cipher_test_case_1(void)
> {
> @@ -9139,6 +9200,8 @@ static struct unit_test_suite cryptodev_qat_testsuite = {
> test_snow3g_decryption_test_case_4),
> TEST_CASE_ST(ut_setup, ut_teardown,
> test_snow3g_decryption_test_case_5),
> + TEST_CASE_ST(ut_setup, ut_teardown,
> + test_snow3g_decryption_with_digest_test_case_1),
> TEST_CASE_ST(ut_setup, ut_teardown,
> test_snow3g_hash_generate_test_case_1),
> TEST_CASE_ST(ut_setup, ut_teardown,
> @@ -9155,6 +9218,8 @@ static struct unit_test_suite cryptodev_qat_testsuite = {
> test_snow3g_cipher_auth_test_case_1),
> TEST_CASE_ST(ut_setup, ut_teardown,
> test_snow3g_auth_cipher_test_case_1),
> + TEST_CASE_ST(ut_setup, ut_teardown,
> + test_snow3g_auth_cipher_with_digest_test_case_1),
>
> /** ZUC encrypt only (EEA3) */
> TEST_CASE_ST(ut_setup, ut_teardown,
> @@ -9873,6 +9938,8 @@ static struct unit_test_suite cryptodev_sw_snow3g_testsuite = {
> test_snow3g_encryption_test_case_4),
> TEST_CASE_ST(ut_setup, ut_teardown,
> test_snow3g_encryption_test_case_5),
> + TEST_CASE_ST(ut_setup, ut_teardown,
> + test_snow3g_auth_cipher_with_digest_test_case_1),
>
> TEST_CASE_ST(ut_setup, ut_teardown,
> test_snow3g_encryption_test_case_1_oop),
> @@ -9895,6 +9962,8 @@ static struct unit_test_suite cryptodev_sw_snow3g_testsuite = {
> test_snow3g_decryption_test_case_4),
> TEST_CASE_ST(ut_setup, ut_teardown,
> test_snow3g_decryption_test_case_5),
> + TEST_CASE_ST(ut_setup, ut_teardown,
> + test_snow3g_decryption_with_digest_test_case_1),
> TEST_CASE_ST(ut_setup, ut_teardown,
> test_snow3g_hash_generate_test_case_1),
> TEST_CASE_ST(ut_setup, ut_teardown,
> diff --git a/app/test/test_cryptodev_snow3g_test_vectors.h
> b/app/test/test_cryptodev_snow3g_test_vectors.h
> index cb9dc4b35..3e55ac1f9 100644
> --- a/app/test/test_cryptodev_snow3g_test_vectors.h
> +++ b/app/test/test_cryptodev_snow3g_test_vectors.h
> @@ -45,8 +45,19 @@ struct snow3g_test_data {
>
> struct {
> uint8_t data[64];
> - unsigned len;
> + unsigned int len; /* length must be in Bytes */
> + unsigned int offset_bytes; /* offset must be in Bytes */
> } digest;
> +
> + struct {
> + unsigned int len_bits; /* length must be in Bits */
> + unsigned int offset_bits;
> + } cipher;
> +
> + struct {
> + unsigned int len_bits; /* length must be in Bits */
> + unsigned int offset_bits;
> + } auth;
> };
> struct snow3g_test_data snow3g_test_case_1 = {
> .key = {
> @@ -99,6 +110,9 @@ struct snow3g_test_data snow3g_test_case_1 = {
> },
> .len = 800
> },
> + .cipher = {
> + .offset_bits = 0
> + },
> .validDataLenInBits = {
> .len = 798
> },
> @@ -155,6 +169,9 @@ struct snow3g_test_data snow3g_test_case_2 = {
> },
> .len = 512
> },
> + .cipher = {
> + .offset_bits = 0
> + },
> .validDataLenInBits = {
> .len = 510
> },
> @@ -199,6 +216,9 @@ struct snow3g_test_data snow3g_test_case_3 = {
> },
> .len = 120
> },
> + .cipher = {
> + .offset_bits = 0
> + },
> .validDataLenInBits = {
> .len = 120
> },
> @@ -254,6 +274,9 @@ struct snow3g_test_data snow3g_test_case_4 = {
> },
> .len = 256
> },
> + .cipher = {
> + .offset_bits = 0
> + },
> .validDataLenInBits = {
> .len = 253
> },
> @@ -314,6 +337,9 @@ struct snow3g_test_data snow3g_test_case_5 = {
> },
> .len = 840
> },
> + .cipher = {
> + .offset_bits = 0
> + },
> .validDataLenInBits = {
> .len = 837
> },
> @@ -365,9 +391,18 @@ struct snow3g_test_data snow3g_test_case_6 = {
> },
> .len = 384
> },
> + .cipher = {
> + .len_bits = 384,
> + .offset_bits = 0
> + },
> + .auth = {
> + .len_bits = 384,
> + .offset_bits = 0
> + },
> .digest = {
> .data = {0x38, 0xB5, 0x54, 0xC0 },
> - .len = 4
> + .len = 4,
> + .offset_bytes = 0
> },
> .validDataLenInBits = {
> .len = 384
> @@ -380,4 +415,97 @@ struct snow3g_test_data snow3g_test_case_6 = {
> },
> };
>
> +
> +struct snow3g_test_data snow3g_test_case_7 = {
> + .key = {
> + .data = {
> + 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08,
> + 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10
> +
> + },
> + .len = 16
> + },
> + .cipher_iv = {
> + .data = {
> + 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08,
> + 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08
> + },
> + .len = 16
> + },
> + .auth_iv = {
> + .data = {
> + 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08,
> + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
> + },
> + .len = 16
> + },
> + .plaintext = {
> + .data = {
> + 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
> + 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
> + 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
> + 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
> + 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
> + 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
> + 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
> + 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
> + 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
> + 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
> + 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
> + 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
> + 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
> + 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
> + 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
> + 0x5A, 0x5A, 0x5A, 0x5A, 0xF1, 0x9E, 0x2B, 0x6F,
> + },
> + .len = 128 << 3
> + },
> + .ciphertext = {
> + .data = {
> + 0x5A, 0x5A, 0xE4, 0xAD, 0x29, 0xA2, 0x6A, 0xA6,
> + 0x20, 0x1D, 0xCD, 0x08, 0x50, 0xD6, 0xE6, 0x47,
> + 0xBC, 0x88, 0x08, 0x01, 0x17, 0xFA, 0x47, 0x5B,
> + 0x90, 0x40, 0xBA, 0x0C, 0xB5, 0x58, 0xF3, 0x0C,
> + 0xA0, 0xD4, 0x98, 0x83, 0x1B, 0xCE, 0x54, 0xE3,
> + 0x29, 0x00, 0x3C, 0xA4, 0xAD, 0x74, 0xEE, 0x05,
> + 0xA3, 0x6C, 0xD4, 0xAC, 0xC6, 0x30, 0x33, 0xC9,
> + 0x37, 0x57, 0x41, 0x9B, 0xD4, 0x73, 0xB9, 0x77,
> + 0x70, 0x8B, 0x63, 0xDD, 0x22, 0xB8, 0xE1, 0x85,
> + 0xB2, 0x92, 0x7C, 0x37, 0xD3, 0x2E, 0xD9, 0xF4,
> + 0x4A, 0x69, 0x25, 0x30, 0xE3, 0x5B, 0x8B, 0xF6,
> + 0x0F, 0xDE, 0x0B, 0x92, 0xD5, 0x25, 0x52, 0x6D,
> + 0x26, 0xEB, 0x2F, 0x8A, 0x3B, 0x8B, 0x38, 0xE2,
> + 0x48, 0xD3, 0x4A, 0x98, 0xF7, 0x3A, 0xC2, 0x46,
> + 0x69, 0x8D, 0x73, 0x3E, 0x57, 0x88, 0x2C, 0x80,
> + 0xF0, 0xF2, 0x75, 0xB8, 0x7D, 0x27, 0xC6, 0xDA,
> +
> + },
> + .len = 128 << 3
> + },
> + .cipher = {
> + .len_bits = 126 << 3,
> + .offset_bits = 2 << 3
> + },
> + .auth = {
> + .len_bits = 124 << 3,
> + .offset_bits = 0
> + },
> + .digest = {
> + .data = {
> + 0x7D, 0x27, 0xC6, 0xDA
> + },
> + .len = 4,
> + .offset_bytes = 124
> + },
> + .validDataLenInBits = {
> + .len = 128 << 3
> + },
> + .validCipherLenInBits = {
> + .len = 126 << 3
> + },
> + .validAuthLenInBits = {
> + .len = 124 << 3
> + },
> +};
> +
> #endif /* TEST_CRYPTODEV_SNOW3G_TEST_VECTORS_H_ */
> --
> 2.19.2
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [dpdk-dev] [PATCH v3] test: add snow3g test cases when digest is encrypted
2019-03-25 10:47 ` [dpdk-dev] [PATCH v3] " Lukasz Krakowiak
2019-03-25 10:47 ` Lukasz Krakowiak
2019-03-28 13:09 ` Trahe, Fiona
@ 2019-03-28 13:10 ` Trahe, Fiona
2019-03-28 13:10 ` Trahe, Fiona
2019-03-29 14:28 ` Akhil Goyal
2 siblings, 2 replies; 14+ messages in thread
From: Trahe, Fiona @ 2019-03-28 13:10 UTC (permalink / raw)
To: Krakowiak, LukaszX, De Lara Guarch, Pablo; +Cc: dev, Trahe, Fiona
Sorry, ignore last email - it was meant to be an ack - here's the correct one.
> -----Original Message-----
> From: Krakowiak, LukaszX
> Sent: Monday, March 25, 2019 10:48 AM
> To: De Lara Guarch, Pablo <pablo.de.lara.guarch@intel.com>
> Cc: dev@dpdk.org; Trahe, Fiona <fiona.trahe@intel.com>; Krakowiak, LukaszX
> <lukaszx.krakowiak@intel.com>
> Subject: [PATCH v3] test: add snow3g test cases when digest is encrypted
>
> Add test case for encryption, dectryption for snow3g when digest
> is encrypted
>
> ---
> v3:
> * fixed path for test directory.
>
> v2:
> * coding style improved
>
> Signed-off-by: Lukasz Krakowiak <lukaszx.krakowiak@intel.com>
Acked-by: Fiona Trahe <fiona.trahe@intel.com>
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [dpdk-dev] [PATCH v3] test: add snow3g test cases when digest is encrypted
2019-03-28 13:10 ` Trahe, Fiona
@ 2019-03-28 13:10 ` Trahe, Fiona
2019-03-29 14:28 ` Akhil Goyal
1 sibling, 0 replies; 14+ messages in thread
From: Trahe, Fiona @ 2019-03-28 13:10 UTC (permalink / raw)
To: Krakowiak, LukaszX, De Lara Guarch, Pablo; +Cc: dev, Trahe, Fiona
Sorry, ignore last email - it was meant to be an ack - here's the correct one.
> -----Original Message-----
> From: Krakowiak, LukaszX
> Sent: Monday, March 25, 2019 10:48 AM
> To: De Lara Guarch, Pablo <pablo.de.lara.guarch@intel.com>
> Cc: dev@dpdk.org; Trahe, Fiona <fiona.trahe@intel.com>; Krakowiak, LukaszX
> <lukaszx.krakowiak@intel.com>
> Subject: [PATCH v3] test: add snow3g test cases when digest is encrypted
>
> Add test case for encryption, dectryption for snow3g when digest
> is encrypted
>
> ---
> v3:
> * fixed path for test directory.
>
> v2:
> * coding style improved
>
> Signed-off-by: Lukasz Krakowiak <lukaszx.krakowiak@intel.com>
Acked-by: Fiona Trahe <fiona.trahe@intel.com>
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [dpdk-dev] [PATCH v3] test: add snow3g test cases when digest is encrypted
2019-03-28 13:10 ` Trahe, Fiona
2019-03-28 13:10 ` Trahe, Fiona
@ 2019-03-29 14:28 ` Akhil Goyal
2019-03-29 14:28 ` Akhil Goyal
1 sibling, 1 reply; 14+ messages in thread
From: Akhil Goyal @ 2019-03-29 14:28 UTC (permalink / raw)
To: Trahe, Fiona, Krakowiak, LukaszX, De Lara Guarch, Pablo; +Cc: dev
On 3/28/2019 6:40 PM, Trahe, Fiona wrote:
> Sorry, ignore last email - it was meant to be an ack - here's the correct one.
>
>> -----Original Message-----
>> From: Krakowiak, LukaszX
>> Sent: Monday, March 25, 2019 10:48 AM
>> To: De Lara Guarch, Pablo <pablo.de.lara.guarch@intel.com>
>> Cc: dev@dpdk.org; Trahe, Fiona <fiona.trahe@intel.com>; Krakowiak, LukaszX
>> <lukaszx.krakowiak@intel.com>
>> Subject: [PATCH v3] test: add snow3g test cases when digest is encrypted
>>
>> Add test case for encryption, dectryption for snow3g when digest
>> is encrypted
>>
>> ---
>> v3:
>> * fixed path for test directory.
>>
>> v2:
>> * coding style improved
>>
>> Signed-off-by: Lukasz Krakowiak <lukaszx.krakowiak@intel.com>
> Acked-by: Fiona Trahe <fiona.trahe@intel.com>
>
Applied to dpdk-next-crypto
Thanks.
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [dpdk-dev] [PATCH v3] test: add snow3g test cases when digest is encrypted
2019-03-29 14:28 ` Akhil Goyal
@ 2019-03-29 14:28 ` Akhil Goyal
0 siblings, 0 replies; 14+ messages in thread
From: Akhil Goyal @ 2019-03-29 14:28 UTC (permalink / raw)
To: Trahe, Fiona, Krakowiak, LukaszX, De Lara Guarch, Pablo; +Cc: dev
On 3/28/2019 6:40 PM, Trahe, Fiona wrote:
> Sorry, ignore last email - it was meant to be an ack - here's the correct one.
>
>> -----Original Message-----
>> From: Krakowiak, LukaszX
>> Sent: Monday, March 25, 2019 10:48 AM
>> To: De Lara Guarch, Pablo <pablo.de.lara.guarch@intel.com>
>> Cc: dev@dpdk.org; Trahe, Fiona <fiona.trahe@intel.com>; Krakowiak, LukaszX
>> <lukaszx.krakowiak@intel.com>
>> Subject: [PATCH v3] test: add snow3g test cases when digest is encrypted
>>
>> Add test case for encryption, dectryption for snow3g when digest
>> is encrypted
>>
>> ---
>> v3:
>> * fixed path for test directory.
>>
>> v2:
>> * coding style improved
>>
>> Signed-off-by: Lukasz Krakowiak <lukaszx.krakowiak@intel.com>
> Acked-by: Fiona Trahe <fiona.trahe@intel.com>
>
Applied to dpdk-next-crypto
Thanks.
^ permalink raw reply [flat|nested] 14+ messages in thread
end of thread, other threads:[~2019-03-29 14:28 UTC | newest]
Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-02-13 8:43 [dpdk-dev] [PATCH] test: add snow3g test cases when digest is encrypted Lukasz Krakowiak
2019-02-13 10:20 ` Lukasz Krakowiak
2019-02-27 10:18 ` [dpdk-dev] [PATCH v2] " Lukasz Krakowiak
2019-03-01 17:36 ` Kusztal, ArkadiuszX
2019-03-22 14:51 ` Akhil Goyal
2019-03-22 14:51 ` Akhil Goyal
2019-03-25 10:47 ` [dpdk-dev] [PATCH v3] " Lukasz Krakowiak
2019-03-25 10:47 ` Lukasz Krakowiak
2019-03-28 13:09 ` Trahe, Fiona
2019-03-28 13:09 ` Trahe, Fiona
2019-03-28 13:10 ` Trahe, Fiona
2019-03-28 13:10 ` Trahe, Fiona
2019-03-29 14:28 ` Akhil Goyal
2019-03-29 14:28 ` Akhil Goyal
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).