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