stream8.cpp 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. #include <string>
  2. using std::string;
  3. #include <stdio.h>
  4. #include "crypto_stream_xsalsa20.h"
  5. char firstkey_bytes[32] = {
  6. 0x1b,0x27,0x55,0x64,0x73,0xe9,0x85,0xd4
  7. ,0x62,0xcd,0x51,0x19,0x7a,0x9a,0x46,0xc7
  8. ,0x60,0x09,0x54,0x9e,0xac,0x64,0x74,0xf2
  9. ,0x06,0xc4,0xee,0x08,0x44,0xf6,0x83,0x89
  10. } ;
  11. char nonce_bytes[24] = {
  12. 0x69,0x69,0x6e,0xe9,0x55,0xb6,0x2b,0x73
  13. ,0xcd,0x62,0xbd,0xa8,0x75,0xfc,0x73,0xd6
  14. ,0x82,0x19,0xe0,0x03,0x6b,0x7a,0x0b,0x37
  15. } ;
  16. char m_bytes[163] = {
  17. 0, 0, 0, 0, 0, 0, 0, 0
  18. , 0, 0, 0, 0, 0, 0, 0, 0
  19. , 0, 0, 0, 0, 0, 0, 0, 0
  20. , 0, 0, 0, 0, 0, 0, 0, 0
  21. ,0xbe,0x07,0x5f,0xc5,0x3c,0x81,0xf2,0xd5
  22. ,0xcf,0x14,0x13,0x16,0xeb,0xeb,0x0c,0x7b
  23. ,0x52,0x28,0xc5,0x2a,0x4c,0x62,0xcb,0xd4
  24. ,0x4b,0x66,0x84,0x9b,0x64,0x24,0x4f,0xfc
  25. ,0xe5,0xec,0xba,0xaf,0x33,0xbd,0x75,0x1a
  26. ,0x1a,0xc7,0x28,0xd4,0x5e,0x6c,0x61,0x29
  27. ,0x6c,0xdc,0x3c,0x01,0x23,0x35,0x61,0xf4
  28. ,0x1d,0xb6,0x6c,0xce,0x31,0x4a,0xdb,0x31
  29. ,0x0e,0x3b,0xe8,0x25,0x0c,0x46,0xf0,0x6d
  30. ,0xce,0xea,0x3a,0x7f,0xa1,0x34,0x80,0x57
  31. ,0xe2,0xf6,0x55,0x6a,0xd6,0xb1,0x31,0x8a
  32. ,0x02,0x4a,0x83,0x8f,0x21,0xaf,0x1f,0xde
  33. ,0x04,0x89,0x77,0xeb,0x48,0xf5,0x9f,0xfd
  34. ,0x49,0x24,0xca,0x1c,0x60,0x90,0x2e,0x52
  35. ,0xf0,0xa0,0x89,0xbc,0x76,0x89,0x70,0x40
  36. ,0xe0,0x82,0xf9,0x37,0x76,0x38,0x48,0x64
  37. ,0x5e,0x07,0x05
  38. } ;
  39. main()
  40. {
  41. int i;
  42. string firstkey(firstkey_bytes,sizeof firstkey_bytes);
  43. string nonce(nonce_bytes,sizeof nonce_bytes);
  44. string m(m_bytes,sizeof m_bytes);
  45. string c = crypto_stream_xsalsa20_xor(m,nonce,firstkey);
  46. for (i = 32;i < c.size();++i) {
  47. printf(",0x%02x",(unsigned int) (unsigned char) c[i]);
  48. if (i % 8 == 7) printf("\n");
  49. }
  50. printf("\n");
  51. return 0;
  52. }