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