You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

54 line
1.1 KiB

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