1 /* $NetBSD: xmss_hash_address.c,v 1.2 2018/04/06 18:59:00 christos Exp $ */ 2 /* $OpenBSD: xmss_hash_address.c,v 1.2 2018/02/26 03:56:44 dtucker Exp $ */ 3 /* 4 hash_address.c version 20160722 5 Andreas Hülsing 6 Joost Rijneveld 7 Public domain. 8 */ 9 #include "includes.h" 10 __RCSID("$NetBSD: xmss_hash_address.c,v 1.2 2018/04/06 18:59:00 christos Exp $"); 11 #include <stdint.h> 12 #include "xmss_hash_address.h" /* prototypes */ 13 14 void setLayerADRS(uint32_t adrs[8], uint32_t layer){ 15 adrs[0] = layer; 16 } 17 18 void setTreeADRS(uint32_t adrs[8], uint64_t tree){ 19 adrs[1] = (uint32_t) (tree >> 32); 20 adrs[2] = (uint32_t) tree; 21 } 22 23 void setType(uint32_t adrs[8], uint32_t type){ 24 adrs[3] = type; 25 int i; 26 for(i = 4; i < 8; i++){ 27 adrs[i] = 0; 28 } 29 } 30 31 void setKeyAndMask(uint32_t adrs[8], uint32_t keyAndMask){ 32 adrs[7] = keyAndMask; 33 } 34 35 // OTS 36 37 void setOTSADRS(uint32_t adrs[8], uint32_t ots){ 38 adrs[4] = ots; 39 } 40 41 void setChainADRS(uint32_t adrs[8], uint32_t chain){ 42 adrs[5] = chain; 43 } 44 45 void setHashADRS(uint32_t adrs[8], uint32_t hash){ 46 adrs[6] = hash; 47 } 48 49 // L-tree 50 51 void setLtreeADRS(uint32_t adrs[8], uint32_t ltree){ 52 adrs[4] = ltree; 53 } 54 55 // Hash Tree & L-tree 56 57 void setTreeHeight(uint32_t adrs[8], uint32_t treeHeight){ 58 adrs[5] = treeHeight; 59 } 60 61 void setTreeIndex(uint32_t adrs[8], uint32_t treeIndex){ 62 adrs[6] = treeIndex; 63 } 64