Botan 1.10.17
Botan::Hash_Filter Class Reference

#include <filters.h>

Inheritance diagram for Botan::Hash_Filter:
Botan::Filter

Public Member Functions

virtual bool attachable ()
void end_msg ()
 Hash_Filter (const std::string &request, size_t len=0)
 Hash_Filter (HashFunction *hash_fun, size_t len=0)
std::string name () const
virtual void start_msg ()
void write (const byte input[], size_t len)
 ~Hash_Filter ()

Protected Member Functions

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

Detailed Description

Hash Filter.

Definition at line 104 of file filters.h.

Constructor & Destructor Documentation

◆ Hash_Filter() [1/2]

Botan::Hash_Filter::Hash_Filter ( HashFunction * hash_fun,
size_t len = 0 )
inline

Construct a hash filter.

Parameters
hash_funthe hash function to use
lenthe output length of this filter. Leave the default value 0 if you want to use the full output of the hashfunction hash. Otherwise, specify a smaller value here so that the output of the hash algorithm will be cut off.

Definition at line 120 of file filters.h.

120 :
121 OUTPUT_LENGTH(len), hash(hash_fun) {}

Referenced by Botan::algorithm_kat(), Botan::PGP_decode(), and Botan::PGP_encode().

◆ Hash_Filter() [2/2]

Botan::Hash_Filter::Hash_Filter ( const std::string & request,
size_t len = 0 )

Construct a hash filter.

Parameters
requestthe name of the hash algorithm to use
lenthe output length of this filter. Leave the default value 0 if you want to use the full output of the hashfunction hash. Otherwise, specify a smaller value here so that the output of the hash algorithm will be cut off.

Definition at line 82 of file algo_filt.cpp.

83 :
84 OUTPUT_LENGTH(len)
85 {
86 Algorithm_Factory& af = global_state().algorithm_factory();
87 hash = af.make_hash_function(algo_spec);
88 }
HashFunction * make_hash_function(const std::string &algo_spec, const std::string &provider="")
Algorithm_Factory & algorithm_factory() const
Definition libstate.cpp:173
Library_State & global_state()

References Botan::Library_State::algorithm_factory(), Botan::global_state(), and Botan::Algorithm_Factory::make_hash_function().

◆ ~Hash_Filter()

Botan::Hash_Filter::~Hash_Filter ( )
inline

Definition at line 133 of file filters.h.

133{ delete hash; }

Member Function Documentation

◆ attachable()

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::DataSink, and Botan::SecureQueue.

Definition at line 50 of file filter.h.

50{ return true; }

◆ end_msg()

void Botan::Hash_Filter::end_msg ( )
virtual

Notify that the current message is finished; flush buffers and do end-of-message processing (if any).

Reimplemented from Botan::Filter.

Definition at line 93 of file algo_filt.cpp.

94 {
95 SecureVector<byte> output = hash->final();
96 if(OUTPUT_LENGTH)
97 send(output, std::min<size_t>(OUTPUT_LENGTH, output.size()));
98 else
99 send(output);
100 }
void send(const byte in[], size_t length)
Definition filter.cpp:28

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

◆ name()

std::string Botan::Hash_Filter::name ( ) const
inlinevirtual
Returns
descriptive name for this filter

Implements Botan::Filter.

Definition at line 110 of file filters.h.

110{ return hash->name(); }

◆ send() [1/4]

void Botan::Filter::send ( byte in)
inlineprotectedinherited
Parameters
insome input for the filter

Definition at line 63 of file filter.h.

63{ send(&in, 1); }

References send().

Referenced by send().

◆ send() [2/4]

void Botan::Filter::send ( const byte in[],
size_t length )
protectedinherited

◆ send() [3/4]

void Botan::Filter::send ( const MemoryRegion< byte > & in)
inlineprotectedinherited
Parameters
insome input for the filter

Definition at line 68 of file filter.h.

68{ send(&in[0], in.size()); }

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

Referenced by send().

◆ send() [4/4]

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 }

References send().

◆ start_msg()

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::Bzip_Compression, Botan::Bzip_Decompression, Botan::EAX_Base, Botan::PBE_PKCS5v15, Botan::PBE_PKCS5v20, Botan::Zlib_Compression, and Botan::Zlib_Decompression.

Definition at line 38 of file filter.h.

38{}

◆ write()

void Botan::Hash_Filter::write ( const byte input[],
size_t length )
inlinevirtual

Write a portion of a message to this filter.

Parameters
inputthe input as a byte array
lengththe length of the byte array input

Implements Botan::Filter.

Definition at line 107 of file filters.h.

107{ hash->update(input, len); }

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