Nevar pievienot vairāk kā 25 tēmas Tēmai ir jāsākas ar burtu vai ciparu, tā var saturēt domu zīmes ('-') un var būt līdz 35 simboliem gara.

58 rindas
1.2 KiB

  1. #include <stdio.h>
  2. #include <stdint.h>
  3. #include "../wots.h"
  4. #include "../randombytes.h"
  5. #include "../params.h"
  6. static void hexdump(unsigned char *a, size_t len)
  7. {
  8. size_t i;
  9. for (i = 0; i < len; i++)
  10. printf("%02x", a[i]);
  11. }
  12. int main()
  13. {
  14. xmss_params params;
  15. // TODO test more different OIDs
  16. uint32_t oid = 0x01000001;
  17. xmssmt_parse_oid(&params, oid);
  18. unsigned char seed[params.n];
  19. unsigned char pub_seed[params.n];
  20. int sig_len = params.wots_len*params.n;
  21. unsigned char pk1[sig_len];
  22. unsigned char pk2[sig_len];
  23. unsigned char sig[sig_len];
  24. uint32_t addr[8] = {1,2,3,4};
  25. unsigned char msg[params.n];
  26. int i;
  27. randombytes(seed, params.n);
  28. randombytes(pub_seed, params.n);
  29. randombytes(msg, params.n);
  30. //randombytes(addr, 16);
  31. wots_pkgen(&params, pk1, seed, pub_seed, addr);
  32. wots_sign(&params, sig, msg, seed, pub_seed, addr);
  33. wots_pk_from_sig(&params, pk2, sig, msg, pub_seed, addr);
  34. for (i = 0; i < sig_len; i++)
  35. if (pk1[i] != pk2[i]) {
  36. printf("pk1 != pk2 %d\n",i);
  37. return -1;
  38. }
  39. printf("worked great!\npk1: ");
  40. hexdump(pk1, sig_len);
  41. printf("\npk2: ");
  42. hexdump(pk2, sig_len);
  43. printf("\nsig: ");
  44. hexdump(sig, sig_len);
  45. printf("\n");
  46. return 0;
  47. }