8 #ifndef BOTAN_FILTERS_H__
9 #define BOTAN_FILTERS_H__
11 #include <botan/block_cipher.h>
12 #include <botan/stream_cipher.h>
13 #include <botan/hash.h>
14 #include <botan/mac.h>
16 #include <botan/pipe.h>
17 #include <botan/basefilt.h>
18 #include <botan/key_filt.h>
19 #include <botan/data_snk.h>
21 #include <botan/scan_name.h>
23 #if defined(BOTAN_HAS_CODEC_FILTERS)
24 #include <botan/b64_filt.h>
25 #include <botan/hex_filt.h>
37 std::string
name()
const {
return cipher->name(); }
44 void write(
const byte input[],
size_t input_len);
47 {
return cipher->valid_iv_length(iv_len); }
67 {
return cipher->valid_keylength(length); }
107 void write(
const byte input[],
size_t len) { hash->update(input, len); }
110 std::string
name()
const {
return hash->name(); }
121 OUTPUT_LENGTH(len), hash(hash_fun) {}
131 Hash_Filter(
const std::string& request,
size_t len = 0);
135 const size_t OUTPUT_LENGTH;
145 void write(
const byte input[],
size_t len) {
mac->update(input, len); }
148 std::string
name()
const {
return mac->name(); }
162 {
return mac->valid_keylength(length); }
173 size_t out_len = 0) : OUTPUT_LENGTH(out_len)
189 size_t out_len = 0) : OUTPUT_LENGTH(out_len)
219 const size_t OUTPUT_LENGTH;
void write(const byte input[], size_t len)
MAC_Filter(MessageAuthenticationCode *mac_obj, size_t out_len=0)
void write(const byte input[], size_t len)
Hash_Filter(HashFunction *hash_fun, size_t len=0)
bool valid_iv_length(size_t iv_len) const
bool valid_keylength(size_t length) const
void set_key(const SymmetricKey &key)
MessageAuthenticationCode * mac
MAC_Filter(MessageAuthenticationCode *mac_obj, const SymmetricKey &key, size_t out_len=0)
void set_key(const SymmetricKey &key)
bool valid_keylength(size_t length) const