Home | History | Annotate | Line # | Download | only in default
      1  1.1  riastrad 
      2  1.1  riastrad #define TEST_NAME "box2"
      3  1.1  riastrad #include "cmptest.h"
      4  1.1  riastrad 
      5  1.1  riastrad static unsigned char bobsk[32] = { 0x5d, 0xab, 0x08, 0x7e, 0x62, 0x4a, 0x8a,
      6  1.1  riastrad                                    0x4b, 0x79, 0xe1, 0x7f, 0x8b, 0x83, 0x80,
      7  1.1  riastrad                                    0x0e, 0xe6, 0x6f, 0x3b, 0xb1, 0x29, 0x26,
      8  1.1  riastrad                                    0x18, 0xb6, 0xfd, 0x1c, 0x2f, 0x8b, 0x27,
      9  1.1  riastrad                                    0xff, 0x88, 0xe0, 0xeb };
     10  1.1  riastrad 
     11  1.1  riastrad static unsigned char alicepk[32] = { 0x85, 0x20, 0xf0, 0x09, 0x89, 0x30, 0xa7,
     12  1.1  riastrad                                      0x54, 0x74, 0x8b, 0x7d, 0xdc, 0xb4, 0x3e,
     13  1.1  riastrad                                      0xf7, 0x5a, 0x0d, 0xbf, 0x3a, 0x0d, 0x26,
     14  1.1  riastrad                                      0x38, 0x1a, 0xf4, 0xeb, 0xa4, 0xa9, 0x8e,
     15  1.1  riastrad                                      0xaa, 0x9b, 0x4e, 0x6a };
     16  1.1  riastrad 
     17  1.1  riastrad static const unsigned char small_order_p[crypto_box_PUBLICKEYBYTES] = {
     18  1.1  riastrad     0xe0, 0xeb, 0x7a, 0x7c, 0x3b, 0x41, 0xb8, 0xae, 0x16, 0x56, 0xe3,
     19  1.1  riastrad     0xfa, 0xf1, 0x9f, 0xc4, 0x6a, 0xda, 0x09, 0x8d, 0xeb, 0x9c, 0x32,
     20  1.1  riastrad     0xb1, 0xfd, 0x86, 0x62, 0x05, 0x16, 0x5f, 0x49, 0xb8, 0x00
     21  1.1  riastrad };
     22  1.1  riastrad 
     23  1.1  riastrad static unsigned char nonce[24] = { 0x69, 0x69, 0x6e, 0xe9, 0x55, 0xb6,
     24  1.1  riastrad                                    0x2b, 0x73, 0xcd, 0x62, 0xbd, 0xa8,
     25  1.1  riastrad                                    0x75, 0xfc, 0x73, 0xd6, 0x82, 0x19,
     26  1.1  riastrad                                    0xe0, 0x03, 0x6b, 0x7a, 0x0b, 0x37 };
     27  1.1  riastrad 
     28  1.1  riastrad /* API requires first 16 bytes to be 0 */
     29  1.1  riastrad static unsigned char c[163] = {
     30  1.1  riastrad     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
     31  1.1  riastrad     0,    0,    0,    0,    0xf3, 0xff, 0xc7, 0x70, 0x3f, 0x94, 0x00, 0xe5,
     32  1.1  riastrad     0x2a, 0x7d, 0xfb, 0x4b, 0x3d, 0x33, 0x05, 0xd9, 0x8e, 0x99, 0x3b, 0x9f,
     33  1.1  riastrad     0x48, 0x68, 0x12, 0x73, 0xc2, 0x96, 0x50, 0xba, 0x32, 0xfc, 0x76, 0xce,
     34  1.1  riastrad     0x48, 0x33, 0x2e, 0xa7, 0x16, 0x4d, 0x96, 0xa4, 0x47, 0x6f, 0xb8, 0xc5,
     35  1.1  riastrad     0x31, 0xa1, 0x18, 0x6a, 0xc0, 0xdf, 0xc1, 0x7c, 0x98, 0xdc, 0xe8, 0x7b,
     36  1.1  riastrad     0x4d, 0xa7, 0xf0, 0x11, 0xec, 0x48, 0xc9, 0x72, 0x71, 0xd2, 0xc2, 0x0f,
     37  1.1  riastrad     0x9b, 0x92, 0x8f, 0xe2, 0x27, 0x0d, 0x6f, 0xb8, 0x63, 0xd5, 0x17, 0x38,
     38  1.1  riastrad     0xb4, 0x8e, 0xee, 0xe3, 0x14, 0xa7, 0xcc, 0x8a, 0xb9, 0x32, 0x16, 0x45,
     39  1.1  riastrad     0x48, 0xe5, 0x26, 0xae, 0x90, 0x22, 0x43, 0x68, 0x51, 0x7a, 0xcf, 0xea,
     40  1.1  riastrad     0xbd, 0x6b, 0xb3, 0x73, 0x2b, 0xc0, 0xe9, 0xda, 0x99, 0x83, 0x2b, 0x61,
     41  1.1  riastrad     0xca, 0x01, 0xb6, 0xde, 0x56, 0x24, 0x4a, 0x9e, 0x88, 0xd5, 0xf9, 0xb3,
     42  1.1  riastrad     0x79, 0x73, 0xf6, 0x22, 0xa4, 0x3d, 0x14, 0xa6, 0x59, 0x9b, 0x1f, 0x65,
     43  1.1  riastrad     0x4c, 0xb4, 0x5a, 0x74, 0xe3, 0x55, 0xa5
     44  1.1  riastrad };
     45  1.1  riastrad 
     46  1.1  riastrad static unsigned char m[163];
     47  1.1  riastrad 
     48  1.1  riastrad int
     49  1.1  riastrad main(void)
     50  1.1  riastrad {
     51  1.1  riastrad     unsigned char k[crypto_box_BEFORENMBYTES];
     52  1.1  riastrad     int           i;
     53  1.1  riastrad     int           ret;
     54  1.1  riastrad 
     55  1.1  riastrad     if (crypto_box_open(m, c, 163, nonce, alicepk, bobsk) == 0) {
     56  1.1  riastrad         for (i = 32; i < 163; ++i) {
     57  1.1  riastrad             printf(",0x%02x", (unsigned int) m[i]);
     58  1.1  riastrad             if (i % 8 == 7)
     59  1.1  riastrad                 printf("\n");
     60  1.1  riastrad         }
     61  1.1  riastrad         printf("\n");
     62  1.1  riastrad     }
     63  1.1  riastrad     ret = crypto_box_open(m, c, 163, nonce, small_order_p, bobsk);
     64  1.1  riastrad     assert(ret == -1);
     65  1.1  riastrad 
     66  1.1  riastrad     memset(m, 0, sizeof m);
     67  1.1  riastrad     ret = crypto_box_beforenm(k, small_order_p, bobsk);
     68  1.1  riastrad     assert(ret == -1);
     69  1.1  riastrad     ret = crypto_box_beforenm(k, alicepk, bobsk);
     70  1.1  riastrad     assert(ret == 0);
     71  1.1  riastrad     if (crypto_box_open_afternm(m, c, 163, nonce, k) == 0) {
     72  1.1  riastrad         for (i = 32; i < 163; ++i) {
     73  1.1  riastrad             printf(",0x%02x", (unsigned int) m[i]);
     74  1.1  riastrad             if (i % 8 == 7)
     75  1.1  riastrad                 printf("\n");
     76  1.1  riastrad         }
     77  1.1  riastrad         printf("\n");
     78  1.1  riastrad     }
     79  1.1  riastrad     return 0;
     80  1.1  riastrad }
     81