Botan  1.10.9
Public Member Functions | Protected Member Functions | List of all members
Botan::Keyed_Filter Class Referenceabstract

#include <key_filt.h>

Inheritance diagram for Botan::Keyed_Filter:
Botan::Filter Botan::CBC_Decryption Botan::CBC_Encryption Botan::CFB_Decryption Botan::CFB_Encryption Botan::CTS_Decryption Botan::CTS_Encryption Botan::EAX_Base Botan::ECB_Decryption Botan::ECB_Encryption Botan::MAC_Filter Botan::StreamCipher_Filter Botan::XTS_Decryption Botan::XTS_Encryption

Public Member Functions

virtual bool attachable ()
 
virtual void end_msg ()
 
virtual std::string name () const =0
 
virtual void set_iv (const InitializationVector &iv)
 
virtual void set_key (const SymmetricKey &key)=0
 
virtual void start_msg ()
 
virtual bool valid_iv_length (size_t length) const
 
virtual bool valid_keylength (size_t length) const =0
 
virtual void write (const byte input[], size_t length)=0
 

Protected Member Functions

void send (const byte in[], size_t length)
 
void send (byte in)
 
void send (const MemoryRegion< byte > &in)
 
void send (const MemoryRegion< byte > &in, size_t length)
 

Detailed Description

This class represents keyed filters, i.e. filters that have to be fed with a key in order to function.

Definition at line 20 of file key_filt.h.

Member Function Documentation

virtual bool Botan::Filter::attachable ( )
inlinevirtualinherited

Check whether this filter is an attachable filter.

Returns
true if this filter is attachable, false otherwise

Reimplemented in Botan::SecureQueue, and Botan::DataSink.

Definition at line 50 of file filter.h.

50 { return true; }
virtual void Botan::Filter::end_msg ( )
inlinevirtualinherited
virtual std::string Botan::Filter::name ( ) const
pure virtualinherited
void Botan::Filter::send ( const byte  in[],
size_t  length 
)
protectedinherited
Parameters
insome input for the filter
lengththe length of in

Definition at line 28 of file filter.cpp.

References Botan::MemoryRegion< T >::clear(), Botan::MemoryRegion< T >::size(), and Botan::Filter::write().

Referenced by Botan::PK_Encryptor_Filter::end_msg(), Botan::Zlib_Compression::end_msg(), Botan::Bzip_Compression::end_msg(), Botan::Hex_Encoder::end_msg(), Botan::Base64_Encoder::end_msg(), Botan::PK_Decryptor_Filter::end_msg(), Botan::Bzip_Decompression::end_msg(), Botan::Zlib_Decompression::end_msg(), Botan::PK_Signer_Filter::end_msg(), Botan::Hex_Decoder::end_msg(), Botan::Base64_Decoder::end_msg(), Botan::PK_Verifier_Filter::end_msg(), Botan::Hash_Filter::end_msg(), Botan::MAC_Filter::end_msg(), Botan::Bzip_Compression::flush(), Botan::Zlib_Compression::flush(), Botan::Bzip_Compression::write(), Botan::Zlib_Compression::write(), Botan::StreamCipher_Filter::write(), Botan::Bzip_Decompression::write(), Botan::Zlib_Decompression::write(), Botan::Hex_Decoder::write(), and Botan::Base64_Decoder::write().

29  {
30  bool nothing_attached = true;
31  for(size_t j = 0; j != total_ports(); ++j)
32  if(next[j])
33  {
34  if(write_queue.size())
35  next[j]->write(&write_queue[0], write_queue.size());
36  next[j]->write(input, length);
37  nothing_attached = false;
38  }
39 
40  if(nothing_attached)
41  write_queue += std::make_pair(input, length);
42  else
43  write_queue.clear();
44  }
virtual void write(const byte input[], size_t length)=0
size_t size() const
Definition: secmem.h:29
void Botan::Filter::send ( byte  in)
inlineprotectedinherited
Parameters
insome input for the filter

Definition at line 63 of file filter.h.

