monotone

monotone Mtn Source Tree

Root/botan/lookup.h

1/*************************************************
2* Algorithm Lookup Header File *
3* (C) 1999-2006 The Botan Project *
4*************************************************/
5
6#ifndef BOTAN_LOOKUP_H__
7#define BOTAN_LOOKUP_H__
8
9#include <botan/base.h>
10#include <botan/filters.h>
11#include <botan/mode_pad.h>
12#include <botan/pk_util.h>
13#include <botan/s2k.h>
14
15namespace Botan {
16
17/*************************************************
18* Retrieve an object from the lookup table *
19*************************************************/
20const BlockCipher* retrieve_block_cipher(const std::string&);
21const StreamCipher* retrieve_stream_cipher(const std::string&);
22const HashFunction* retrieve_hash(const std::string&);
23const MessageAuthenticationCode* retrieve_mac(const std::string&);
24const S2K* retrieve_s2k(const std::string&);
25const BlockCipherModePaddingMethod* retrieve_bc_pad(const std::string&);
26
27/*************************************************
28* Get an algorithm object *
29*************************************************/
30BlockCipher* get_block_cipher(const std::string&);
31StreamCipher* get_stream_cipher(const std::string&);
32HashFunction* get_hash(const std::string&);
33MessageAuthenticationCode* get_mac(const std::string&);
34S2K* get_s2k(const std::string&);
35const BlockCipherModePaddingMethod* get_bc_pad(const std::string&);
36
37/*************************************************
38* Get an EMSA/EME/KDF/MGF function *
39*************************************************/
40EME* get_eme(const std::string&);
41EMSA* get_emsa(const std::string&);
42MGF* get_mgf(const std::string&);
43KDF* get_kdf(const std::string&);
44
45/*************************************************
46* Get a cipher object *
47*************************************************/
48Keyed_Filter* get_cipher(const std::string&, const SymmetricKey&,
49 const InitializationVector&, Cipher_Dir);
50Keyed_Filter* get_cipher(const std::string&, const SymmetricKey&, Cipher_Dir);
51Keyed_Filter* get_cipher(const std::string&, Cipher_Dir);
52
53/*************************************************
54* Check to see if an algorithm exists *
55*************************************************/
56bool have_algorithm(const std::string&);
57
58bool have_block_cipher(const std::string&);
59bool have_stream_cipher(const std::string&);
60bool have_hash(const std::string&);
61bool have_mac(const std::string&);
62
63/*************************************************
64* Dereference an alias *
65*************************************************/
66std::string deref_alias(const std::string&);
67
68/*************************************************
69* Query information about an algorithm *
70*************************************************/
71u32bit block_size_of(const std::string&);
72u32bit output_length_of(const std::string&);
73
74bool valid_keylength_for(u32bit, const std::string&);
75u32bit min_keylength_of(const std::string&);
76u32bit max_keylength_of(const std::string&);
77u32bit keylength_multiple_of(const std::string&);
78
79}
80
81#endif

Archive Download this file

Branches

Tags

Quick Links:     www.monotone.ca    -     Downloads    -     Documentation    -     Wiki    -     Code Forge    -     Build Status