Nelze vybrat více než 25 témat Téma musí začínat písmenem nebo číslem, může obsahovat pomlčky („-“) a může být dlouhé až 35 znaků.

60 řádky
1.2 KiB

  1. /*
  2. hash_address.c version 20160722
  3. Andreas Hülsing
  4. Joost Rijneveld
  5. Public domain.
  6. */
  7. #include <stdint.h>
  8. void set_layer_addr(uint32_t addr[8], uint32_t layer) {
  9. addr[0] = layer;
  10. }
  11. void set_tree_addr(uint32_t addr[8], uint64_t tree) {
  12. addr[1] = (uint32_t) (tree >> 32);
  13. addr[2] = (uint32_t) tree;
  14. }
  15. void set_type(uint32_t addr[8], uint32_t type) {
  16. int i;
  17. addr[3] = type;
  18. for (i = 4; i < 8; i++) {
  19. addr[i] = 0;
  20. }
  21. }
  22. void set_key_and_mask(uint32_t addr[8], uint32_t key_and_mask) {
  23. addr[7] = key_and_mask;
  24. }
  25. /* These functions are used for OTS addresses. */
  26. void set_ots_addr(uint32_t addr[8], uint32_t ots) {
  27. addr[4] = ots;
  28. }
  29. void set_chain_addr(uint32_t addr[8], uint32_t chain) {
  30. addr[5] = chain;
  31. }
  32. void set_hash_addr(uint32_t addr[8], uint32_t hash) {
  33. addr[6] = hash;
  34. }
  35. /* This function is used for L-trees. */
  36. void set_ltree_addr(uint32_t addr[8], uint32_t ltree) {
  37. addr[4] = ltree;
  38. }
  39. /* These functions are used for hash tree addresses. */
  40. void set_tree_height(uint32_t addr[8], uint32_t treeHeight) {
  41. addr[5] = treeHeight;
  42. }
  43. void set_tree_index(uint32_t addr[8], uint32_t treeIndex) {
  44. addr[6] = treeIndex;
  45. }