blob: 385868de784a9f58eacdbfbc0c80d7f05d9987a0 [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
markus@openbsd.org1b11ea72018-02-23 15:58:37 +00009#include <stdint.h>
10#include "xmss_hash_address.h" /* prototypes */
11
12void setLayerADRS(uint32_t adrs[8], uint32_t layer){
13 adrs[0] = layer;
14}
15
16void setTreeADRS(uint32_t adrs[8], uint64_t tree){
17 adrs[1] = (uint32_t) (tree >> 32);
18 adrs[2] = (uint32_t) tree;
19}
20
21void setType(uint32_t adrs[8], uint32_t type){
22 adrs[3] = type;
23 int i;
24 for(i = 4; i < 8; i++){
25 adrs[i] = 0;
26 }
27}
28
29void setKeyAndMask(uint32_t adrs[8], uint32_t keyAndMask){
30 adrs[7] = keyAndMask;
31}
32
33// OTS
34
35void setOTSADRS(uint32_t adrs[8], uint32_t ots){
36 adrs[4] = ots;
37}
38
39void setChainADRS(uint32_t adrs[8], uint32_t chain){
40 adrs[5] = chain;
41}
42
43void setHashADRS(uint32_t adrs[8], uint32_t hash){
44 adrs[6] = hash;
45}
46
47// L-tree
48
49void setLtreeADRS(uint32_t adrs[8], uint32_t ltree){
50 adrs[4] = ltree;
51}
52
53// Hash Tree & L-tree
54
55void setTreeHeight(uint32_t adrs[8], uint32_t treeHeight){
56 adrs[5] = treeHeight;
57}
58
59void setTreeIndex(uint32_t adrs[8], uint32_t treeIndex){
60 adrs[6] = treeIndex;
61}