9 #include <botan/xmss_common_ops.h>
30 bitmask_r.size() == right.size(),
31 "Bitmask size doesn't match node size.");
34 for(
size_t i = 0; i < left.size(); i++)
36 concat_xor[i] = left[i] ^ bitmask_l[i];
37 concat_xor[i + left.size()] = right[i] ^ bitmask_r[i];
40 m_hash.
h(result, key, concat_xor);
55 for(
size_t i = 0; i < l >> 1; i++)
62 pk[l >> 1] = pk[l - 1];
64 l = (l >> 1) + (l & 0x01);
size_t element_size() const
void create_l_tree(secure_vector< uint8_t > &result, wots_keysig_t pk, XMSS_Address &adrs, const secure_vector< uint8_t > &seed)
void h(secure_vector< uint8_t > &result, const secure_vector< uint8_t > &key, const secure_vector< uint8_t > &data)
void set_tree_height(uint32_t value)
#define BOTAN_ASSERT(expr, assertion_made)
std::vector< T, secure_allocator< T >> secure_vector
void prf(secure_vector< uint8_t > &result, const secure_vector< uint8_t > &key, const secure_vector< uint8_t > &data)
XMSS_Parameters m_xmss_params
void randomize_tree_hash(secure_vector< uint8_t > &result, const secure_vector< uint8_t > &left, const secure_vector< uint8_t > &right, XMSS_Address &adrs, const secure_vector< uint8_t > &seed)
std::vector< secure_vector< uint8_t > > wots_keysig_t
void set_key_mask_mode(Key_Mask value)
const secure_vector< uint8_t > & bytes() const
void set_tree_index(uint32_t value)
uint32_t get_tree_height() const