References Botan::Filter::send().

Referenced by Botan::Filter::send().

63 { send(&in, 1); }
void send(const byte in[], size_t length)
Definition: filter.cpp:28
void Botan::Filter::send ( const MemoryRegion< byte > &  in)
inlineprotectedinherited
Parameters
insome input for the filter

Definition at line 68 of file filter.h.

References Botan::Filter::send(), and Botan::MemoryRegion< T >::size().

Referenced by Botan::Filter::send().

68 { send(&in[0], in.size()); }
void send(const byte in[], size_t length)
Definition: filter.cpp:28
size_t size() const
Definition: secmem.h:29
void Botan::Filter::send ( const MemoryRegion< byte > &  in,
size_t  length 
)
inlineprotectedinherited
Parameters
insome input for the filter
lengththe number of bytes of in to send

Definition at line 74 of file filter.h.

75  {
76  send(&in[0], length);
77  }
void send(const byte in[], size_t length)
Definition: filter.cpp:28
void Botan::Keyed_Filter::set_iv ( const InitializationVector iv)
virtual

Set the initialization vector of this filter. Note: you should call set_iv() only after you have called set_key()

Parameters
ivthe initialization vector to use

Reimplemented in Botan::CBC_Decryption, Botan::XTS_Decryption, Botan::CTS_Decryption, Botan::CFB_Decryption, Botan::StreamCipher_Filter, Botan::CBC_Encryption, Botan::EAX_Base, Botan::XTS_Encryption, Botan::CFB_Encryption, and Botan::CTS_Encryption.

Definition at line 13 of file basefilt.cpp.

References Botan::OctetString::length(), and Botan::Filter::name().

Referenced by Botan::algorithm_kat(), and Botan::get_cipher().

14  {
15  if(iv.length() != 0)
16  throw Invalid_IV_Length(name(), iv.length());
17  }
virtual std::string name() const =0
virtual void Botan::Keyed_Filter::set_key ( const SymmetricKey key)
pure virtual
virtual void Botan::Filter::start_msg ( )
inlinevirtualinherited

Start a new message. Must be closed by end_msg() before another message can be started.

Reimplemented in Botan::Zlib_Decompression, Botan::EAX_Base, Botan::Bzip_Decompression, Botan::PBE_PKCS5v20, Botan::PBE_PKCS5v15, Botan::Bzip_Compression, and Botan::Zlib_Compression.

Definition at line 38 of file filter.h.

38 {}
virtual bool Botan::Keyed_Filter::valid_iv_length ( size_t  length) const
inlinevirtual

Check whether an IV length is valid for this filter

Parameters
lengththe IV length to be checked for validity
Returns
true if the IV length is valid, false otherwise

Reimplemented in Botan::CBC_Decryption, Botan::XTS_Decryption, Botan::CTS_Decryption, Botan::CFB_Decryption, Botan::StreamCipher_Filter, Botan::EAX_Base, Botan::CBC_Encryption, Botan::CFB_Encryption, Botan::CTS_Encryption, and Botan::XTS_Encryption.

Definition at line 48 of file key_filt.h.

Referenced by Botan::algorithm_kat().

49  { return (length == 0); }
virtual bool Botan::Keyed_Filter::valid_keylength ( size_t  length) const
pure virtual

Check whether a key length is valid for this filter

Parameters
lengththe key length to be checked for validity
Returns
true if the key length is valid, false otherwise

Implemented in Botan::MAC_Filter, Botan::CBC_Decryption, Botan::StreamCipher_Filter, Botan::XTS_Decryption, Botan::CTS_Decryption, Botan::ECB_Decryption, Botan::CFB_Decryption, Botan::EAX_Base, Botan::CBC_Encryption, Botan::ECB_Encryption, Botan::CFB_Encryption, Botan::CTS_Encryption, and Botan::XTS_Encryption.

virtual void Botan::Filter::write ( const byte  input[],
size_t  length 
)
pure virtualinherited

The documentation for this class was generated from the following files: