Newer
Older
AESLearning / AESCMACtest.c
@Takayuki Kurosawa Takayuki Kurosawa on 17 Mar 2015 1 KB maintainance release
#include <stdio.h>
#include <string.h>
#include "aes_cmac.h"
#include "aes128.h"

////////////////////////////////////////////////////////////////////////////////
void dump(const char *label,uint8 *dt,int len)
{
  int i;
  printf("%s",label);
  for(i=0;i<len;i++)
  {
    printf("%02x",*dt++);
  }
  printf("\n");
}


////////////////////////////////////////////////////////////////////////////////
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";

  uint mac[4];

	uint8 key[] = { 0x12, 0x34, 0x56, 0x78, 0xab, 0xcd, 0x56, 0x78,
	               0x00, 0x34, 0x00, 0x78, 0x00, 0x00, 0x56, 0x78,};
#define DUMP(msg) \
  printf("%-30s- ", msg);\
    memcpy(mac, (uint8*)AES_cmac(key, (uint *)msg, sizeof(msg)), aes_datalen);\
    dump(#msg " CMAC = ", (uint8*)mac, aes_datalen);

  DUMP(msg1);
  DUMP(msg2);
  DUMP(msg3);
  DUMP(msg4);
  DUMP(msg1);
  DUMP(msg5);
  DUMP(msg6);
  DUMP(msg7);
  DUMP(msg5);
	return 0;
}

// vi:expandtab:foldmethod=syntax sw=2 ts=2