|
| ChaCha20Poly1305 (const Algorithm::Intent intent) noexcept |
|
| ~ChaCha20Poly1305 () noexcept override |
|
std::vector< byte > | Encrypt (const std::string &password, const byte *buffer, const std::size_t buffSize) override |
|
std::vector< byte > | Encrypt (const std::string &password, const std::vector< byte > &buffer) override |
|
std::vector< byte > | Decrypt (const std::string &password, const byte *cipher, const std::size_t cipherSize) override |
|
std::vector< byte > | Decrypt (const std::string &password, const std::vector< byte > &cipher) override |
|
void | Encrypt (const std::string &password, const fs::path &in_filename, const fs::path &out_filename) override |
|
void | Decrypt (const std::string &password, const fs::path &in_filename, const fs::path &out_filename) override |
|
| ENIGMA_ENUM_CLASS_BITWISE_OPERATORS (Intent, Enigma::byte) |
|
| Algorithm (const Type type, const Intent intent=Intent::Encrypt|Intent::Decrypt) noexcept |
|
virtual | ~Algorithm () noexcept |
|
Type | GetType () const noexcept |
|
void | SetType (const Type type) noexcept |
|
std::string | GetTypeString () const noexcept |
|
|
enum class | Intent : Enigma::byte { None = 0 << 0
, Encrypt = 1 << 1
, Decrypt = 1 << 2
, All = Encrypt | Decrypt
} |
|
enum class | Type : byte {
AES = 0x01
, Twofish
, TripleDES
, Blowfish
,
IDEA
, ChaCha20Poly1305
, RSA
, Camellia
,
Serpent
} |
|
static std::unique_ptr< Algorithm > | CreateFromName (const std::string &name, const Intent intent) |
|
static std::unique_ptr< Algorithm > | CreateFromType (const Type type, const Intent intent) |
|
static std::string | AlgoTypeEnumToStr (const Algorithm::Type e) noexcept |
|
static std::string | GetSupportedAlgorithmsStr () noexcept |
|
static std::vector< std::pair< std::string, Algorithm::Type > > | GetSupportedAlgorithms () noexcept |
|
static const std::unordered_map< Type, std::string_view > | ALGORITHM_DESCRIPTIONS |
|
static std::vector< byte > | GenerateRandomIV (const std::size_t size) |
|
Type | m_type {} |
|
Intent | m_intent {} |
|
static std::unique_ptr< CryptoPP::AutoSeededRandomPool > | m_auto_seeded_random_pool {nullptr} |
|
ChaCha20Poly1305 Algorithm Encryptor/Decryptor
ChaCha20Poly1305 is an authenticated encryption scheme that combines ChaChaTLS and Poly1305. The scheme uses the IETF versions of the ciphers because it is defined in RFC 8439, ChaCha20and Poly1305 for IETF Protocols. The scheme is somewhat unique because it pairs a stream cipher with an authenticator(most authenticated encryption modes pair a block cipher).
Definition at line 15 of file ChaCha20Poly1305.hpp.