|
- /*
- hash_address.c version 20160722
- Andreas Hülsing
- Joost Rijneveld
- Public domain.
- */
- #include <stdint.h>
-
- void setLayerADRS(uint32_t adrs[8], uint32_t layer){
- adrs[0] = layer;
- }
-
- void setTreeADRS(uint32_t adrs[8], uint64_t tree){
- adrs[1] = (uint32_t) (tree >> 32);
- adrs[2] = (uint32_t) tree;
- }
-
- void setType(uint32_t adrs[8], uint32_t type){
- adrs[3] = type;
- int i;
- for(i = 4; i < 8; i++){
- adrs[i] = 0;
- }
- }
-
- void setKeyAndMask(uint32_t adrs[8], uint32_t keyAndMask){
- adrs[7] = keyAndMask;
- }
-
- // OTS
-
- void setOTSADRS(uint32_t adrs[8], uint32_t ots){
- adrs[4] = ots;
- }
-
- void setChainADRS(uint32_t adrs[8], uint32_t chain){
- adrs[5] = chain;
- }
-
- void setHashADRS(uint32_t adrs[8], uint32_t hash){
- adrs[6] = hash;
- }
-
- // L-tree
-
- void setLtreeADRS(uint32_t adrs[8], uint32_t ltree){
- adrs[4] = ltree;
- }
-
- // Hash Tree & L-tree
-
- void setTreeHeight(uint32_t adrs[8], uint32_t treeHeight){
- adrs[5] = treeHeight;
- }
-
- void setTreeIndex(uint32_t adrs[8], uint32_t treeIndex){
- adrs[6] = treeIndex;
- }
|