diff --git a/.gitignore b/.gitignore index 499a618..659edcc 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ *.o *.swp +AES* diff --git a/AESCMACtest.c b/AESCMACtest.c index ec0db81..1484dbc 100644 --- a/AESCMACtest.c +++ b/AESCMACtest.c @@ -1,5 +1,5 @@ #include -#include +#include #include "aes_cmac.h" #include "aes128.h" @@ -19,13 +19,13 @@ //////////////////////////////////////////////////////////////////////////////// int main(int argc, char const* argv[]) { - char *msg1 = "01234567890123456789"; - char *msg2 = "11234567890123456789"; - char *msg3 = "01234567891123456789"; - char *msg4 = "0123456789012345"; - char *msg5 = "ABCDEFGHIJJJJJJ5"; - char *msg6 = "ABCDEFGHIJJJJJJK"; - char *msg7 = "ZBCDEFGHIJJJJJJK"; + char msg1[] = "01234567890123456789"; + char msg2[] = "11234567890123456789"; + char msg3[] = "01234567891123456789"; + char msg4[] = "0123456789012345"; + char msg5[] = "ABCDEFGHIJJJJJJ5"; + char msg6[] = "ABCDEFGHIJJJJJJK"; + char msg7[] = "ZBCDEFGHIJJJJJJK"; uint mac[4]; @@ -33,7 +33,7 @@ 0x00, 0x34, 0x00, 0x78, 0x00, 0x00, 0x56, 0x78,}; #define DUMP(msg) \ printf("%-30s- ", msg);\ - memcpy(mac, (uint8*)AES_cmac(key, (uint *)msg, strlen(msg)), aes_datalen);\ + memcpy(mac, (uint8*)AES_cmac(key, (uint *)msg, sizeof(msg)), aes_datalen);\ dump(#msg " CMAC = ", (uint8*)mac, aes_datalen); DUMP(msg1); diff --git a/AESKDFtest.c b/AESKDFtest.c index 08d2150..be2c0f5 100644 --- a/AESKDFtest.c +++ b/AESKDFtest.c @@ -1,5 +1,5 @@ #include -#include +#include #include "aes_kdf.h" //////////////////////////////////////////////////////////////////////////////// diff --git a/AEStest.c b/AEStest.c index 95b55f7..7ac3967 100644 --- a/AEStest.c +++ b/AEStest.c @@ -1,5 +1,5 @@ #include -#include +#include #include "aes128.h" diff --git a/aes128.c b/aes128.c index 86cfc60..2df79f0 100644 --- a/aes128.c +++ b/aes128.c @@ -3,7 +3,7 @@ * (http://csrc.nist.gov/publications/fips/fips197/fips-197.pdf) * Copyright (C) 2015, T.Kurosawa */ -#include +#include #include "aes128.h" #include "aes128_sbox.h" @@ -12,7 +12,7 @@ const int Nb = 4; -static const int nround = aes_keylen_i + 6; +static const int nround = 10; //aes_keylen_i + 6; // local functions ... diff --git a/aes128.h b/aes128.h index a38d58e..984cd1a 100644 --- a/aes128.h +++ b/aes128.h @@ -4,12 +4,12 @@ #include "secure_types.h" static const int aes_datalen_in_bit = 128; -static const int aes_datalen = aes_datalen_in_bit/8; -static const int aes_datalen_i = aes_datalen/sizeof(int); +static const int aes_datalen = 32; //aes_datalen_in_bit/8; +static const int aes_datalen_i = 4; //aes_datalen/sizeof(int); static const int aes_keylen_in_bit = 128; -static const int aes_keylen = aes_keylen_in_bit/8; -static const int aes_keylen_i = aes_keylen/sizeof(int); +static const int aes_keylen = 32; //aes_keylen_in_bit/8; +static const int aes_keylen_i = 4; //aes_keylen/sizeof(int); int AES128_crypt(uint data[], uint8 *key); diff --git a/aes_cmac.c b/aes_cmac.c index fdd96eb..1f5717d 100644 --- a/aes_cmac.c +++ b/aes_cmac.c @@ -3,14 +3,14 @@ * (http://tools.ietf.org/html/rfc4493) * Copyright (C) 2015, T.Kurosawa */ -#include +#include #include "aes_cmac.h" #include "aes128.h" -static uint mac[aes_datalen_i]; -static uint K1[aes_datalen_i]; -static uint K2[aes_datalen_i]; +static uint mac[4]; //aes_datalen_i]; +static uint K1[4]; //aes_datalen_i]; +static uint K2[4]; //aes_datalen_i]; static const uint const_Zero[] = {0x00000000, 0x00000000, 0x00000000, 0x00000000 }; @@ -39,7 +39,7 @@ } } -static int ceil(int a, int b) +static int Ceil(int a, int b) { return (a/b)+(((a % b)!=0)?1:0); } @@ -76,7 +76,7 @@ uint *AES_cmac(uint8 *K, uint *M, int len) { uint M_last[aes_datalen_i]; - int n = ceil(len, aes_datalen); + int n = Ceil(len, aes_datalen); int i, flag; Generate_Subkey(K); diff --git a/aes_kdf.c b/aes_kdf.c index 6abc6e0..97a1359 100644 --- a/aes_kdf.c +++ b/aes_kdf.c @@ -3,11 +3,11 @@ * (http://tools.ietf.org/html/rfc4493) * Copyright (C) 2015, T.Kurosawa */ -#include +#include #include "aes_kdf.h" static const uint const_Zero[4] = {0, 0, 0, 0}; -static uint H[aes_datalen_i]; +static uint H[4]; //aes_datalen_i]; /// operators static void Xor(uint *a, const uint *b)