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/*
4hash_address.c version 20160722
5Andreas H��lsing
6Joost Rijneveld
7Public 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
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}
64