Home | History | Annotate | Line # | Download | only in default
      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