#ifndef CRYFS_CRYCIPHER_H #define CRYFS_CRYCIPHER_H #include #include #include #include namespace cryfs { class CryCipher { public: 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