1 1.1 riastrad 2 1.1 riastrad #define TEST_NAME "secretbox" 3 1.1 riastrad #include "cmptest.h" 4 1.1 riastrad 5 1.1 riastrad static unsigned char firstkey[32] = { 0x1b, 0x27, 0x55, 0x64, 0x73, 0xe9, 0x85, 6 1.1 riastrad 0xd4, 0x62, 0xcd, 0x51, 0x19, 0x7a, 0x9a, 7 1.1 riastrad 0x46, 0xc7, 0x60, 0x09, 0x54, 0x9e, 0xac, 8 1.1 riastrad 0x64, 0x74, 0xf2, 0x06, 0xc4, 0xee, 0x08, 9 1.1 riastrad 0x44, 0xf6, 0x83, 0x89 }; 10 1.1 riastrad 11 1.1 riastrad static unsigned char nonce[24] = { 0x69, 0x69, 0x6e, 0xe9, 0x55, 0xb6, 12 1.1 riastrad 0x2b, 0x73, 0xcd, 0x62, 0xbd, 0xa8, 13 1.1 riastrad 0x75, 0xfc, 0x73, 0xd6, 0x82, 0x19, 14 1.1 riastrad 0xe0, 0x03, 0x6b, 0x7a, 0x0b, 0x37 }; 15 1.1 riastrad 16 1.1 riastrad /* API requires first 32 bytes to be 0 */ 17 1.1 riastrad static unsigned char m[163] = { 18 1.1 riastrad 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19 1.1 riastrad 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20 1.1 riastrad 0, 0, 0, 0, 0, 0, 0, 0, 0xbe, 0x07, 0x5f, 0xc5, 21 1.1 riastrad 0x3c, 0x81, 0xf2, 0xd5, 0xcf, 0x14, 0x13, 0x16, 0xeb, 0xeb, 0x0c, 0x7b, 22 1.1 riastrad 0x52, 0x28, 0xc5, 0x2a, 0x4c, 0x62, 0xcb, 0xd4, 0x4b, 0x66, 0x84, 0x9b, 23 1.1 riastrad 0x64, 0x24, 0x4f, 0xfc, 0xe5, 0xec, 0xba, 0xaf, 0x33, 0xbd, 0x75, 0x1a, 24 1.1 riastrad 0x1a, 0xc7, 0x28, 0xd4, 0x5e, 0x6c, 0x61, 0x29, 0x6c, 0xdc, 0x3c, 0x01, 25 1.1 riastrad 0x23, 0x35, 0x61, 0xf4, 0x1d, 0xb6, 0x6c, 0xce, 0x31, 0x4a, 0xdb, 0x31, 26 1.1 riastrad 0x0e, 0x3b, 0xe8, 0x25, 0x0c, 0x46, 0xf0, 0x6d, 0xce, 0xea, 0x3a, 0x7f, 27 1.1 riastrad 0xa1, 0x34, 0x80, 0x57, 0xe2, 0xf6, 0x55, 0x6a, 0xd6, 0xb1, 0x31, 0x8a, 28 1.1 riastrad 0x02, 0x4a, 0x83, 0x8f, 0x21, 0xaf, 0x1f, 0xde, 0x04, 0x89, 0x77, 0xeb, 29 1.1 riastrad 0x48, 0xf5, 0x9f, 0xfd, 0x49, 0x24, 0xca, 0x1c, 0x60, 0x90, 0x2e, 0x52, 30 1.1 riastrad 0xf0, 0xa0, 0x89, 0xbc, 0x76, 0x89, 0x70, 0x40, 0xe0, 0x82, 0xf9, 0x37, 31 1.1 riastrad 0x76, 0x38, 0x48, 0x64, 0x5e, 0x07, 0x05 32 1.1 riastrad }; 33 1.1 riastrad 34 1.1 riastrad static unsigned char c[163]; 35 1.1 riastrad 36 1.1 riastrad int 37 1.1 riastrad main(void) 38 1.1 riastrad { 39 1.1 riastrad int i; 40 1.1 riastrad 41 1.1 riastrad crypto_secretbox(c, m, 163, nonce, firstkey); 42 1.1 riastrad for (i = 16; i < 163; ++i) { 43 1.1 riastrad printf(",0x%02x", (unsigned int) c[i]); 44 1.1 riastrad if (i % 8 == 7) 45 1.1 riastrad printf("\n"); 46 1.1 riastrad } 47 1.1 riastrad printf("\n"); 48 1.1 riastrad 49 1.1 riastrad memcpy(c, m, 163); 50 1.1 riastrad crypto_secretbox(c, c, 163, nonce, firstkey); 51 1.1 riastrad for (i = 16; i < 163; ++i) { 52 1.1 riastrad printf(",0x%02x", (unsigned int) c[i]); 53 1.1 riastrad if (i % 8 == 7) 54 1.1 riastrad printf("\n"); 55 1.1 riastrad } 56 1.1 riastrad printf("\n"); 57 1.1 riastrad 58 1.1 riastrad assert(crypto_secretbox(c, c, 31, nonce, firstkey) == -1); 59 1.1 riastrad assert(crypto_secretbox(c, c, 12, nonce, firstkey) == -1); 60 1.1 riastrad assert(crypto_secretbox(c, c, 1, nonce, firstkey) == -1); 61 1.1 riastrad assert(crypto_secretbox(c, c, 0, nonce, firstkey) == -1); 62 1.1 riastrad 63 1.1 riastrad assert(crypto_secretbox_keybytes() > 0U); 64 1.1 riastrad assert(crypto_secretbox_noncebytes() > 0U); 65 1.1 riastrad assert(crypto_secretbox_zerobytes() > 0U); 66 1.1 riastrad assert(crypto_secretbox_boxzerobytes() > 0U); 67 1.1 riastrad assert(crypto_secretbox_macbytes() > 0U); 68 1.1 riastrad assert(crypto_secretbox_messagebytes_max() > 0U); 69 1.1 riastrad assert(strcmp(crypto_secretbox_primitive(), "xsalsa20poly1305") == 0); 70 1.1 riastrad assert(crypto_secretbox_keybytes() == 71 1.1 riastrad crypto_secretbox_xsalsa20poly1305_keybytes()); 72 1.1 riastrad assert(crypto_secretbox_noncebytes() == 73 1.1 riastrad crypto_secretbox_xsalsa20poly1305_noncebytes()); 74 1.1 riastrad assert(crypto_secretbox_zerobytes() == 75 1.1 riastrad crypto_secretbox_xsalsa20poly1305_zerobytes()); 76 1.1 riastrad assert(crypto_secretbox_boxzerobytes() == 77 1.1 riastrad crypto_secretbox_xsalsa20poly1305_boxzerobytes()); 78 1.1 riastrad assert(crypto_secretbox_macbytes() == 79 1.1 riastrad crypto_secretbox_xsalsa20poly1305_macbytes()); 80 1.1 riastrad assert(crypto_secretbox_messagebytes_max() == 81 1.1 riastrad crypto_secretbox_xsalsa20poly1305_messagebytes_max()); 82 1.1 riastrad 83 1.1 riastrad return 0; 84 1.1 riastrad } 85