12#ifndef BOTAN_SPHINCS_PLUS_H_
13#define BOTAN_SPHINCS_PLUS_H_
15#include <botan/pk_keys.h>
16#include <botan/sp_parameters.h>
23class SphincsPlus_PublicKeyInternal;
24class SphincsPlus_PrivateKeyInternal;
44 size_t key_length()
const override;
46 std::string algo_name()
const override;
48 size_t estimated_strength()
const override;
50 OID object_identifier()
const override;
52 std::vector<uint8_t> raw_public_key_bits()
const override;
53 std::vector<uint8_t> public_key_bits()
const override;
57 std::unique_ptr<PK_Ops::Verification> create_verification_op(std::string_view params,
58 std::string_view provider)
const override;
60 std::unique_ptr<PK_Ops::Verification> create_x509_verification_op(
const AlgorithmIdentifier& signature_algorithm,
61 std::string_view provider)
const override;
68 std::shared_ptr<SphincsPlus_PublicKeyInternal>
m_public;
113 std::unique_ptr<Public_Key> public_key()
const override;
116 std::string_view params,
117 std::string_view provider)
const override;
120 std::shared_ptr<SphincsPlus_PrivateKeyInternal> m_private;
#define BOTAN_DIAGNOSTIC_POP
#define BOTAN_DIAGNOSTIC_PUSH
#define BOTAN_DIAGNOSTIC_IGNORE_INHERITED_VIA_DOMINANCE
#define BOTAN_PUBLIC_API(maj, min)
~SphincsPlus_PrivateKey() override
SphincsPlus_PrivateKey & operator=(const SphincsPlus_PrivateKey &other)=delete
SphincsPlus_PrivateKey & operator=(SphincsPlus_PrivateKey &&other)=delete
SphincsPlus_PrivateKey(const SphincsPlus_PrivateKey &other)=default
SphincsPlus_PrivateKey(SphincsPlus_PrivateKey &&other)=default
An SLH-DSA (or SPHINCS+ Round 3.1) public key.
SphincsPlus_PublicKey(SphincsPlus_PublicKey &&other)=default
~SphincsPlus_PublicKey() override
SphincsPlus_PublicKey & operator=(const SphincsPlus_PublicKey &other)=default
SphincsPlus_PublicKey & operator=(SphincsPlus_PublicKey &&other)=default
SphincsPlus_PublicKey(const SphincsPlus_PublicKey &other)=default
SphincsPlus_PublicKey()=default
std::shared_ptr< SphincsPlus_PublicKeyInternal > m_public
int(* final)(unsigned char *, CTX *)
std::vector< T, secure_allocator< T > > secure_vector