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)
   203       MAC_Filter(
const std::string& mac, 
size_t len = 0);
   219       const size_t OUTPUT_LENGTH;
 bool valid_keylength(size_t length) const
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)
void set_key(const SymmetricKey &key)
MAC_Filter(MessageAuthenticationCode *mac_obj, const SymmetricKey &key, size_t out_len=0)
bool valid_keylength(size_t length) const
void set_key(const SymmetricKey &key)
bool valid_iv_length(size_t iv_len) const