#pragma once #ifndef MESSMER_CRYFS_SRC_CONFIG_CRYCIPHER_H #define MESSMER_CRYFS_SRC_CONFIG_CRYCIPHER_H #include #include #include #include namespace cryfs { class CryCipher { public: virtual ~CryCipher() {} virtual const std::string &cipherName() const = 0; virtual const boost::optional &warning() const = 0; virtual cpputils::unique_ref createEncryptedBlockstore(cpputils::unique_ref baseBlockStore, const std::string &encKey) const = 0; virtual std::string createKey() const = 0; }; class CryCiphers { public: static std::vector supportedCipherNames(); static const CryCipher& find(const std::string &cipherName); private: static const std::vector> SUPPORTED_CIPHERS; }; } #endif