11#ifndef BOTAN_HSS_LMS_H_
12#define BOTAN_HSS_LMS_H_
14#include <botan/pk_keys.h>
21class HSS_LMS_PublicKeyInternal;
22class HSS_LMS_PrivateKeyInternal;
47 size_t key_length()
const override;
49 std::string algo_name()
const override;
51 size_t estimated_strength()
const override;
53 OID object_identifier()
const override;
55 std::vector<uint8_t> raw_public_key_bits()
const override;
56 std::vector<uint8_t> public_key_bits()
const override;
58 std::unique_ptr<PK_Ops::Verification> create_verification_op(std::string_view params,
59 std::string_view provider)
const override;
61 std::unique_ptr<PK_Ops::Verification> create_x509_verification_op(
const AlgorithmIdentifier& signature_algorithm,
62 std::string_view provider)
const override;
74 std::shared_ptr<HSS_LMS_PublicKeyInternal>
m_public;
144 std::unique_ptr<Public_Key> public_key()
const override;
153 std::optional<uint64_t> remaining_operations()
const override;
158 std::string_view params,
159 std::string_view provider)
const override;
164 std::shared_ptr<HSS_LMS_PrivateKeyInternal> m_private;
#define BOTAN_DIAGNOSTIC_POP
#define BOTAN_DIAGNOSTIC_PUSH
#define BOTAN_DIAGNOSTIC_IGNORE_INHERITED_VIA_DOMINANCE
#define BOTAN_PUBLIC_API(maj, min)
#define BOTAN_FUTURE_EXPLICIT
bool stateful_operation() const override
HSS_LMS_PrivateKey(const HSS_LMS_PrivateKey &other)=delete
HSS_LMS_PrivateKey & operator=(HSS_LMS_PrivateKey &&other)=delete
~HSS_LMS_PrivateKey() override
HSS_LMS_PrivateKey & operator=(const HSS_LMS_PrivateKey &other)=delete
HSS_LMS_PrivateKey(HSS_LMS_PrivateKey &&other)=default
HSS_LMS_PublicKey & operator=(HSS_LMS_PublicKey &&other)=delete
~HSS_LMS_PublicKey() override
HSS_LMS_PublicKey(const HSS_LMS_PublicKey &other)=default
HSS_LMS_PublicKey(HSS_LMS_PublicKey &&other)=default
HSS_LMS_PublicKey()=default
HSS_LMS_PublicKey & operator=(const HSS_LMS_PublicKey &other)=delete
std::shared_ptr< HSS_LMS_PublicKeyInternal > m_public
int(* final)(unsigned char *, CTX *)
std::vector< T, secure_allocator< T > > secure_vector