9#ifndef BOTAN_HSS_LMS_UTILS_H_ 
   10#define BOTAN_HSS_LMS_UTILS_H_ 
   12#include <botan/hash.h> 
   13#include <botan/internal/loadstor.h> 
   53      template <concepts::resizable_
byte_buffer T = secure_vector<u
int8_t>>
 
   56         gen(output, hash, seed);
 
 
   63      void gen(std::span<uint8_t> out, 
HashFunction& hash, std::span<const uint8_t> seed) 
const;
 
   67      std::vector<uint8_t> m_input_buffer;
 
   69      std::span<uint8_t, 
sizeof(uint32_t)> m_q;
 
   70      std::span<uint8_t, 
sizeof(uint16_t)> m_i;
 
   71      std::span<uint8_t, 
sizeof(uint8_t)> m_j;
 
 
virtual size_t output_length() const =0
 
void set_i(uint16_t i)
Specify the value for the u16str(i) hash input field.
 
PseudorandomKeyGeneration(std::span< const uint8_t > identifier)
Create a PseudorandomKeyGeneration instance for a fixed identifier.
 
void set_j(uint8_t j)
Specify the value for the u8str(j) hash input field.
 
T gen(HashFunction &hash, std::span< const uint8_t > seed) const
Create a hash value using the preconfigured prefix and a seed.
 
void set_q(uint32_t q)
Specify the value for the u32str(q) hash input field.
 
constexpr auto store_be(ParamTs &&... params)