3#include <StormByte/crypto/crypter.hxx>
4#include <StormByte/crypto/keypair.hxx>
10namespace StormByte::Crypto {
24 explicit Asymmetric(
const Algorithm::Asymmetric& algorithm,
const KeyPair& key_pair)
noexcept;
70 Expected<std::
string,
Exception> Encrypt(const std::
string& input) const noexcept override;
78 Expected<Buffer::Simple,
Exception> Encrypt(const Buffer::Simple& buffer) const noexcept override;
86 Buffer::Consumer Encrypt(const Buffer::Consumer consumer) const noexcept override;
94 Expected<std::
string,
Exception> Decrypt(const std::
string& input) const noexcept override;
102 Expected<Buffer::Simple,
Exception> Decrypt(const Buffer::Simple& buffer) const noexcept override;
110 Buffer::Consumer Decrypt(const Buffer::Consumer consumer) const noexcept override;
A class for managing asymmetric encryption and decryption.
Definition asymetric.hxx:17
~Asymmetric() noexcept override=default
Destructor for the Asymmetric class.
Asymmetric(const Asymmetric &crypter)=default
Copy constructor for the Asymmetric class.
Asymmetric(const Algorithm::Asymmetric &algorithm, KeyPair &&key_pair) noexcept
Constructs an Asymmetric instance with a specified algorithm and key pair (move version).
Asymmetric(Asymmetric &&crypter) noexcept=default
Move constructor for the Asymmetric class.
Asymmetric(const Algorithm::Asymmetric &algorithm, const KeyPair &key_pair) noexcept
Constructs an Asymmetric instance with a specified algorithm and key pair.
An abstract base class for encryption and decryption operations.
Definition crypter.hxx:21
A class representing an exception in the crypto module.
Definition exception.hxx:15
A class representing a public/private key pair.
Definition keypair.hxx:23
The namespace containing cryptographic algorithms.