You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mynewt.apache.org by ut...@apache.org on 2021/02/17 15:11:30 UTC
[mynewt-core] branch master updated (164ecd5 -> 0f43d24)
This is an automated email from the ASF dual-hosted git repository.
utzig pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/mynewt-core.git.
from 164ecd5 bsp: frdm-k82f: enable CRYPTO acceleration
new 4530d8f apps: crypto_test: add AES-256 vectors
new 0f43d24 apps: crypto_test: fix warnings from syscfg
The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
Summary of changes:
apps/crypto_test/src/main.c | 264 +++++++++++++++++++++++++++++++++++++++++---
1 file changed, 251 insertions(+), 13 deletions(-)
[mynewt-core] 02/02: apps: crypto_test: fix warnings from syscfg
Posted by ut...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
utzig pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/mynewt-core.git
commit 0f43d24dece396379bb96affa51bfdf3301c3061
Author: Fabio Utzig <ut...@apache.org>
AuthorDate: Wed Feb 17 11:29:34 2021 -0300
apps: crypto_test: fix warnings from syscfg
Enabling/disabling some of the crypto_test syscfgs resulted in warnings
from non-used variables, etc. This commit fixes the issues so each
individual syscfg can be isolatedly used.
Signed-off-by: Fabio Utzig <ut...@apache.org>
---
apps/crypto_test/src/main.c | 19 +++++++++++++++++--
1 file changed, 17 insertions(+), 2 deletions(-)
diff --git a/apps/crypto_test/src/main.c b/apps/crypto_test/src/main.c
index 09cc811..8e28879 100755
--- a/apps/crypto_test/src/main.c
+++ b/apps/crypto_test/src/main.c
@@ -46,6 +46,12 @@ struct test_vectors {
static struct os_mutex mtx;
+#if (MYNEWT_VAL(CRYPTOTEST_VECTORS_ECB) || \
+ MYNEWT_VAL(CRYPTOTEST_VECTORS_CBC) || \
+ MYNEWT_VAL(CRYPTOTEST_VECTORS_CTR))
+#define RUN_VECTOR_TESTS 1
+#endif
+
/*
* Test vectors from "NIST Special Publication 800-38A"
*/
@@ -236,6 +242,7 @@ static struct test_vectors aes_256_ctr_vectors = {
};
#endif /* MYNEWT_VAL(CRYPTOTEST_VECTORS_CTR) */
+#if RUN_VECTOR_TESTS
static struct test_vectors *all_tests[] = {
#if MYNEWT_VAL(CRYPTOTEST_VECTORS_ECB)
&aes_128_ecb_vectors,
@@ -251,6 +258,7 @@ static struct test_vectors *all_tests[] = {
#endif
NULL,
};
+#endif
void
run_test_vectors(struct crypto_dev *crypto, struct test_vectors *test_mode)
@@ -326,10 +334,13 @@ run_test_vectors(struct crypto_dev *crypto, struct test_vectors *test_mode)
}
}
-#if MYNEWT_VAL(CRYPTOTEST_BENCHMARK)
+#if MYNEWT_VAL(CRYPTOTEST_BENCHMARK) || MYNEWT_VAL(CRYPTOTEST_CONCURRENCY)
extern uint8_t aes_128_key[];
extern uint8_t aes_128_input[];
extern uint8_t aes_128_ecb_expected[];
+#endif
+
+#if MYNEWT_VAL(CRYPTOTEST_BENCHMARK)
extern uint8_t aes_128_cbc_expected[];
extern uint8_t aes_128_cbc_iv[];
extern uint8_t aes_128_ctr_expected[];
@@ -460,6 +471,7 @@ run_ctr_bench(struct crypto_dev *crypto, uint8_t iter)
}
#endif /* MYNEWT_VAL(CRYPTOTEST_BENCHMARK) */
+#if MYNEWT_VAL(CRYPTOTEST_CONCURRENCY)
static void
lock(void)
{
@@ -478,7 +490,6 @@ unlock(void)
assert(rc == 0);
}
-#if MYNEWT_VAL(CRYPTOTEST_CONCURRENCY)
static void
concurrency_test_handler(void *arg)
{
@@ -930,7 +941,9 @@ main(void)
struct tc_aes_key_sched_struct tc_aes;
int iterations;
#endif
+#if RUN_VECTOR_TESTS || MYNEWT_VAL(CRYPTOTEST_BENCHMARK)
int i;
+#endif
int rc;
sysinit();
@@ -941,10 +954,12 @@ main(void)
rc = os_mutex_init(&mtx);
assert(rc == 0);
+#if RUN_VECTOR_TESTS
printf("=== Test vectors ===\n");
for (i = 0; all_tests[i] != NULL; i++) {
run_test_vectors(crypto, all_tests[i]);
}
+#endif
#if MYNEWT_VAL(CRYPTOTEST_INPLACE)
printf("\n=== In-place encrypt/decrypt ===\n");
[mynewt-core] 01/02: apps: crypto_test: add AES-256 vectors
Posted by ut...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
utzig pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/mynewt-core.git
commit 4530d8fc4ff04de4b67e51e0090ceea2bb49d118
Author: Fabio Utzig <ut...@apache.org>
AuthorDate: Wed Feb 17 11:28:06 2021 -0300
apps: crypto_test: add AES-256 vectors
Add AES-256 vectors from NIST and expand inplace and iovect to test
AES-256.
Signed-off-by: Fabio Utzig <ut...@apache.org>
---
apps/crypto_test/src/main.c | 245 ++++++++++++++++++++++++++++++++++++++++++--
1 file changed, 234 insertions(+), 11 deletions(-)
diff --git a/apps/crypto_test/src/main.c b/apps/crypto_test/src/main.c
index 99a2d41..09cc811 100755
--- a/apps/crypto_test/src/main.c
+++ b/apps/crypto_test/src/main.c
@@ -78,6 +78,35 @@ static struct test_vectors aes_128_ecb_vectors = {
},
},
};
+
+static struct test_vectors aes_256_ecb_vectors = {
+ .name = "AES-256-ECB",
+ .algo = CRYPTO_ALGO_AES,
+ .mode = CRYPTO_MODE_ECB,
+ .key = "\x60\x3d\xeb\x10\x15\xca\x71\xbe\x2b\x73\xae\xf0\x85\x7d\x77\x81"
+ "\x1f\x35\x2c\x07\x3b\x61\x08\xd7\x2d\x98\x10\xa3\x09\x14\xdf\xf4",
+ .keylen = 256,
+ .iv = NULL,
+ .len = 4,
+ .vectors = {
+ {
+ .plain = "\x6b\xc1\xbe\xe2\x2e\x40\x9f\x96\xe9\x3d\x7e\x11\x73\x93\x17\x2a",
+ .cipher = "\xf3\xee\xd1\xbd\xb5\xd2\xa0\x3c\x06\x4b\x5a\x7e\x3d\xb1\x81\xf8",
+ },
+ {
+ .plain = "\xae\x2d\x8a\x57\x1e\x03\xac\x9c\x9e\xb7\x6f\xac\x45\xaf\x8e\x51",
+ .cipher = "\x59\x1c\xcb\x10\xd4\x10\xed\x26\xdc\x5b\xa7\x4a\x31\x36\x28\x70",
+ },
+ {
+ .plain = "\x30\xc8\x1c\x46\xa3\x5c\xe4\x11\xe5\xfb\xc1\x19\x1a\x0a\x52\xef",
+ .cipher = "\xb6\xed\x21\xb9\x9c\xa6\xf4\xf9\xf1\x53\xe7\xb1\xbe\xaf\xed\x1d",
+ },
+ {
+ .plain = "\xf6\x9f\x24\x45\xdf\x4f\x9b\x17\xad\x2b\x41\x7b\xe6\x6c\x37\x10",
+ .cipher = "\x23\x30\x4b\x7a\x39\xf9\xf3\xff\x06\x7d\x8d\x8f\x9e\x24\xec\xc7",
+ },
+ },
+};
#endif /* MYNEWT_VAL(CRYPTOTEST_VECTORS_ECB) */
#if MYNEWT_VAL(CRYPTOTEST_VECTORS_CBC)
@@ -108,6 +137,36 @@ static struct test_vectors aes_128_cbc_vectors = {
},
},
};
+
+static struct test_vectors aes_256_cbc_vectors = {
+ .name = "AES-256-CBC",
+ .algo = CRYPTO_ALGO_AES,
+ .mode = CRYPTO_MODE_CBC,
+ .key = "\x60\x3d\xeb\x10\x15\xca\x71\xbe\x2b\x73\xae\xf0\x85\x7d\x77\x81"
+ "\x1f\x35\x2c\x07\x3b\x61\x08\xd7\x2d\x98\x10\xa3\x09\x14\xdf\xf4",
+ .keylen = 256,
+ .iv = "\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0A\x0B\x0C\x0D\x0E\x0F",
+ .len = 4,
+ .vectors = {
+ {
+ .plain = "\x6b\xc1\xbe\xe2\x2e\x40\x9f\x96\xe9\x3d\x7e\x11\x73\x93\x17\x2a",
+ .cipher = "\xf5\x8c\x4c\x04\xd6\xe5\xf1\xba\x77\x9e\xab\xfb\x5f\x7b\xfb\xd6",
+ },
+ {
+ .plain = "\xae\x2d\x8a\x57\x1e\x03\xac\x9c\x9e\xb7\x6f\xac\x45\xaf\x8e\x51",
+ .cipher = "\x9c\xfc\x4e\x96\x7e\xdb\x80\x8d\x67\x9f\x77\x7b\xc6\x70\x2c\x7d",
+ },
+ {
+ .plain = "\x30\xc8\x1c\x46\xa3\x5c\xe4\x11\xe5\xfb\xc1\x19\x1a\x0a\x52\xef",
+ .cipher = "\x39\xf2\x33\x69\xa9\xd9\xba\xcf\xa5\x30\xe2\x63\x04\x23\x14\x61",
+ },
+ {
+ .plain = "\xf6\x9f\x24\x45\xdf\x4f\x9b\x17\xad\x2b\x41\x7b\xe6\x6c\x37\x10",
+ .cipher = "\xb2\xeb\x05\xe2\xc3\x9b\xe9\xfc\xda\x6c\x19\x07\x8c\x6a\x9d\x1b",
+ },
+ },
+};
+
#endif /* MYNEWT_VAL(CRYPTOTEST_VECTORS_CBC) */
#if MYNEWT_VAL(CRYPTOTEST_VECTORS_CTR)
@@ -142,17 +201,53 @@ static struct test_vectors aes_128_ctr_vectors = {
},
},
};
+
+static struct test_vectors aes_256_ctr_vectors = {
+ .name = "AES-256-CTR",
+ .algo = CRYPTO_ALGO_AES,
+ .mode = CRYPTO_MODE_CTR,
+ .key = "\x60\x3d\xeb\x10\x15\xca\x71\xbe\x2b\x73\xae\xf0\x85\x7d\x77\x81"
+ "\x1f\x35\x2c\x07\x3b\x61\x08\xd7\x2d\x98\x10\xa3\x09\x14\xdf\xf4",
+ .keylen = 256,
+ .iv = "\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xf7\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff",
+ .len = 4,
+ .vectors = {
+ {
+ .plain = "\x6b\xc1\xbe\xe2\x2e\x40\x9f\x96\xe9\x3d\x7e\x11\x73\x93\x17\x2a",
+ .cipher = "\x60\x1e\xc3\x13\x77\x57\x89\xa5\xb7\xa7\xf5\x04\xbb\xf3\xd2\x28",
+ .sz = AES_BLOCK_LEN,
+ },
+ {
+ .plain = "\xae\x2d\x8a\x57\x1e\x03\xac\x9c\x9e\xb7\x6f\xac\x45\xaf\x8e\x51",
+ .cipher = "\xf4\x43\xe3\xca\x4d\x62\xb5\x9a\xca\x84\xe9\x90\xca\xca\xf5\xc5",
+ .sz = AES_BLOCK_LEN,
+ },
+ {
+ .plain = "\x30\xc8\x1c\x46\xa3\x5c\xe4\x11",
+ .cipher = "\x2b\x09\x30\xda\xa2\x3d\xe9\x4c",
+ .sz = 8,
+ },
+ {
+ .plain = "\xf6\x9f\x24\x45\xdf\x4f\x9b\x17\xad\x2b\x41\x7b\xe6\x6c\x37\x10",
+ .cipher = "\xdf\xc9\xc5\x8d\xb6\x7a\xad\xa6\x13\xc2\xdd\x08\x45\x79\x41\xa6",
+ .sz = AES_BLOCK_LEN,
+ },
+ },
+};
#endif /* MYNEWT_VAL(CRYPTOTEST_VECTORS_CTR) */
static struct test_vectors *all_tests[] = {
#if MYNEWT_VAL(CRYPTOTEST_VECTORS_ECB)
&aes_128_ecb_vectors,
+ &aes_256_ecb_vectors,
#endif
#if MYNEWT_VAL(CRYPTOTEST_VECTORS_CBC)
&aes_128_cbc_vectors,
+ &aes_256_cbc_vectors,
#endif
#if MYNEWT_VAL(CRYPTOTEST_VECTORS_CTR)
&aes_128_ctr_vectors,
+ &aes_256_ctr_vectors,
#endif
NULL,
};
@@ -444,6 +539,8 @@ run_concurrency_test(struct crypto_dev *crypto)
struct inplace_test {
uint16_t mode;
char *name;
+ const char *key;
+ uint32_t keylen;
char *iv;
char *expected;
};
@@ -451,27 +548,59 @@ struct inplace_test {
void
run_inplace_test(struct crypto_dev *crypto)
{
- const char *key = "\x2b\x7e\x15\x16\x28\xae\xd2\xa6\xab\xf7\x15\x88\x09\xcf\x4f\x3c";
+ const char *key128 = "\x2b\x7e\x15\x16\x28\xae\xd2\xa6\xab\xf7\x15\x88\x09\xcf\x4f\x3c";
+ const char *key256 = "\x60\x3d\xeb\x10\x15\xca\x71\xbe\x2b\x73\xae\xf0\x85\x7d\x77\x81"
+ "\x1f\x35\x2c\x07\x3b\x61\x08\xd7\x2d\x98\x10\xa3\x09\x14\xdf\xf4";
const char *inbuf = "\x6b\xc1\xbe\xe2\x2e\x40\x9f\x96\xe9\x3d\x7e\x11\x73\x93\x17\x2a";
struct inplace_test data[] = {
{
.mode = CRYPTO_MODE_ECB,
.name = "AES-128-ECB",
+ .key = key128,
+ .keylen = 128,
.iv = NULL,
.expected = "\x3a\xd7\x7b\xb4\x0d\x7a\x36\x60\xa8\x9e\xca\xf3\x24\x66\xef\x97",
},
{
+ .mode = CRYPTO_MODE_ECB,
+ .name = "AES-256-ECB",
+ .key = key256,
+ .keylen = 256,
+ .iv = NULL,
+ .expected = "\xf3\xee\xd1\xbd\xb5\xd2\xa0\x3c\x06\x4b\x5a\x7e\x3d\xb1\x81\xf8",
+ },
+ {
.mode = CRYPTO_MODE_CBC,
.name = "AES-128-CBC",
+ .key = key128,
+ .keylen = 128,
.iv = "\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0A\x0B\x0C\x0D\x0E\x0F",
.expected = "\x76\x49\xab\xac\x81\x19\xb2\x46\xce\xe9\x8e\x9b\x12\xe9\x19\x7d",
},
{
+ .mode = CRYPTO_MODE_CBC,
+ .name = "AES-256-CBC",
+ .key = key256,
+ .keylen = 256,
+ .iv = "\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0A\x0B\x0C\x0D\x0E\x0F",
+ .expected = "\xf5\x8c\x4c\x04\xd6\xe5\xf1\xba\x77\x9e\xab\xfb\x5f\x7b\xfb\xd6",
+ },
+ {
.mode = CRYPTO_MODE_CTR,
.name = "AES-128-CTR",
+ .key = key128,
+ .keylen = 128,
.iv = "\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xf7\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff",
.expected = "\x87\x4d\x61\x91\xb6\x20\xe3\x26\x1b\xef\x68\x64\x99\x0d\xb6\xce",
},
+ {
+ .mode = CRYPTO_MODE_CTR,
+ .name = "AES-256-CTR",
+ .key = key256,
+ .keylen = 256,
+ .iv = "\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xf7\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff",
+ .expected = "\x60\x1e\xc3\x13\x77\x57\x89\xa5\xb7\xa7\xf5\x04\xbb\xf3\xd2\x28",
+ },
};
uint8_t i;
uint8_t buf[AES_BLOCK_LEN];
@@ -486,7 +615,7 @@ run_inplace_test(struct crypto_dev *crypto)
printf("%s enc: ", data[i].name);
(void)crypto_encrypt_custom(crypto, CRYPTO_ALGO_AES, data[i].mode,
- key, 128, ivcopy, buf, buf, AES_BLOCK_LEN);
+ data[i].key, data[i].keylen, ivcopy, buf, buf, AES_BLOCK_LEN);
if (memcmp(buf, data[i].expected, AES_BLOCK_LEN) == 0) {
printf("ok\n");
} else {
@@ -498,7 +627,7 @@ run_inplace_test(struct crypto_dev *crypto)
printf("%s dec: ", data[i].name);
(void)crypto_decrypt_custom(crypto, CRYPTO_ALGO_AES, data[i].mode,
- key, 128, ivcopy, buf, buf, AES_BLOCK_LEN);
+ data[i].key, data[i].keylen, ivcopy, buf, buf, AES_BLOCK_LEN);
if (memcmp(buf, inbuf, AES_BLOCK_LEN) == 0) {
printf("ok\n");
} else {
@@ -519,15 +648,17 @@ struct iov_data {
uint16_t mode;
char *name;
char *key;
+ uint32_t keylen;
char *iv;
uint32_t iovlen;
struct iov_data_block iov[];
};
-static struct iov_data ecb_iovd = {
+static struct iov_data aes128_ecb_iovd = {
.mode = CRYPTO_MODE_ECB,
.name = "AES-128-ECB",
.key = "\x2b\x7e\x15\x16\x28\xae\xd2\xa6\xab\xf7\x15\x88\x09\xcf\x4f\x3c",
+ .keylen = 128,
.iv = NULL,
.iovlen = 3,
.iov = {
@@ -551,10 +682,40 @@ static struct iov_data ecb_iovd = {
},
};
-static struct iov_data cbc_iovd = {
+static struct iov_data aes256_ecb_iovd = {
+ .mode = CRYPTO_MODE_ECB,
+ .name = "AES-256-ECB",
+ .key = "\x60\x3d\xeb\x10\x15\xca\x71\xbe\x2b\x73\xae\xf0\x85\x7d\x77\x81"
+ "\x1f\x35\x2c\x07\x3b\x61\x08\xd7\x2d\x98\x10\xa3\x09\x14\xdf\xf4",
+ .keylen = 256,
+ .iv = NULL,
+ .iovlen = 3,
+ .iov = {
+ {
+ .plain = "\x6b\xc1\xbe\xe2\x2e\x40\x9f\x96\xe9\x3d\x7e\x11\x73\x93\x17\x2a",
+ .cipher = "\xf3\xee\xd1\xbd\xb5\xd2\xa0\x3c\x06\x4b\x5a\x7e\x3d\xb1\x81\xf8",
+ .len = AES_BLOCK_LEN,
+ },
+ {
+ .plain = "\xae\x2d\x8a\x57\x1e\x03\xac\x9c\x9e\xb7\x6f\xac\x45\xaf\x8e\x51",
+ .cipher = "\x59\x1c\xcb\x10\xd4\x10\xed\x26\xdc\x5b\xa7\x4a\x31\x36\x28\x70",
+ .len = AES_BLOCK_LEN,
+ },
+ {
+ .plain = "\x30\xc8\x1c\x46\xa3\x5c\xe4\x11\xe5\xfb\xc1\x19\x1a\x0a\x52\xef"
+ "\xf6\x9f\x24\x45\xdf\x4f\x9b\x17\xad\x2b\x41\x7b\xe6\x6c\x37\x10",
+ .cipher = "\xb6\xed\x21\xb9\x9c\xa6\xf4\xf9\xf1\x53\xe7\xb1\xbe\xaf\xed\x1d"
+ "\x23\x30\x4b\x7a\x39\xf9\xf3\xff\x6\x7d\x8d\x8f\x9e\x24\xec\xc7",
+ .len = AES_BLOCK_LEN * 2,
+ },
+ },
+};
+
+static struct iov_data aes128_cbc_iovd = {
.mode = CRYPTO_MODE_CBC,
.name = "AES-128-CBC",
.key = "\x2b\x7e\x15\x16\x28\xae\xd2\xa6\xab\xf7\x15\x88\x09\xcf\x4f\x3c",
+ .keylen = 128,
.iv = "\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0A\x0B\x0C\x0D\x0E\x0F",
.iovlen = 3,
.iov = {
@@ -578,10 +739,40 @@ static struct iov_data cbc_iovd = {
},
};
-static struct iov_data ctr_iovd = {
+static struct iov_data aes256_cbc_iovd = {
+ .mode = CRYPTO_MODE_CBC,
+ .name = "AES-256-CBC",
+ .key = "\x60\x3d\xeb\x10\x15\xca\x71\xbe\x2b\x73\xae\xf0\x85\x7d\x77\x81"
+ "\x1f\x35\x2c\x07\x3b\x61\x08\xd7\x2d\x98\x10\xa3\x09\x14\xdf\xf4",
+ .keylen = 256,
+ .iv = "\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0A\x0B\x0C\x0D\x0E\x0F",
+ .iovlen = 3,
+ .iov = {
+ {
+ .plain = "\x6b\xc1\xbe\xe2\x2e\x40\x9f\x96\xe9\x3d\x7e\x11\x73\x93\x17\x2a",
+ .cipher = "\xf5\x8c\x4c\x04\xd6\xe5\xf1\xba\x77\x9e\xab\xfb\x5f\x7b\xfb\xd6",
+ .len = AES_BLOCK_LEN,
+ },
+ {
+ .plain = "\xae\x2d\x8a\x57\x1e\x03\xac\x9c\x9e\xb7\x6f\xac\x45\xaf\x8e\x51"
+ "\x30\xc8\x1c\x46\xa3\x5c\xe4\x11\xe5\xfb\xc1\x19\x1a\x0a\x52\xef",
+ .cipher = "\x9c\xfc\x4e\x96\x7e\xdb\x80\x8d\x67\x9f\x77\x7b\xc6\x70\x2c\x7d"
+ "\x39\xf2\x33\x69\xa9\xd9\xba\xcf\xa5\x30\xe2\x63\x04\x23\x14\x61",
+ .len = AES_BLOCK_LEN * 2,
+ },
+ {
+ .plain = "\xf6\x9f\x24\x45\xdf\x4f\x9b\x17\xad\x2b\x41\x7b\xe6\x6c\x37\x10",
+ .cipher = "\xb2\xeb\x05\xe2\xc3\x9b\xe9\xfc\xda\x6c\x19\x07\x8c\x6a\x9d\x1b",
+ .len = AES_BLOCK_LEN,
+ },
+ },
+};
+
+static struct iov_data aes128_ctr_iovd = {
.mode = CRYPTO_MODE_CTR,
.name = "AES-128-CTR",
.key = "\x2b\x7e\x15\x16\x28\xae\xd2\xa6\xab\xf7\x15\x88\x09\xcf\x4f\x3c",
+ .keylen = 128,
.iv = "\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xf7\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff",
.iovlen = 3,
.iov = {
@@ -605,10 +796,42 @@ static struct iov_data ctr_iovd = {
},
};
+static struct iov_data aes256_ctr_iovd = {
+ .mode = CRYPTO_MODE_CTR,
+ .name = "AES-256-CTR",
+ .key = "\x60\x3d\xeb\x10\x15\xca\x71\xbe\x2b\x73\xae\xf0\x85\x7d\x77\x81"
+ "\x1f\x35\x2c\x07\x3b\x61\x08\xd7\x2d\x98\x10\xa3\x09\x14\xdf\xf4",
+ .keylen = 256,
+ .iv = "\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xf7\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff",
+ .iovlen = 3,
+ .iov = {
+ {
+ .plain = "\x6b\xc1\xbe\xe2\x2e\x40\x9f\x96\xe9\x3d\x7e\x11\x73\x93\x17\x2a"
+ "\xae\x2d\x8a\x57\x1e\x03\xac\x9c\x9e\xb7\x6f\xac\x45\xaf\x8e\x51",
+ .cipher = "\x60\x1e\xc3\x13\x77\x57\x89\xa5\xb7\xa7\xf5\x04\xbb\xf3\xd2\x28"
+ "\xf4\x43\xe3\xca\x4d\x62\xb5\x9a\xca\x84\xe9\x90\xca\xca\xf5\xc5",
+ .len = AES_BLOCK_LEN * 2,
+ },
+ {
+ .plain = "\x30\xc8\x1c\x46\xa3\x5c\xe4\x11\xe5\xfb\xc1\x19\x1a\x0a\x52\xef",
+ .cipher = "\x2b\x09\x30\xda\xa2\x3d\xe9\x4c\xe8\x70\x17\xba\x2d\x84\x98\x8d",
+ .len = AES_BLOCK_LEN,
+ },
+ {
+ .plain = "\xf6\x9f\x24\x45\xdf\x4f\x9b\x17\xad\x2b\x41\x7b\xe6\x6c\x37\x10",
+ .cipher = "\xdf\xc9\xc5\x8d\xb6\x7a\xad\xa6\x13\xc2\xdd\x08\x45\x79\x41\xa6",
+ .len = AES_BLOCK_LEN,
+ },
+ },
+};
+
static struct iov_data *all_iovd[] = {
- &ecb_iovd,
- &cbc_iovd,
- &ctr_iovd,
+ &aes128_ecb_iovd,
+ &aes256_ecb_iovd,
+ &aes128_cbc_iovd,
+ &aes256_cbc_iovd,
+ &aes128_ctr_iovd,
+ &aes256_ctr_iovd,
NULL,
};
@@ -643,7 +866,7 @@ run_iovec_test(struct crypto_dev *crypto)
fail = false;
len = 0;
total = crypto_encryptv_custom(crypto, CRYPTO_ALGO_AES, iovp->mode,
- iovp->key, 128, iv, iov, iovp->iovlen);
+ iovp->key, iovp->keylen, iv, iov, iovp->iovlen);
for (i = 0; i < iovp->iovlen; i++) {
if (memcmp(iovp->iov[i].cipher, iov[i].iov_base, iov[i].iov_len) != 0) {
fail = true;
@@ -676,7 +899,7 @@ run_iovec_test(struct crypto_dev *crypto)
fail = false;
len = 0;
total = crypto_decryptv_custom(crypto, CRYPTO_ALGO_AES, iovp->mode,
- iovp->key, 128, iv, iov, iovp->iovlen);
+ iovp->key, iovp->keylen, iv, iov, iovp->iovlen);
for (i = 0; i < iovp->iovlen; i++) {
if (memcmp(iovp->iov[i].plain, iov[i].iov_base, iov[i].iov_len) != 0) {
fail = true;