blob: b970619e53b00c4680c7b35613da6b6beda4a9c5 [file] [log] [blame]
Darren Tuckera10d8552018-02-27 14:45:17 +11001#ifdef WITH_XMSS
markus@openbsd.org1b11ea72018-02-23 15:58:37 +00002/*
3hash_address.c version 20160722
4Andreas Hülsing
5Joost Rijneveld
6Public domain.
7*/
Damien Millerf8854742018-02-26 12:18:14 +11008#include "includes.h"
9
Darren Tuckerc7ef4a32018-02-26 17:42:56 +110010#ifdef HAVE_STDINT_H
markus@openbsd.org1b11ea72018-02-23 15:58:37 +000011#include <stdint.h>
Darren Tuckerc7ef4a32018-02-26 17:42:56 +110012#endif
markus@openbsd.org1b11ea72018-02-23 15:58:37 +000013#include "xmss_hash_address.h" /* prototypes */
14
15void setLayerADRS(uint32_t adrs[8], uint32_t layer){
16 adrs[0] = layer;
17}
18
19void setTreeADRS(uint32_t adrs[8], uint64_t tree){
20 adrs[1] = (uint32_t) (tree >> 32);
21 adrs[2] = (uint32_t) tree;
22}
23
24void setType(uint32_t adrs[8], uint32_t type){
25 adrs[3] = type;
26 int i;
27 for(i = 4; i < 8; i++){
28 adrs[i] = 0;
29 }
30}
31
32void setKeyAndMask(uint32_t adrs[8], uint32_t keyAndMask){
33 adrs[7] = keyAndMask;
34}
35
36// OTS
37
38void setOTSADRS(uint32_t adrs[8], uint32_t ots){
39 adrs[4] = ots;
40}
41
42void setChainADRS(uint32_t adrs[8], uint32_t chain){
43 adrs[5] = chain;
44}
45
46void setHashADRS(uint32_t adrs[8], uint32_t hash){
47 adrs[6] = hash;
48}
49
50// L-tree
51
52void setLtreeADRS(uint32_t adrs[8], uint32_t ltree){
53 adrs[4] = ltree;
54}
55
56// Hash Tree & L-tree
57
58void setTreeHeight(uint32_t adrs[8], uint32_t treeHeight){
59 adrs[5] = treeHeight;
60}
61
62void setTreeIndex(uint32_t adrs[8], uint32_t treeIndex){
63 adrs[6] = treeIndex;
64}
Darren Tuckera10d8552018-02-27 14:45:17 +110065#endif /* WITH_XMSS */