3#include <StormByte/crypto/keypair/generic.hxx>
9namespace StormByte::Crypto::KeyPair {
14 class STORMBYTE_CRYPTO_PUBLIC
DSA final:
public Generic {
21 inline DSA(
const std::string& public_key, std::optional<std::string> private_key = std::nullopt):
46 DSA& operator=(const
DSA& other) = default;
53 DSA& operator=(
DSA&& other) noexcept = default;
59 PointerType Clone() const noexcept
override {
60 return std::make_shared<DSA>(*
this);
67 PointerType
Move() noexcept
override {
68 return std::make_shared<DSA>(std::move(*
this));
76 static PointerType
Generate(
unsigned short key_size = 2048) noexcept;
A DSA keypair class.
Definition dsa.hxx:14
DSA(const DSA &other)=default
Copy constructor.
~DSA() noexcept=default
Virtual destructor.
DSA(DSA &&other) noexcept=default
Move constructor.
static PointerType Generate(unsigned short key_size=2048) noexcept
Generate a new DSA keypair.
PointerType Move() noexcept override
Move the DSA keypair.
Definition dsa.hxx:67
DSA(const std::string &public_key, std::optional< std::string > private_key=std::nullopt)
Constructor.
Definition dsa.hxx:21
A generic class.
Definition generic.hxx:34