mirror of
https://github.com/wolfSSL/wolfssl.git
synced 2025-07-31 19:24:42 +02:00
Added two more GMAC test cases
This commit is contained in:
@@ -1941,40 +1941,88 @@ int gmac_test(void)
|
||||
{
|
||||
Gmac gmac;
|
||||
|
||||
const byte k[] =
|
||||
const byte k1[] =
|
||||
{
|
||||
0x89, 0xc9, 0x49, 0xe9, 0xc8, 0x04, 0xaf, 0x01,
|
||||
0x4d, 0x56, 0x04, 0xb3, 0x94, 0x59, 0xf2, 0xc8
|
||||
};
|
||||
|
||||
const byte iv[] =
|
||||
const byte iv1[] =
|
||||
{
|
||||
0xd1, 0xb1, 0x04, 0xc8, 0x15, 0xbf, 0x1e, 0x94,
|
||||
0xe2, 0x8c, 0x8f, 0x16
|
||||
};
|
||||
|
||||
const byte a[] =
|
||||
const byte a1[] =
|
||||
{
|
||||
0x82, 0xad, 0xcd, 0x63, 0x8d, 0x3f, 0xa9, 0xd9,
|
||||
0xf3, 0xe8, 0x41, 0x00, 0xd6, 0x1e, 0x07, 0x77
|
||||
};
|
||||
|
||||
const byte t[] =
|
||||
const byte t1[] =
|
||||
{
|
||||
0x88, 0xdb, 0x9d, 0x62, 0x17, 0x2e, 0xd0, 0x43,
|
||||
0xaa, 0x10, 0xf1, 0x6d, 0x22, 0x7d, 0xc4, 0x1b
|
||||
};
|
||||
|
||||
byte t2[sizeof(t)];
|
||||
const byte k2[] =
|
||||
{
|
||||
0x40, 0xf7, 0xec, 0xb2, 0x52, 0x6d, 0xaa, 0xd4,
|
||||
0x74, 0x25, 0x1d, 0xf4, 0x88, 0x9e, 0xf6, 0x5b
|
||||
};
|
||||
const byte iv2[] =
|
||||
{
|
||||
0xee, 0x9c, 0x6e, 0x06, 0x15, 0x45, 0x45, 0x03,
|
||||
0x1a, 0x60, 0x24, 0xa7
|
||||
};
|
||||
const byte a2[] =
|
||||
{
|
||||
0x94, 0x81, 0x2c, 0x87, 0x07, 0x4e, 0x15, 0x18,
|
||||
0x34, 0xb8, 0x35, 0xaf, 0x1c, 0xa5, 0x7e, 0x56
|
||||
};
|
||||
const byte t2[] =
|
||||
{
|
||||
0xc6, 0x81, 0x79, 0x8e, 0x3d, 0xda, 0xb0, 0x9f,
|
||||
0x8d, 0x83, 0xb0, 0xbb, 0x14, 0xb6, 0x91
|
||||
};
|
||||
|
||||
memset(t2, 0, sizeof(t2));
|
||||
const byte k3[] =
|
||||
{
|
||||
0xb8, 0xe4, 0x9a, 0x5e, 0x37, 0xf9, 0x98, 0x2b,
|
||||
0xb9, 0x6d, 0xd0, 0xc9, 0xb6, 0xab, 0x26, 0xac
|
||||
};
|
||||
const byte iv3[] =
|
||||
{
|
||||
0xe4, 0x4a, 0x42, 0x18, 0x8c, 0xae, 0x94, 0x92,
|
||||
0x6a, 0x9c, 0x26, 0xb0
|
||||
};
|
||||
const byte a3[] =
|
||||
{
|
||||
0x9d, 0xb9, 0x61, 0x68, 0xa6, 0x76, 0x7a, 0x31,
|
||||
0xf8, 0x29, 0xe4, 0x72, 0x61, 0x68, 0x3f, 0x8a
|
||||
};
|
||||
const byte t3[] =
|
||||
{
|
||||
0x23, 0xe2, 0x9f, 0x66, 0xe4, 0xc6, 0x52, 0x48
|
||||
};
|
||||
|
||||
GmacSetKey(&gmac, k, sizeof(k));
|
||||
GmacUpdate(&gmac, iv, sizeof(iv), a, sizeof(a), t2, sizeof(t2));
|
||||
byte tag[16];
|
||||
|
||||
if (memcmp(t, t2, sizeof(t2)) != 0)
|
||||
memset(tag, 0, sizeof(tag));
|
||||
GmacSetKey(&gmac, k1, sizeof(k1));
|
||||
GmacUpdate(&gmac, iv1, sizeof(iv1), a1, sizeof(a1), tag, sizeof(t1));
|
||||
if (memcmp(t1, tag, sizeof(t1)) != 0)
|
||||
return -126;
|
||||
|
||||
memset(tag, 0, sizeof(tag));
|
||||
GmacSetKey(&gmac, k2, sizeof(k2));
|
||||
GmacUpdate(&gmac, iv2, sizeof(iv2), a2, sizeof(a2), tag, sizeof(t2));
|
||||
if (memcmp(t2, tag, sizeof(t2)) != 0)
|
||||
return -127;
|
||||
|
||||
memset(tag, 0, sizeof(tag));
|
||||
GmacSetKey(&gmac, k3, sizeof(k3));
|
||||
GmacUpdate(&gmac, iv3, sizeof(iv3), a3, sizeof(a3), tag, sizeof(t3));
|
||||
if (memcmp(t3, tag, sizeof(t3)) != 0)
|
||||
return -128;
|
||||
|
||||
return 0;
|
||||
}
|
||||
#endif /* HAVE_AESGCM */
|
||||
|
Reference in New Issue
Block a user