blob: 0ff4fdb5a7bb80b077861c674fb8688f2e3a4e29 [file] [log] [blame]
markus@openbsd.org1b11ea72018-02-23 15:58:37 +00001/*
2hash_address.c version 20160722
3Andreas Hülsing
4Joost Rijneveld
5Public domain.
6*/
Damien Millerf8854742018-02-26 12:18:14 +11007#include "includes.h"
8
Darren Tuckerc7ef4a32018-02-26 17:42:56 +11009#ifdef HAVE_STDINT_H
markus@openbsd.org1b11ea72018-02-23 15:58:37 +000010#include <stdint.h>
Darren Tuckerc7ef4a32018-02-26 17:42:56 +110011#endif
markus@openbsd.org1b11ea72018-02-23 15:58:37 +000012#include "xmss_hash_address.h" /* prototypes */
13
14void setLayerADRS(uint32_t adrs[8], uint32_t layer){
15 adrs[0] = layer;
16}
17
18void setTreeADRS(uint32_t adrs[8], uint64_t tree){
19 adrs[1] = (uint32_t) (tree >> 32);
20 adrs[2] = (uint32_t) tree;
21}
22
23void 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
31void setKeyAndMask(uint32_t adrs[8], uint32_t keyAndMask){
32 adrs[7] = keyAndMask;
33}
34
35// OTS
36
37void setOTSADRS(uint32_t adrs[8], uint32_t ots){
38 adrs[4] = ots;
39}
40
41void setChainADRS(uint32_t adrs[8], uint32_t chain){
42 adrs[5] = chain;
43}
44
45void setHashADRS(uint32_t adrs[8], uint32_t hash){
46 adrs[6] = hash;
47}
48
49// L-tree
50
51void setLtreeADRS(uint32_t adrs[8], uint32_t ltree){
52 adrs[4] = ltree;
53}
54
55// Hash Tree & L-tree
56
57void setTreeHeight(uint32_t adrs[8], uint32_t treeHeight){
58 adrs[5] = treeHeight;
59}
60
61void setTreeIndex(uint32_t adrs[8], uint32_t treeIndex){
62 adrs[6] = treeIndex;
63}