Nie możesz wybrać więcej, niż 25 tematów Tematy muszą się zaczynać od litery lub cyfry, mogą zawierać myślniki ('-') i mogą mieć do 35 znaków.

address.h 1.5 KiB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. #ifndef SPX_ADDRESS_H
  2. #define SPX_ADDRESS_H
  3. #include <stdint.h>
  4. #define SPX_ADDR_TYPE_WOTS 0
  5. #define SPX_ADDR_TYPE_WOTSPK 1
  6. #define SPX_ADDR_TYPE_HASHTREE 2
  7. #define SPX_ADDR_TYPE_FORSTREE 3
  8. #define SPX_ADDR_TYPE_FORSPK 4
  9. void PQCLEAN_SPHINCSSHA256128FROBUST_CLEAN_addr_to_bytes(
  10. unsigned char *bytes, const uint32_t addr[8]);
  11. void PQCLEAN_SPHINCSSHA256128FROBUST_CLEAN_set_layer_addr(
  12. uint32_t addr[8], uint32_t layer);
  13. void PQCLEAN_SPHINCSSHA256128FROBUST_CLEAN_set_tree_addr(
  14. uint32_t addr[8], uint64_t tree);
  15. void PQCLEAN_SPHINCSSHA256128FROBUST_CLEAN_set_type(
  16. uint32_t addr[8], uint32_t type);
  17. /* Copies the layer and tree part of one address into the other */
  18. void PQCLEAN_SPHINCSSHA256128FROBUST_CLEAN_copy_subtree_addr(
  19. uint32_t out[8], const uint32_t in[8]);
  20. /* These functions are used for WOTS and FORS addresses. */
  21. void PQCLEAN_SPHINCSSHA256128FROBUST_CLEAN_set_keypair_addr(
  22. uint32_t addr[8], uint32_t keypair);
  23. void PQCLEAN_SPHINCSSHA256128FROBUST_CLEAN_set_chain_addr(
  24. uint32_t addr[8], uint32_t chain);
  25. void PQCLEAN_SPHINCSSHA256128FROBUST_CLEAN_set_hash_addr(
  26. uint32_t addr[8], uint32_t hash);
  27. void PQCLEAN_SPHINCSSHA256128FROBUST_CLEAN_copy_keypair_addr(
  28. uint32_t out[8], const uint32_t in[8]);
  29. /* These functions are used for all hash tree addresses (including FORS). */
  30. void PQCLEAN_SPHINCSSHA256128FROBUST_CLEAN_set_tree_height(
  31. uint32_t addr[8], uint32_t tree_height);
  32. void PQCLEAN_SPHINCSSHA256128FROBUST_CLEAN_set_tree_index(
  33. uint32_t addr[8], uint32_t tree_index);
  34. #endif