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);
46 bool valid_iv_length(
size_t iv_len)
const
47 {
return cipher->valid_iv_length(iv_len); }
101 void write(
const byte input[],
size_t len) { hash->update(input, len); }
104 std::string
name()
const {
return hash->name(); }
115 OUTPUT_LENGTH(len), hash(hash_fun) {}
125 Hash_Filter(
const std::string& request,
size_t len = 0);
129 const size_t OUTPUT_LENGTH;
139 void write(
const byte input[],
size_t len) {
mac->update(input, len); }
142 std::string
name()
const {
return mac->name(); }
161 size_t out_len = 0) : OUTPUT_LENGTH(out_len)
177 size_t out_len = 0) : OUTPUT_LENGTH(out_len)
207 const size_t OUTPUT_LENGTH;