From 88f258872c63ec0ab02ad1680affb897f1d12937 Mon Sep 17 00:00:00 2001 From: Stoian Ivanov Date: Tue, 5 Dec 2017 03:06:57 +0200 Subject: make thead safe via context pram; remove padding as non working; opitmise abit --- test.c | 29 +++++++++++++++++++---------- 1 file changed, 19 insertions(+), 10 deletions(-) (limited to 'test.c') diff --git a/test.c b/test.c index 5b55eb9..2bd2159 100644 --- a/test.c +++ b/test.c @@ -97,9 +97,11 @@ static void test_encrypt_ecb_verbose(void) // print the resulting cipher as 4 x 16 byte strings printf("ciphertext:\n"); + struct AES_ctx ctx; + AES_init_ctx(&ctx,key); for(i = 0; i < 4; ++i) { - AES_ECB_encrypt(plain_text + (i*16), key, buf+(i*16), 16); + AES_ECB_encrypt(&ctx,plain_text + (i*16), buf+(i*16)); phex(buf + (i*16)); } printf("\n"); @@ -124,7 +126,8 @@ static void test_encrypt_ecb(void) uint8_t in[] = {0x6b, 0xc1, 0xbe, 0xe2, 0x2e, 0x40, 0x9f, 0x96, 0xe9, 0x3d, 0x7e, 0x11, 0x73, 0x93, 0x17, 0x2a}; uint8_t buffer[16]; - AES_ECB_encrypt(in, key, buffer, 16); + struct AES_ctx ctx; AES_init_ctx(&ctx,key); + AES_ECB_encrypt(&ctx,in, buffer); printf("ECB encrypt: "); @@ -167,8 +170,9 @@ static void test_decrypt_cbc(void) 0x30, 0xc8, 0x1c, 0x46, 0xa3, 0x5c, 0xe4, 0x11, 0xe5, 0xfb, 0xc1, 0x19, 0x1a, 0x0a, 0x52, 0xef, 0xf6, 0x9f, 0x24, 0x45, 0xdf, 0x4f, 0x9b, 0x17, 0xad, 0x2b, 0x41, 0x7b, 0xe6, 0x6c, 0x37, 0x10 }; uint8_t buffer[64]; - - AES_CBC_decrypt_buffer(buffer, in, 64, key, iv); + struct AES_ctx ctx; + AES_init_ctx_iv(&ctx,key,iv); + AES_CBC_decrypt_buffer(&ctx,buffer, in, 64); printf("CBC decrypt: "); @@ -211,8 +215,9 @@ static void test_encrypt_cbc(void) 0xf6, 0x9f, 0x24, 0x45, 0xdf, 0x4f, 0x9b, 0x17, 0xad, 0x2b, 0x41, 0x7b, 0xe6, 0x6c, 0x37, 0x10 }; uint8_t buffer[64]; - - AES_CBC_encrypt_buffer(buffer, in, 64, key, iv); + struct AES_ctx ctx; + AES_init_ctx_iv(&ctx,key,iv); + AES_CBC_encrypt_buffer(&ctx,buffer, in, 64); printf("CBC encrypt: "); @@ -266,8 +271,11 @@ static void test_xcrypt_ctr(const char* xcrypt) 0x30, 0xc8, 0x1c, 0x46, 0xa3, 0x5c, 0xe4, 0x11, 0xe5, 0xfb, 0xc1, 0x19, 0x1a, 0x0a, 0x52, 0xef, 0xf6, 0x9f, 0x24, 0x45, 0xdf, 0x4f, 0x9b, 0x17, 0xad, 0x2b, 0x41, 0x7b, 0xe6, 0x6c, 0x37, 0x10 }; uint8_t buffer[64]; - - AES_CTR_xcrypt_buffer(buffer, in, 64, key, iv); + + struct AES_ctx ctx; + AES_init_ctx_iv(&ctx,key,iv); + + AES_CTR_xcrypt_buffer(&ctx,buffer, in, 64); printf("CTR %s: ", xcrypt); @@ -299,8 +307,9 @@ static void test_decrypt_ecb(void) uint8_t out[] = {0x6b, 0xc1, 0xbe, 0xe2, 0x2e, 0x40, 0x9f, 0x96, 0xe9, 0x3d, 0x7e, 0x11, 0x73, 0x93, 0x17, 0x2a}; uint8_t buffer[16]; - - AES_ECB_decrypt(in, key, buffer, 16); + struct AES_ctx ctx; + AES_init_ctx(&ctx,key); + AES_ECB_decrypt(&ctx,in, buffer); printf("ECB decrypt: "); -- cgit v1.2.3 From 1e86fddb216b05b3de59bb59db5808f0a0861466 Mon Sep 17 00:00:00 2001 From: Stoian Ivanov Date: Tue, 5 Dec 2017 14:27:53 +0200 Subject: inplace api and test, Makefile update --- test.c | 31 ++++++++++++++----------------- 1 file changed, 14 insertions(+), 17 deletions(-) (limited to 'test.c') diff --git a/test.c b/test.c index 2bd2159..1460003 100644 --- a/test.c +++ b/test.c @@ -101,8 +101,8 @@ static void test_encrypt_ecb_verbose(void) AES_init_ctx(&ctx,key); for(i = 0; i < 4; ++i) { - AES_ECB_encrypt(&ctx,plain_text + (i*16), buf+(i*16)); - phex(buf + (i*16)); + AES_ECB_encrypt(&ctx,plain_text + (i*16)); + phex(plain_text + (i*16)); } printf("\n"); } @@ -124,14 +124,13 @@ static void test_encrypt_ecb(void) #endif uint8_t in[] = {0x6b, 0xc1, 0xbe, 0xe2, 0x2e, 0x40, 0x9f, 0x96, 0xe9, 0x3d, 0x7e, 0x11, 0x73, 0x93, 0x17, 0x2a}; - uint8_t buffer[16]; struct AES_ctx ctx; AES_init_ctx(&ctx,key); - AES_ECB_encrypt(&ctx,in, buffer); + AES_ECB_encrypt(&ctx,in); printf("ECB encrypt: "); - if(0 == memcmp((char*) out, (char*) buffer, 16)) + if(0 == memcmp((char*) out, (char*) in, 16)) { printf("SUCCESS!\n"); } @@ -169,14 +168,14 @@ static void test_decrypt_cbc(void) 0xae, 0x2d, 0x8a, 0x57, 0x1e, 0x03, 0xac, 0x9c, 0x9e, 0xb7, 0x6f, 0xac, 0x45, 0xaf, 0x8e, 0x51, 0x30, 0xc8, 0x1c, 0x46, 0xa3, 0x5c, 0xe4, 0x11, 0xe5, 0xfb, 0xc1, 0x19, 0x1a, 0x0a, 0x52, 0xef, 0xf6, 0x9f, 0x24, 0x45, 0xdf, 0x4f, 0x9b, 0x17, 0xad, 0x2b, 0x41, 0x7b, 0xe6, 0x6c, 0x37, 0x10 }; - uint8_t buffer[64]; +// uint8_t buffer[64]; struct AES_ctx ctx; AES_init_ctx_iv(&ctx,key,iv); - AES_CBC_decrypt_buffer(&ctx,buffer, in, 64); + AES_CBC_decrypt_buffer(&ctx,in, 64); printf("CBC decrypt: "); - if(0 == memcmp((char*) out, (char*) buffer, 64)) + if(0 == memcmp((char*) out, (char*) in, 64)) { printf("SUCCESS!\n"); } @@ -214,14 +213,13 @@ static void test_encrypt_cbc(void) 0x30, 0xc8, 0x1c, 0x46, 0xa3, 0x5c, 0xe4, 0x11, 0xe5, 0xfb, 0xc1, 0x19, 0x1a, 0x0a, 0x52, 0xef, 0xf6, 0x9f, 0x24, 0x45, 0xdf, 0x4f, 0x9b, 0x17, 0xad, 0x2b, 0x41, 0x7b, 0xe6, 0x6c, 0x37, 0x10 }; - uint8_t buffer[64]; struct AES_ctx ctx; AES_init_ctx_iv(&ctx,key,iv); - AES_CBC_encrypt_buffer(&ctx,buffer, in, 64); + AES_CBC_encrypt_buffer(&ctx, in, 64); printf("CBC encrypt: "); - if(0 == memcmp((char*) out, (char*) buffer, 64)) + if(0 == memcmp((char*) out, (char*) in, 64)) { printf("SUCCESS!\n"); } @@ -270,16 +268,15 @@ static void test_xcrypt_ctr(const char* xcrypt) 0xae, 0x2d, 0x8a, 0x57, 0x1e, 0x03, 0xac, 0x9c, 0x9e, 0xb7, 0x6f, 0xac, 0x45, 0xaf, 0x8e, 0x51, 0x30, 0xc8, 0x1c, 0x46, 0xa3, 0x5c, 0xe4, 0x11, 0xe5, 0xfb, 0xc1, 0x19, 0x1a, 0x0a, 0x52, 0xef, 0xf6, 0x9f, 0x24, 0x45, 0xdf, 0x4f, 0x9b, 0x17, 0xad, 0x2b, 0x41, 0x7b, 0xe6, 0x6c, 0x37, 0x10 }; - uint8_t buffer[64]; struct AES_ctx ctx; AES_init_ctx_iv(&ctx,key,iv); - AES_CTR_xcrypt_buffer(&ctx,buffer, in, 64); + AES_CTR_xcrypt_buffer(&ctx, in, 64); printf("CTR %s: ", xcrypt); - if (0 == memcmp((char *) out, (char *) buffer, 64)) + if (0 == memcmp((char *) out, (char *) in, 64)) { printf("SUCCESS!\n"); } @@ -306,14 +303,14 @@ static void test_decrypt_ecb(void) #endif uint8_t out[] = {0x6b, 0xc1, 0xbe, 0xe2, 0x2e, 0x40, 0x9f, 0x96, 0xe9, 0x3d, 0x7e, 0x11, 0x73, 0x93, 0x17, 0x2a}; - uint8_t buffer[16]; + struct AES_ctx ctx; AES_init_ctx(&ctx,key); - AES_ECB_decrypt(&ctx,in, buffer); + AES_ECB_decrypt(&ctx,in); printf("ECB decrypt: "); - if(0 == memcmp((char*) out, (char*) buffer, 16)) + if(0 == memcmp((char*) out, (char*) in, 16)) { printf("SUCCESS!\n"); } -- cgit v1.2.3