onetimeauth.c revision 1.1 1 1.1 riastrad
2 1.1 riastrad #define TEST_NAME "onetimeauth"
3 1.1 riastrad #include "cmptest.h"
4 1.1 riastrad
5 1.1 riastrad static unsigned char rs[32] = {
6 1.1 riastrad 0xee, 0xa6, 0xa7, 0x25, 0x1c, 0x1e, 0x72, 0x91, 0x6d, 0x11, 0xc2,
7 1.1 riastrad 0xcb, 0x21, 0x4d, 0x3c, 0x25, 0x25, 0x39, 0x12, 0x1d, 0x8e, 0x23,
8 1.1 riastrad 0x4e, 0x65, 0x2d, 0x65, 0x1f, 0xa4, 0xc8, 0xcf, 0xf8, 0x80
9 1.1 riastrad };
10 1.1 riastrad
11 1.1 riastrad static unsigned char c[131] = {
12 1.1 riastrad 0x8e, 0x99, 0x3b, 0x9f, 0x48, 0x68, 0x12, 0x73, 0xc2, 0x96, 0x50, 0xba,
13 1.1 riastrad 0x32, 0xfc, 0x76, 0xce, 0x48, 0x33, 0x2e, 0xa7, 0x16, 0x4d, 0x96, 0xa4,
14 1.1 riastrad 0x47, 0x6f, 0xb8, 0xc5, 0x31, 0xa1, 0x18, 0x6a, 0xc0, 0xdf, 0xc1, 0x7c,
15 1.1 riastrad 0x98, 0xdc, 0xe8, 0x7b, 0x4d, 0xa7, 0xf0, 0x11, 0xec, 0x48, 0xc9, 0x72,
16 1.1 riastrad 0x71, 0xd2, 0xc2, 0x0f, 0x9b, 0x92, 0x8f, 0xe2, 0x27, 0x0d, 0x6f, 0xb8,
17 1.1 riastrad 0x63, 0xd5, 0x17, 0x38, 0xb4, 0x8e, 0xee, 0xe3, 0x14, 0xa7, 0xcc, 0x8a,
18 1.1 riastrad 0xb9, 0x32, 0x16, 0x45, 0x48, 0xe5, 0x26, 0xae, 0x90, 0x22, 0x43, 0x68,
19 1.1 riastrad 0x51, 0x7a, 0xcf, 0xea, 0xbd, 0x6b, 0xb3, 0x73, 0x2b, 0xc0, 0xe9, 0xda,
20 1.1 riastrad 0x99, 0x83, 0x2b, 0x61, 0xca, 0x01, 0xb6, 0xde, 0x56, 0x24, 0x4a, 0x9e,
21 1.1 riastrad 0x88, 0xd5, 0xf9, 0xb3, 0x79, 0x73, 0xf6, 0x22, 0xa4, 0x3d, 0x14, 0xa6,
22 1.1 riastrad 0x59, 0x9b, 0x1f, 0x65, 0x4c, 0xb4, 0x5a, 0x74, 0xe3, 0x55, 0xa5
23 1.1 riastrad };
24 1.1 riastrad
25 1.1 riastrad static unsigned char a[16];
26 1.1 riastrad
27 1.1 riastrad int
28 1.1 riastrad main(void)
29 1.1 riastrad {
30 1.1 riastrad crypto_onetimeauth_state st;
31 1.1 riastrad int i;
32 1.1 riastrad
33 1.1 riastrad assert(crypto_onetimeauth_statebytes() == sizeof st);
34 1.1 riastrad crypto_onetimeauth(a, c, 131, rs);
35 1.1 riastrad for (i = 0; i < 16; ++i) {
36 1.1 riastrad printf(",0x%02x", (unsigned int) a[i]);
37 1.1 riastrad if (i % 8 == 7)
38 1.1 riastrad printf("\n");
39 1.1 riastrad }
40 1.1 riastrad
41 1.1 riastrad memset(a, 0, sizeof a);
42 1.1 riastrad crypto_onetimeauth_init(&st, rs);
43 1.1 riastrad crypto_onetimeauth_update(&st, c, 100);
44 1.1 riastrad crypto_onetimeauth_update(&st, c, 0);
45 1.1 riastrad crypto_onetimeauth_update(&st, c + 100, 31);
46 1.1 riastrad crypto_onetimeauth_final(&st, a);
47 1.1 riastrad for (i = 0; i < 16; ++i) {
48 1.1 riastrad printf(",0x%02x", (unsigned int) a[i]);
49 1.1 riastrad if (i % 8 == 7)
50 1.1 riastrad printf("\n");
51 1.1 riastrad }
52 1.1 riastrad
53 1.1 riastrad assert(crypto_onetimeauth_bytes() > 0U);
54 1.1 riastrad assert(crypto_onetimeauth_keybytes() > 0U);
55 1.1 riastrad assert(strcmp(crypto_onetimeauth_primitive(), "poly1305") == 0);
56 1.1 riastrad assert(crypto_onetimeauth_poly1305_bytes() == crypto_onetimeauth_bytes());
57 1.1 riastrad assert(crypto_onetimeauth_poly1305_keybytes() ==
58 1.1 riastrad crypto_onetimeauth_keybytes());
59 1.1 riastrad assert(crypto_onetimeauth_statebytes() > 0);
60 1.1 riastrad assert(crypto_onetimeauth_statebytes() == crypto_onetimeauth_poly1305_statebytes());
61 1.1 riastrad
62 1.1 riastrad return 0;
63 1.1 riastrad }
64