secretbox5.cpp 819 B

1234567891011121314151617181920212223242526272829
  1. #include <string>
  2. using std::string;
  3. #include <stdio.h>
  4. #include "crypto_secretbox.h"
  5. #include "randombytes.h"
  6. main()
  7. {
  8. int mlen;
  9. for (mlen = 0;mlen < 1000;++mlen) {
  10. unsigned char kbytes[crypto_secretbox_KEYBYTES];
  11. randombytes(kbytes,crypto_secretbox_KEYBYTES);
  12. string k((char *) kbytes,crypto_secretbox_KEYBYTES);
  13. unsigned char nbytes[crypto_secretbox_NONCEBYTES];
  14. randombytes(nbytes,crypto_secretbox_NONCEBYTES);
  15. string n((char *) nbytes,crypto_secretbox_NONCEBYTES);
  16. unsigned char mbytes[mlen];
  17. randombytes(mbytes,mlen);
  18. string m((char *) mbytes,mlen);
  19. string c = crypto_secretbox(m,n,k);
  20. try {
  21. string m2 = crypto_secretbox_open(c,n,k);
  22. if (m != m2) printf("bad decryption\n");
  23. } catch(const char *s) {
  24. printf("%s\n",s);
  25. }
  26. }
  27. return 0;
  28. }