quickjs-tart

quickjs-based runtime for wallet-core logic
Log | Files | Refs | README | LICENSE

core6.c (1342B)


      1 
      2 #define TEST_NAME "core6"
      3 #include "cmptest.h"
      4 
      5 static unsigned char k[32] = { 0xee, 0x30, 0x4f, 0xca, 0x27, 0x00, 0x8d, 0x8c,
      6                                0x12, 0x6f, 0x90, 0x02, 0x79, 0x01, 0xd8, 0x0f,
      7                                0x7f, 0x1d, 0x8b, 0x8d, 0xc9, 0x36, 0xcf, 0x3b,
      8                                0x9f, 0x81, 0x96, 0x92, 0x82, 0x7e, 0x57, 0x77 };
      9 
     10 static unsigned char in[16] = {
     11     0x81, 0x91, 0x8e, 0xf2, 0xa5, 0xe0, 0xda, 0x9b,
     12     0x3e, 0x90, 0x60, 0x52, 0x1e, 0x4b, 0xb3, 0x52
     13 };
     14 
     15 static unsigned char c[16] = { 101, 120, 112, 97,  110, 100, 32, 51,
     16                                50,  45,  98,  121, 116, 101, 32, 107 };
     17 
     18 static unsigned char out[64];
     19 
     20 static void
     21 print(unsigned char *x, unsigned char *y)
     22 {
     23     int          i;
     24     unsigned int borrow = 0;
     25 
     26     for (i = 0; i < 4; ++i) {
     27         unsigned int xi = x[i];
     28         unsigned int yi = y[i];
     29         printf(",0x%02x", 255 & (xi - yi - borrow));
     30         borrow = (xi < yi + borrow);
     31     }
     32 }
     33 
     34 int
     35 main(void)
     36 {
     37     crypto_core_salsa20(out, in, k, c);
     38     print(out, c);
     39     print(out + 20, c + 4);
     40     printf("\n");
     41     print(out + 40, c + 8);
     42     print(out + 60, c + 12);
     43     printf("\n");
     44     print(out + 24, in);
     45     print(out + 28, in + 4);
     46     printf("\n");
     47     print(out + 32, in + 8);
     48     print(out + 36, in + 12);
     49     printf("\n");
     50 
     51     return 0;
     52 }