Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

79 строки
1.9 KiB

  1. #include <stdint.h>
  2. #include "address.h"
  3. #include "params.h"
  4. #include "utils.h"
  5. void PQCLEAN_SPHINCSSHA256128FROBUST_CLEAN_addr_to_bytes(
  6. unsigned char *bytes, const uint32_t addr[8]) {
  7. int i;
  8. for (i = 0; i < 8; i++) {
  9. PQCLEAN_SPHINCSSHA256128FROBUST_CLEAN_ull_to_bytes(
  10. bytes + i * 4, 4, addr[i]);
  11. }
  12. }
  13. void PQCLEAN_SPHINCSSHA256128FROBUST_CLEAN_set_layer_addr(
  14. uint32_t addr[8], uint32_t layer) {
  15. addr[0] = layer;
  16. }
  17. void PQCLEAN_SPHINCSSHA256128FROBUST_CLEAN_set_tree_addr(
  18. uint32_t addr[8], uint64_t tree) {
  19. addr[1] = 0;
  20. addr[2] = (uint32_t) (tree >> 32);
  21. addr[3] = (uint32_t) tree;
  22. }
  23. void PQCLEAN_SPHINCSSHA256128FROBUST_CLEAN_set_type(
  24. uint32_t addr[8], uint32_t type) {
  25. addr[4] = type;
  26. }
  27. void PQCLEAN_SPHINCSSHA256128FROBUST_CLEAN_copy_subtree_addr(
  28. uint32_t out[8], const uint32_t in[8]) {
  29. out[0] = in[0];
  30. out[1] = in[1];
  31. out[2] = in[2];
  32. out[3] = in[3];
  33. }
  34. /* These functions are used for OTS addresses. */
  35. void PQCLEAN_SPHINCSSHA256128FROBUST_CLEAN_set_keypair_addr(
  36. uint32_t addr[8], uint32_t keypair) {
  37. addr[5] = keypair;
  38. }
  39. void PQCLEAN_SPHINCSSHA256128FROBUST_CLEAN_copy_keypair_addr(
  40. uint32_t out[8], const uint32_t in[8]) {
  41. out[0] = in[0];
  42. out[1] = in[1];
  43. out[2] = in[2];
  44. out[3] = in[3];
  45. out[5] = in[5];
  46. }
  47. void PQCLEAN_SPHINCSSHA256128FROBUST_CLEAN_set_chain_addr(
  48. uint32_t addr[8], uint32_t chain) {
  49. addr[6] = chain;
  50. }
  51. void PQCLEAN_SPHINCSSHA256128FROBUST_CLEAN_set_hash_addr(
  52. uint32_t addr[8], uint32_t hash) {
  53. addr[7] = hash;
  54. }
  55. /* These functions are used for all hash tree addresses (including FORS). */
  56. void PQCLEAN_SPHINCSSHA256128FROBUST_CLEAN_set_tree_height(
  57. uint32_t addr[8], uint32_t tree_height) {
  58. addr[6] = tree_height;
  59. }
  60. void PQCLEAN_SPHINCSSHA256128FROBUST_CLEAN_set_tree_index(
  61. uint32_t addr[8], uint32_t tree_index) {
  62. addr[7] = tree_index;
  63. }