void doit ( void) { /* * SP300-38B #D.1 */ /* * Example 1 */ test_cmac (HL ("2b7e151628aed2a6abf7158809cf4f3c"), HL (""), HL ("bb1d6929e95937287fa37d129b756746")); /* * Example 2 */ test_cmac (HL ("2b7e151628aed2a6abf7158809cf4f3c"), HL ("6bc1bee22e409f96e93d7e117393172a"), HL ("070a16b46b4d4144f79bdd9dd04a287c")); /* * Example 3 */ test_cmac (HL ("2b7e151628aed2a6abf7158809cf4f3c"), HL ("6bc1bee22e409f96e93d7e117393172a" "ae2d8a571e03ac9c9eb76fac45af8e51" "30c81c46a35ce411"), HL ("dfa66747de9ae63030ca32611497c827")); /* * Example 4 */ test_cmac (HL ("2b7e151628aed2a6abf7158809cf4f3c"), HL ("6bc1bee22e409f96e93d7e117393172a" "ae2d8a571e03ac9c9eb76fac45af8e51" "30c81c46a35ce411e5fbc1191a0a52ef" "f69f2445df4f9b17ad2b417be66c3710"), HL ("51f0bebf7e3b9d92fc49741779363cfe")); }
int cccmactest(TM_UNUSED int argc, TM_UNUSED char *const *argv) { plan_tests(57); if(verbose) diag("Starting cmac tests"); ok(test_cmac(ccaes_cbc_encrypt_mode(), "system cbc di"), "CMAC Tests"); return 0; }
int main(int argc,char **argv) { AnodeAesExpandedKey expkey; unsigned int i; unsigned char aestestbuf[16]; unsigned char cfbin[131072]; unsigned char iv[16]; printf("Testing AES-256:"); Anode_aes256_expand_key(AES_TEST_KEY,&expkey); printf(" IN: "); for(i=0;i<16;++i) printf("%.2x",(int)AES_TEST_IN[i]); printf("\n"); printf(" EXP: "); for(i=0;i<16;++i) printf("%.2x",(int)AES_TEST_OUT[i]); printf("\n"); Anode_aes256_encrypt(&expkey,AES_TEST_IN,aestestbuf); printf(" OUT: "); for(i=0;i<16;++i) printf("%.2x",(int)aestestbuf[i]); printf("\n"); if (memcmp(AES_TEST_OUT,aestestbuf,16)) { printf("FAILED!\n"); return 1; } else printf("Passed.\n"); printf("\n"); Anode_aes256_expand_key(CMAC_TEST_KEY,&expkey); test_cmac(&expkey,(unsigned char *)0,0,CMAC_TEST1_OUT); test_cmac(&expkey,CMAC_TEST2_IN,16,CMAC_TEST2_OUT); test_cmac(&expkey,CMAC_TEST3_IN,40,CMAC_TEST3_OUT); test_cmac(&expkey,CMAC_TEST4_IN,64,CMAC_TEST4_OUT); printf("\n"); for(i=0;i<131072;++i) cfbin[i] = (unsigned char)(i & 0xff); for(i=0;i<16;++i) iv[i] = (unsigned char)(i & 0xff); for(i=12345;i<131072;i+=7777) test_cfb(&expkey,cfbin,i,iv,cfbin); printf("\nTesting AES-DIGEST...\n"); printf("0 bytes: "); Anode_aes_digest(cfbin,0,iv); for(i=0;i<16;++i) printf("%.2x",(unsigned int)iv[i]); printf("\n"); printf("%d bytes: ",(int)strlen(AES_DIGEST_TEST_1)); Anode_aes_digest(AES_DIGEST_TEST_1,strlen(AES_DIGEST_TEST_1),iv); for(i=0;i<16;++i) printf("%.2x",(unsigned int)iv[i]); printf("\n"); printf("%d bytes: ",(int)strlen(AES_DIGEST_TEST_2)); Anode_aes_digest(AES_DIGEST_TEST_2,strlen(AES_DIGEST_TEST_2),iv); for(i=0;i<16;++i) printf("%.2x",(unsigned int)iv[i]); printf("\n"); printf("%d bytes: ",(int)strlen(AES_DIGEST_TEST_3)); Anode_aes_digest(AES_DIGEST_TEST_3,strlen(AES_DIGEST_TEST_3),iv); for(i=0;i<16;++i) printf("%.2x",(unsigned int)iv[i]); printf("\n"); printf("%d bytes: ",(int)strlen(AES_DIGEST_TEST_4)); Anode_aes_digest(AES_DIGEST_TEST_4,strlen(AES_DIGEST_TEST_4),iv); for(i=0;i<16;++i) printf("%.2x",(unsigned int)iv[i]); printf("\n"); return 0; }