StormByte C++ Library: Crypto module 0.0.9999
StormByte-Crypto is a StormByte library module for handling cryptographic operations
Loading...
Searching...
No Matches
ecdsa.hxx
1#pragma once
2
3#include <StormByte/crypto/signer/generic.hxx>
4#include <StormByte/crypto/keypair/ecdsa.hxx>
5
10namespace StormByte::Crypto::Signer {
15 class STORMBYTE_CRYPTO_PUBLIC ECDSA final: public Generic {
16 public:
22 inline ECDSA(KeyPair::Generic::PointerType keypair):
23 Generic(Type::ECDSA, keypair) {}
24
30 inline ECDSA(const KeyPair::ECDSA& keypair):
31 Generic(Type::ECDSA, keypair) {}
32
38 inline ECDSA(KeyPair::ECDSA&& keypair):
39 Generic(Type::ECDSA, keypair) {}
40
45 ECDSA(const ECDSA& other) = default;
46
51 ECDSA(ECDSA&& other) noexcept = default;
52
56 ~ECDSA() noexcept = default;
57
63 ECDSA& operator=(const ECDSA& other) = default;
64
70 ECDSA& operator=(ECDSA&& other) noexcept = default;
71
76 PointerType Clone() const noexcept override {
77 return std::make_shared<ECDSA>(*this);
78 }
79
84 PointerType Move() noexcept override {
85 return std::make_shared<ECDSA>(std::move(*this));
86 }
87
88 private:
96 bool DoSign(std::span<const std::byte> input, Buffer::WriteOnly& output) const noexcept override;
97
104 Buffer::Consumer DoSign(Buffer::Consumer consumer, ReadMode mode) const noexcept override;
105
112 bool DoVerify(std::span<const std::byte> input, const std::string& signature) const noexcept override;
120 bool DoVerify(Buffer::Consumer consumer, const std::string& signature, ReadMode mode) const noexcept override;
121 };
122}
An ECDSA keypair class.
Definition ecdsa.hxx:14
A generic signer signer class.
Definition ecdsa.hxx:15
ECDSA(KeyPair::Generic::PointerType keypair)
Constructor.
Definition ecdsa.hxx:22
ECDSA(KeyPair::ECDSA &&keypair)
Constructor.
Definition ecdsa.hxx:38
ECDSA(const KeyPair::ECDSA &keypair)
Constructor.
Definition ecdsa.hxx:30
ECDSA(const ECDSA &other)=default
Copy constructor.
ECDSA(ECDSA &&other) noexcept=default
Move constructor.
~ECDSA() noexcept=default
Virtual destructor.
PointerType Move() noexcept override
Move the ECDSA signer.
Definition ecdsa.hxx:84
A generic signer class.
Definition generic.hxx:27