mirror of
https://github.com/Mbed-TLS/mbedtls.git
synced 2025-03-02 16:13:27 +00:00
aes selftest: determine selftest loop limit in runtime
Signed-off-by: Yanray Wang <yanray.wang@arm.com>
This commit is contained in:
parent
62c9991a5b
commit
59c2dfa48c
@ -1820,7 +1820,11 @@ int mbedtls_aes_self_test(int verbose)
|
|||||||
/*
|
/*
|
||||||
* ECB mode
|
* ECB mode
|
||||||
*/
|
*/
|
||||||
for (i = 0; i < 6; i++) {
|
{
|
||||||
|
static const int num_tests =
|
||||||
|
sizeof(aes_test_ecb_dec) / sizeof(*aes_test_ecb_dec);
|
||||||
|
|
||||||
|
for (i = 0; i < num_tests << 1; i++) {
|
||||||
u = i >> 1;
|
u = i >> 1;
|
||||||
keybits = 128 + u * 64;
|
keybits = 128 + u * 64;
|
||||||
mode = i & 1;
|
mode = i & 1;
|
||||||
@ -1830,13 +1834,6 @@ int mbedtls_aes_self_test(int verbose)
|
|||||||
(mode == MBEDTLS_AES_DECRYPT) ? "dec" : "enc");
|
(mode == MBEDTLS_AES_DECRYPT) ? "dec" : "enc");
|
||||||
}
|
}
|
||||||
|
|
||||||
#if defined(MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH)
|
|
||||||
if (keybits > 128) {
|
|
||||||
mbedtls_printf("skipped\n");
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
#endif /* MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH */
|
|
||||||
|
|
||||||
memset(buf, 0, 16);
|
memset(buf, 0, 16);
|
||||||
|
|
||||||
if (mode == MBEDTLS_AES_DECRYPT) {
|
if (mode == MBEDTLS_AES_DECRYPT) {
|
||||||
@ -1879,12 +1876,17 @@ int mbedtls_aes_self_test(int verbose)
|
|||||||
if (verbose != 0) {
|
if (verbose != 0) {
|
||||||
mbedtls_printf("\n");
|
mbedtls_printf("\n");
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#if defined(MBEDTLS_CIPHER_MODE_CBC)
|
#if defined(MBEDTLS_CIPHER_MODE_CBC)
|
||||||
/*
|
/*
|
||||||
* CBC mode
|
* CBC mode
|
||||||
*/
|
*/
|
||||||
for (i = 0; i < 6; i++) {
|
{
|
||||||
|
static const int num_tests =
|
||||||
|
sizeof(aes_test_cbc_dec) / sizeof(*aes_test_cbc_dec);
|
||||||
|
|
||||||
|
for (i = 0; i < num_tests << 1; i++) {
|
||||||
u = i >> 1;
|
u = i >> 1;
|
||||||
keybits = 128 + u * 64;
|
keybits = 128 + u * 64;
|
||||||
mode = i & 1;
|
mode = i & 1;
|
||||||
@ -1894,13 +1896,6 @@ int mbedtls_aes_self_test(int verbose)
|
|||||||
(mode == MBEDTLS_AES_DECRYPT) ? "dec" : "enc");
|
(mode == MBEDTLS_AES_DECRYPT) ? "dec" : "enc");
|
||||||
}
|
}
|
||||||
|
|
||||||
#if defined(MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH)
|
|
||||||
if (keybits > 128) {
|
|
||||||
mbedtls_printf("skipped\n");
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
#endif /* MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH */
|
|
||||||
|
|
||||||
memset(iv, 0, 16);
|
memset(iv, 0, 16);
|
||||||
memset(prv, 0, 16);
|
memset(prv, 0, 16);
|
||||||
memset(buf, 0, 16);
|
memset(buf, 0, 16);
|
||||||
@ -1954,13 +1949,18 @@ int mbedtls_aes_self_test(int verbose)
|
|||||||
if (verbose != 0) {
|
if (verbose != 0) {
|
||||||
mbedtls_printf("\n");
|
mbedtls_printf("\n");
|
||||||
}
|
}
|
||||||
|
}
|
||||||
#endif /* MBEDTLS_CIPHER_MODE_CBC */
|
#endif /* MBEDTLS_CIPHER_MODE_CBC */
|
||||||
|
|
||||||
#if defined(MBEDTLS_CIPHER_MODE_CFB)
|
#if defined(MBEDTLS_CIPHER_MODE_CFB)
|
||||||
/*
|
/*
|
||||||
* CFB128 mode
|
* CFB128 mode
|
||||||
*/
|
*/
|
||||||
for (i = 0; i < 6; i++) {
|
{
|
||||||
|
static const int num_tests =
|
||||||
|
sizeof(aes_test_cfb128_key) / sizeof(*aes_test_cfb128_key);
|
||||||
|
|
||||||
|
for (i = 0; i < num_tests << 1; i++) {
|
||||||
u = i >> 1;
|
u = i >> 1;
|
||||||
keybits = 128 + u * 64;
|
keybits = 128 + u * 64;
|
||||||
mode = i & 1;
|
mode = i & 1;
|
||||||
@ -1970,13 +1970,6 @@ int mbedtls_aes_self_test(int verbose)
|
|||||||
(mode == MBEDTLS_AES_DECRYPT) ? "dec" : "enc");
|
(mode == MBEDTLS_AES_DECRYPT) ? "dec" : "enc");
|
||||||
}
|
}
|
||||||
|
|
||||||
#if defined(MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH)
|
|
||||||
if (keybits > 128) {
|
|
||||||
mbedtls_printf("skipped\n");
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
#endif /* MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH */
|
|
||||||
|
|
||||||
memcpy(iv, aes_test_cfb128_iv, 16);
|
memcpy(iv, aes_test_cfb128_iv, 16);
|
||||||
memcpy(key, aes_test_cfb128_key[u], keybits / 8);
|
memcpy(key, aes_test_cfb128_key[u], keybits / 8);
|
||||||
|
|
||||||
@ -2020,13 +2013,18 @@ int mbedtls_aes_self_test(int verbose)
|
|||||||
if (verbose != 0) {
|
if (verbose != 0) {
|
||||||
mbedtls_printf("\n");
|
mbedtls_printf("\n");
|
||||||
}
|
}
|
||||||
|
}
|
||||||
#endif /* MBEDTLS_CIPHER_MODE_CFB */
|
#endif /* MBEDTLS_CIPHER_MODE_CFB */
|
||||||
|
|
||||||
#if defined(MBEDTLS_CIPHER_MODE_OFB)
|
#if defined(MBEDTLS_CIPHER_MODE_OFB)
|
||||||
/*
|
/*
|
||||||
* OFB mode
|
* OFB mode
|
||||||
*/
|
*/
|
||||||
for (i = 0; i < 6; i++) {
|
{
|
||||||
|
static const int num_tests =
|
||||||
|
sizeof(aes_test_ofb_key) / sizeof(*aes_test_ofb_key);
|
||||||
|
|
||||||
|
for (i = 0; i < num_tests << 1; i++) {
|
||||||
u = i >> 1;
|
u = i >> 1;
|
||||||
keybits = 128 + u * 64;
|
keybits = 128 + u * 64;
|
||||||
mode = i & 1;
|
mode = i & 1;
|
||||||
@ -2036,13 +2034,6 @@ int mbedtls_aes_self_test(int verbose)
|
|||||||
(mode == MBEDTLS_AES_DECRYPT) ? "dec" : "enc");
|
(mode == MBEDTLS_AES_DECRYPT) ? "dec" : "enc");
|
||||||
}
|
}
|
||||||
|
|
||||||
#if defined(MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH)
|
|
||||||
if (keybits > 128) {
|
|
||||||
mbedtls_printf("skipped\n");
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
#endif /* MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH */
|
|
||||||
|
|
||||||
memcpy(iv, aes_test_ofb_iv, 16);
|
memcpy(iv, aes_test_ofb_iv, 16);
|
||||||
memcpy(key, aes_test_ofb_key[u], keybits / 8);
|
memcpy(key, aes_test_ofb_key[u], keybits / 8);
|
||||||
|
|
||||||
@ -2086,13 +2077,18 @@ int mbedtls_aes_self_test(int verbose)
|
|||||||
if (verbose != 0) {
|
if (verbose != 0) {
|
||||||
mbedtls_printf("\n");
|
mbedtls_printf("\n");
|
||||||
}
|
}
|
||||||
|
}
|
||||||
#endif /* MBEDTLS_CIPHER_MODE_OFB */
|
#endif /* MBEDTLS_CIPHER_MODE_OFB */
|
||||||
|
|
||||||
#if defined(MBEDTLS_CIPHER_MODE_CTR)
|
#if defined(MBEDTLS_CIPHER_MODE_CTR)
|
||||||
/*
|
/*
|
||||||
* CTR mode
|
* CTR mode
|
||||||
*/
|
*/
|
||||||
for (i = 0; i < 6; i++) {
|
{
|
||||||
|
static const int num_tests =
|
||||||
|
sizeof(aes_test_ctr_key) / sizeof(*aes_test_ctr_key);
|
||||||
|
|
||||||
|
for (i = 0; i < num_tests << 1; i++) {
|
||||||
u = i >> 1;
|
u = i >> 1;
|
||||||
mode = i & 1;
|
mode = i & 1;
|
||||||
|
|
||||||
@ -2134,6 +2130,7 @@ int mbedtls_aes_self_test(int verbose)
|
|||||||
mbedtls_printf("passed\n");
|
mbedtls_printf("passed\n");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (verbose != 0) {
|
if (verbose != 0) {
|
||||||
mbedtls_printf("\n");
|
mbedtls_printf("\n");
|
||||||
@ -2141,14 +2138,14 @@ int mbedtls_aes_self_test(int verbose)
|
|||||||
#endif /* MBEDTLS_CIPHER_MODE_CTR */
|
#endif /* MBEDTLS_CIPHER_MODE_CTR */
|
||||||
|
|
||||||
#if defined(MBEDTLS_CIPHER_MODE_XTS)
|
#if defined(MBEDTLS_CIPHER_MODE_XTS)
|
||||||
|
/*
|
||||||
|
* XTS mode
|
||||||
|
*/
|
||||||
{
|
{
|
||||||
static const int num_tests =
|
static const int num_tests =
|
||||||
sizeof(aes_test_xts_key) / sizeof(*aes_test_xts_key);
|
sizeof(aes_test_xts_key) / sizeof(*aes_test_xts_key);
|
||||||
mbedtls_aes_xts_context ctx_xts;
|
mbedtls_aes_xts_context ctx_xts;
|
||||||
|
|
||||||
/*
|
|
||||||
* XTS mode
|
|
||||||
*/
|
|
||||||
mbedtls_aes_xts_init(&ctx_xts);
|
mbedtls_aes_xts_init(&ctx_xts);
|
||||||
|
|
||||||
for (i = 0; i < num_tests << 1; i++) {
|
for (i = 0; i < num_tests << 1; i++) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user