コード例 #1
0
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"));
}
コード例 #2
0
ファイル: crypto_test_cmac.c プロジェクト: randombit/hacrypto
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;
}
コード例 #3
0
ファイル: aes-test.c プロジェクト: zerotier/ZeroTierOne
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;
}