#ifndef BOTAN_LOOKUP_H__
#define BOTAN_LOOKUP_H__
#include "botan-1.6/include/base.h"
#include "botan-1.6/include/filters.h"
#include "botan-1.6/include/mode_pad.h"
#include "botan-1.6/include/s2k.h"
namespace Enctain {
namespace Botan {
const BlockCipher* retrieve_block_cipher(const std::string&);
const StreamCipher* retrieve_stream_cipher(const std::string&);
const HashFunction* retrieve_hash(const std::string&);
const MessageAuthenticationCode* retrieve_mac(const std::string&);
const S2K* retrieve_s2k(const std::string&);
const BlockCipherModePaddingMethod* retrieve_bc_pad(const std::string&);
BlockCipher* get_block_cipher(const std::string&);
StreamCipher* get_stream_cipher(const std::string&);
HashFunction* get_hash(const std::string&);
MessageAuthenticationCode* get_mac(const std::string&);
S2K* get_s2k(const std::string&);
const BlockCipherModePaddingMethod* get_bc_pad(const std::string&);
Keyed_Filter* get_cipher(const std::string&, const SymmetricKey&,
const InitializationVector&, Cipher_Dir);
Keyed_Filter* get_cipher(const std::string&, const SymmetricKey&, Cipher_Dir);
Keyed_Filter* get_cipher(const std::string&, Cipher_Dir);
bool have_algorithm(const std::string&);
bool have_block_cipher(const std::string&);
bool have_stream_cipher(const std::string&);
bool have_hash(const std::string&);
bool have_mac(const std::string&);
std::string deref_alias(const std::string&);
u32bit block_size_of(const std::string&);
u32bit output_length_of(const std::string&);
bool valid_keylength_for(u32bit, const std::string&);
u32bit min_keylength_of(const std::string&);
u32bit max_keylength_of(const std::string&);
u32bit keylength_multiple_of(const std::string&);
}
}
#endif