|
| AES (const Algorithm::Intent intent) noexcept |
|
| ~AES () 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} |
|
AES-GCM Algorithm Encryptor/Decryptor
AES symmetric cipher is recommended to be used with GCM mode
Definition at line 10 of file AES.hpp.