SEC: Add AES stress tests.
authorrasky <rasky@38d2e660-2303-0410-9eaa-f027e97ec537>
Wed, 29 Sep 2010 21:40:56 +0000 (21:40 +0000)
committerrasky <rasky@38d2e660-2303-0410-9eaa-f027e97ec537>
Wed, 29 Sep 2010 21:40:56 +0000 (21:40 +0000)
git-svn-id: https://src.develer.com/svnoss/bertos/trunk@4372 38d2e660-2303-0410-9eaa-f027e97ec537

bertos/sec/cipher/aes_test.c

index 9971bb56f1d601e5ee79faeac13d20d59c357f2b..8ffb283aa7fa54ad92ecf74cdd227c4a94c56305 100644 (file)
@@ -150,7 +150,7 @@ ECB128_Tests[] =
 { "\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xf0", "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "\x41\xc7\x8c\x13\x5e\xd9\xe9\x8c\x09\x66\x40\x64\x72\x65\xda\x1e", },
 { "\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xf8", "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "\x5a\x4d\x40\x4d\x89\x17\xe3\x53\xe9\x2a\x21\x07\x2c\x3b\x23\x05", },
 { "\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfc", "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "\x02\xbc\x96\x84\x6b\x3f\xdc\x71\x64\x3f\x38\x4c\xd3\xcc\x3e\xaf", },
-{ "\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe", "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "\x9b\xa4\xa9\x14\x3f\x4e\x5d\x40\x48\x52\x1c\x4f\x88\x77\xd8\x8e", },       
+{ "\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe", "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "\x9b\xa4\xa9\x14\x3f\x4e\x5d\x40\x48\x52\x1c\x4f\x88\x77\xd8\x8e", },
 { "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "\x3a\xd7\x8e\x72\x6c\x1e\xc0\x2b\x7e\xbf\xe9\x2b\x23\xd9\xec\x34", },
 { "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "\xaa\xe5\x93\x9c\x8e\xfd\xf2\xf0\x4e\x60\xb9\xfe\x71\x17\xb2\xc2", },
 { "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "\xe0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "\xf0\x31\xd4\xd7\x4f\x5d\xcb\xf3\x9d\xaa\xf8\xca\x3a\xf6\xe5\x27", },
@@ -1016,7 +1016,14 @@ static void AES128_testRun(void)
                cipher_ecb_decrypt(c, buf);
                ASSERT(memcmp(buf, t->pt, 16) == 0);
        }
-}      
+
+       uint8_t data[16];
+       memset(data, 0, 16);
+       cipher_set_key(c, "0123456789ABCDEF");
+       for (int i=0;i<1000;++i) cipher_ecb_encrypt(c, data);
+       for (int i=0;i<1000;++i) cipher_ecb_decrypt(c, data);
+       ASSERT(memcmp(data, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", 16) == 0);
+}
 
 static void AES192_testRun(void)
 {
@@ -1033,7 +1040,14 @@ static void AES192_testRun(void)
                cipher_ecb_decrypt(c, buf);
                ASSERT(memcmp(buf, t->pt, 16) == 0);
        }
-}      
+
+       uint8_t data[16];
+       memset(data, 0, 16);
+       cipher_set_key(c, "0123456789ABCDEF01234567");
+       for (int i=0;i<1000;++i) cipher_ecb_encrypt(c, data);
+       for (int i=0;i<1000;++i) cipher_ecb_decrypt(c, data);
+       ASSERT(memcmp(data, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", 16) == 0);
+}
 
 static void AES256_testRun(void)
 {
@@ -1050,17 +1064,24 @@ static void AES256_testRun(void)
                cipher_ecb_decrypt(c, buf);
                ASSERT(memcmp(buf, t->pt, 16) == 0);
        }
-}      
+
+       uint8_t data[16];
+       memset(data, 0, 16);
+       cipher_set_key(c, "0123456789ABCDEF0123456789ABCDEF");
+       for (int i=0;i<1000;++i) cipher_ecb_encrypt(c, data);
+       for (int i=0;i<1000;++i) cipher_ecb_decrypt(c, data);
+       ASSERT(memcmp(data, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", 16) == 0);
+}
 
 int AES_testRun(void)
 {
        AES128_testRun();
        AES192_testRun();
        AES256_testRun();
-       
+
        //BlockCipher *c = AES192_stackinit();
        //cipher_set_key(c, "\x8e\x73\xb0\xf7\xda\x0e\x64\x52\xc8\x10\xf3\x2b\x80\x90\x79\xe5\x62\xf8\xea\xd2\x52\x2c\x6b\x7b");
-       
+
        return 0;
 }