12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- /* $OpenBSD: xmss_hash_address.c,v 1.2 2018/02/26 03:56:44 dtucker Exp $ */
- /*
- hash_address.c version 20160722
- Andreas Hülsing
- Joost Rijneveld
- Public domain.
- */
- #include "includes.h"
- #ifdef WITH_XMSS
- #ifdef HAVE_STDINT_H
- # include <stdint.h>
- #endif
- #include "xmss_hash_address.h" /* prototypes */
- void setLayerADRS(uint32_t adrs[8], uint32_t layer){
- adrs[0] = layer;
- }
- void setTreeADRS(uint32_t adrs[8], uint64_t tree){
- adrs[1] = (uint32_t) (tree >> 32);
- adrs[2] = (uint32_t) tree;
- }
- void setType(uint32_t adrs[8], uint32_t type){
- adrs[3] = type;
- int i;
- for(i = 4; i < 8; i++){
- adrs[i] = 0;
- }
- }
- void setKeyAndMask(uint32_t adrs[8], uint32_t keyAndMask){
- adrs[7] = keyAndMask;
- }
- // OTS
- void setOTSADRS(uint32_t adrs[8], uint32_t ots){
- adrs[4] = ots;
- }
- void setChainADRS(uint32_t adrs[8], uint32_t chain){
- adrs[5] = chain;
- }
- void setHashADRS(uint32_t adrs[8], uint32_t hash){
- adrs[6] = hash;
- }
- // L-tree
- void setLtreeADRS(uint32_t adrs[8], uint32_t ltree){
- adrs[4] = ltree;
- }
- // Hash Tree & L-tree
- void setTreeHeight(uint32_t adrs[8], uint32_t treeHeight){
- adrs[5] = treeHeight;
- }
- void setTreeIndex(uint32_t adrs[8], uint32_t treeIndex){
- adrs[6] = treeIndex;
- }
- #endif /* WITH_XMSS */
|