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