Home | History | Annotate | Download | only in dcrypto
      1 #ifndef AES_CMAC_RFC4493_H
      2 #define AES_CMAC_RFC4493_H
      3 
      4 /*
      5  * AES CMAC test vectors from:
      6  *     https://tools.ietf.org/html/rfc4493
      7  *
      8  * NOTE: test vectors only present for AES-256.
      9  */
     10 
     11 typedef struct {
     12   uint8_t K[16];
     13   uint8_t M[64];
     14   size_t M_len;
     15   uint8_t CMAC[16];
     16 } cmac_data;
     17 
     18 const cmac_data RFC4493_AES_CMAC_DATA[] = {
     19   {
     20     .K = {
     21       0x2b, 0x7e, 0x15, 0x16, 0x28, 0xae, 0xd2, 0xa6,
     22       0xab, 0xf7, 0x15, 0x88, 0x09, 0xcf, 0x4f, 0x3c
     23     },
     24     .M = { },
     25     .M_len = 0,
     26     .CMAC = {
     27       0xbb, 0x1d, 0x69, 0x29, 0xe9, 0x59, 0x37, 0x28,
     28       0x7f, 0xa3, 0x7d, 0x12, 0x9b, 0x75, 0x67, 0x46
     29     },
     30   },
     31   {
     32     .K = {
     33       0x2b, 0x7e, 0x15, 0x16, 0x28, 0xae, 0xd2, 0xa6,
     34       0xab, 0xf7, 0x15, 0x88, 0x09, 0xcf, 0x4f, 0x3c
     35     },
     36     .M = {
     37       0x6b, 0xc1, 0xbe, 0xe2, 0x2e, 0x40, 0x9f, 0x96,
     38       0xe9, 0x3d, 0x7e, 0x11, 0x73, 0x93, 0x17, 0x2a
     39     },
     40     .M_len = 16,
     41     .CMAC = {
     42       0x07, 0x0a, 0x16, 0xb4, 0x6b, 0x4d, 0x41, 0x44,
     43       0xf7, 0x9b, 0xdd, 0x9d, 0xd0, 0x4a, 0x28, 0x7c
     44     },
     45   },
     46   {
     47     .K = {
     48       0x2b, 0x7e, 0x15, 0x16, 0x28, 0xae, 0xd2, 0xa6,
     49       0xab, 0xf7, 0x15, 0x88, 0x09, 0xcf, 0x4f, 0x3c
     50     },
     51     .M = {
     52       0x6b, 0xc1, 0xbe, 0xe2, 0x2e, 0x40, 0x9f, 0x96,
     53       0xe9, 0x3d, 0x7e, 0x11, 0x73, 0x93, 0x17, 0x2a,
     54       0xae, 0x2d, 0x8a, 0x57, 0x1e, 0x03, 0xac, 0x9c,
     55       0x9e, 0xb7, 0x6f, 0xac, 0x45, 0xaf, 0x8e, 0x51,
     56       0x30, 0xc8, 0x1c, 0x46, 0xa3, 0x5c, 0xe4, 0x11
     57     },
     58     .M_len = 40,
     59     .CMAC = {
     60       0xdf, 0xa6, 0x67, 0x47, 0xde, 0x9a, 0xe6, 0x30,
     61       0x30, 0xca, 0x32, 0x61, 0x14, 0x97, 0xc8, 0x27
     62     },
     63   },
     64   {
     65     .K = {
     66       0x2b, 0x7e, 0x15, 0x16, 0x28, 0xae, 0xd2, 0xa6,
     67       0xab, 0xf7, 0x15, 0x88, 0x09, 0xcf, 0x4f, 0x3c
     68     },
     69     .M = {
     70       0x6b, 0xc1, 0xbe, 0xe2, 0x2e, 0x40, 0x9f, 0x96,
     71       0xe9, 0x3d, 0x7e, 0x11, 0x73, 0x93, 0x17, 0x2a,
     72       0xae, 0x2d, 0x8a, 0x57, 0x1e, 0x03, 0xac, 0x9c,
     73       0x9e, 0xb7, 0x6f, 0xac, 0x45, 0xaf, 0x8e, 0x51,
     74       0x30, 0xc8, 0x1c, 0x46, 0xa3, 0x5c, 0xe4, 0x11,
     75       0xe5, 0xfb, 0xc1, 0x19, 0x1a, 0x0a, 0x52, 0xef,
     76       0xf6, 0x9f, 0x24, 0x45, 0xdf, 0x4f, 0x9b, 0x17,
     77       0xad, 0x2b, 0x41, 0x7b, 0xe6, 0x6c, 0x37, 0x10,
     78     },
     79     .M_len = 64,
     80     .CMAC = {
     81       0x51, 0xf0, 0xbe, 0xbf, 0x7e, 0x3b, 0x9d, 0x92,
     82       0xfc, 0x49, 0x74, 0x17, 0x79, 0x36, 0x3c, 0xfe
     83     },
     84   },
     85 };
     86 
     87 #endif  // AES_CMAC_RFC4493_H
     88