secretbox2.c 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. #include <stdio.h>
  2. #include "crypto_secretbox_xsalsa20poly1305.h"
  3. unsigned char firstkey[32] = {
  4. 0x1b,0x27,0x55,0x64,0x73,0xe9,0x85,0xd4
  5. ,0x62,0xcd,0x51,0x19,0x7a,0x9a,0x46,0xc7
  6. ,0x60,0x09,0x54,0x9e,0xac,0x64,0x74,0xf2
  7. ,0x06,0xc4,0xee,0x08,0x44,0xf6,0x83,0x89
  8. } ;
  9. unsigned char nonce[24] = {
  10. 0x69,0x69,0x6e,0xe9,0x55,0xb6,0x2b,0x73
  11. ,0xcd,0x62,0xbd,0xa8,0x75,0xfc,0x73,0xd6
  12. ,0x82,0x19,0xe0,0x03,0x6b,0x7a,0x0b,0x37
  13. } ;
  14. // API requires first 16 bytes to be 0
  15. unsigned char c[163] = {
  16. 0, 0, 0, 0, 0, 0, 0, 0
  17. , 0, 0, 0, 0, 0, 0, 0, 0
  18. ,0xf3,0xff,0xc7,0x70,0x3f,0x94,0x00,0xe5
  19. ,0x2a,0x7d,0xfb,0x4b,0x3d,0x33,0x05,0xd9
  20. ,0x8e,0x99,0x3b,0x9f,0x48,0x68,0x12,0x73
  21. ,0xc2,0x96,0x50,0xba,0x32,0xfc,0x76,0xce
  22. ,0x48,0x33,0x2e,0xa7,0x16,0x4d,0x96,0xa4
  23. ,0x47,0x6f,0xb8,0xc5,0x31,0xa1,0x18,0x6a
  24. ,0xc0,0xdf,0xc1,0x7c,0x98,0xdc,0xe8,0x7b
  25. ,0x4d,0xa7,0xf0,0x11,0xec,0x48,0xc9,0x72
  26. ,0x71,0xd2,0xc2,0x0f,0x9b,0x92,0x8f,0xe2
  27. ,0x27,0x0d,0x6f,0xb8,0x63,0xd5,0x17,0x38
  28. ,0xb4,0x8e,0xee,0xe3,0x14,0xa7,0xcc,0x8a
  29. ,0xb9,0x32,0x16,0x45,0x48,0xe5,0x26,0xae
  30. ,0x90,0x22,0x43,0x68,0x51,0x7a,0xcf,0xea
  31. ,0xbd,0x6b,0xb3,0x73,0x2b,0xc0,0xe9,0xda
  32. ,0x99,0x83,0x2b,0x61,0xca,0x01,0xb6,0xde
  33. ,0x56,0x24,0x4a,0x9e,0x88,0xd5,0xf9,0xb3
  34. ,0x79,0x73,0xf6,0x22,0xa4,0x3d,0x14,0xa6
  35. ,0x59,0x9b,0x1f,0x65,0x4c,0xb4,0x5a,0x74
  36. ,0xe3,0x55,0xa5
  37. } ;
  38. unsigned char m[163];
  39. int main()
  40. {
  41. int i;
  42. if (crypto_secretbox_xsalsa20poly1305_open(
  43. m,c,163,nonce,firstkey
  44. ) == 0) {
  45. for (i = 32;i < 163;++i) {
  46. printf(",0x%02x",(unsigned int) m[i]);
  47. if (i % 8 == 7) printf("\n");
  48. }
  49. printf("\n");
  50. }
  51. return 0;
  52. }