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
Helper class used to derive secret values based in the pseudorandom key generation described in RFC 8...
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)