static void bench_AES256_init(void *data) { AES256_ctx *ctx = (AES256_ctx *)data; int i; for (i = 0; i < 50000; i++) { AES256_init(ctx, (uint8_t *)ctx); } }
int main(void) { int i; int fail = 0; for (i = 0; i < static_cast<int>(sizeof(ctaes_tests) / sizeof(ctaes_tests[0])); i++) { unsigned char key[32], plain[16], cipher[16], ciphered[16], deciphered[16]; const ctaes_test* test = &ctaes_tests[i]; assert(test->keysize == 128 || test->keysize == 192 || test->keysize == 256); from_hex(plain, 16, test->plain); from_hex(cipher, 16, test->cipher); switch (test->keysize) { case 128: { AES128_ctx ctx; from_hex(key, 16, test->key); AES128_init(&ctx, key); AES128_encrypt(&ctx, 1, ciphered, plain); AES128_decrypt(&ctx, 1, deciphered, cipher); break; } case 192: { AES192_ctx ctx; from_hex(key, 24, test->key); AES192_init(&ctx, key); AES192_encrypt(&ctx, 1, ciphered, plain); AES192_decrypt(&ctx, 1, deciphered, cipher); break; } case 256: { AES256_ctx ctx; from_hex(key, 32, test->key); AES256_init(&ctx, key); AES256_encrypt(&ctx, 1, ciphered, plain); AES256_decrypt(&ctx, 1, deciphered, cipher); break; } } if (memcmp(cipher, ciphered, 16)) { fprintf(stderr, "E(key=\"%s\", plain=\"%s\") != \"%s\"\n", test->key, test->plain, test->cipher); fail++; } if (memcmp(plain, deciphered, 16)) { fprintf(stderr, "D(key=\"%s\", cipher=\"%s\") != \"%s\"\n", test->key, test->cipher, test->plain); fail++; } } if (fail == 0) { fprintf(stderr, "All tests successful\n"); } else { fprintf(stderr, "%i tests failed\n", fail); } return (fail != 0); }
AES256Decrypt::AES256Decrypt(const unsigned char key[32]) { AES256_init(&ctx, key); }
static void bench_AES256_encrypt_setup(void *data) { AES256_ctx *ctx = (AES256_ctx *)data; static const uint8_t key[16] = {0}; AES256_init(ctx, key); }