Botan 1.10.17
Botan::ECB_Decryption Class Reference

#include <ecb.h>

Inheritance diagram for Botan::ECB_Decryption:
Botan::Keyed_Filter Botan::Buffered_Filter Botan::Filter

Public Member Functions

virtual bool attachable ()
 ECB_Decryption (BlockCipher *ciph, BlockCipherModePaddingMethod *pad)
 ECB_Decryption (BlockCipher *ciph, BlockCipherModePaddingMethod *pad, const SymmetricKey &key)
std::string name () const
virtual void set_iv (const InitializationVector &iv)
void set_key (const SymmetricKey &key)
virtual void start_msg ()
virtual bool valid_iv_length (size_t length) const
bool valid_keylength (size_t key_len) const
 ~ECB_Decryption ()

Protected Member Functions

void buffer_reset ()
size_t buffered_block_size () const
size_t current_position () const
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

ECB Decryption

Definition at line 55 of file ecb.h.

Constructor & Destructor Documentation

◆ ECB_Decryption() [1/2]

Botan::ECB_Decryption::ECB_Decryption ( BlockCipher * ciph,
BlockCipherModePaddingMethod * pad )

Definition at line 112 of file ecb.cpp.

113 :
114 Buffered_Filter(ciph->parallel_bytes(), 1)
115 {
116 cipher = ciph;
117 padder = pad;
118
119 temp.resize(buffered_block_size());
120 }
Buffered_Filter(size_t block_size, size_t final_minimum)
Definition buf_filt.cpp:18
size_t buffered_block_size() const
Definition buf_filt.h:67

References Botan::Buffered_Filter::buffered_block_size(), and Botan::Buffered_Filter::Buffered_Filter().

Referenced by Botan::get_cipher_mode().

◆ ECB_Decryption() [2/2]

Botan::ECB_Decryption::ECB_Decryption ( BlockCipher * ciph,
BlockCipherModePaddingMethod * pad,
const SymmetricKey & key )

Definition at line 125 of file ecb.cpp.

127 :
128 Buffered_Filter(ciph->parallel_bytes(), 1)
129 {
130 cipher = ciph;
131 padder = pad;
132
133 temp.resize(buffered_block_size());
134
135 cipher->set_key(key);
136 }

References Botan::Buffered_Filter::buffered_block_size(), and Botan::Buffered_Filter::Buffered_Filter().

◆ ~ECB_Decryption()

Botan::ECB_Decryption::~ECB_Decryption ( )

Definition at line 141 of file ecb.cpp.

142 {
143 delete cipher;
144 delete padder;
145 }

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; }

◆ buffer_reset()

void Botan::Buffered_Filter::buffer_reset ( )
inlineprotectedinherited

Reset the buffer position

Definition at line 77 of file buf_filt.h.

77{ buffer_pos = 0; }

Referenced by Botan::CBC_Decryption::set_iv(), and Botan::CBC_Encryption::set_iv().

◆ buffered_block_size()

◆ current_position()

size_t Botan::Buffered_Filter::current_position ( ) const
inlineprotectedinherited
Returns
current position in the buffer

Definition at line 72 of file buf_filt.h.

72{ return buffer_pos; }

◆ name()

std::string Botan::ECB_Decryption::name ( ) const
virtual
Returns
descriptive name for this filter

Implements Botan::Filter.

Definition at line 150 of file ecb.cpp.

151 {
152 return (cipher->name() + "/ECB/" + padder->name());
153 }

◆ 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); }
void send(const byte in[], size_t length)
Definition filter.cpp:28

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().

◆ set_iv()

void Botan::Keyed_Filter::set_iv ( const InitializationVector & iv)
virtualinherited

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::CBC_Encryption, Botan::CFB_Decryption, Botan::CFB_Encryption, Botan::CTS_Decryption, Botan::CTS_Encryption, Botan::EAX_Base, Botan::StreamCipher_Filter, Botan::XTS_Decryption, and Botan::XTS_Encryption.

Definition at line 13 of file basefilt.cpp.

14 {
15 if(iv.length() != 0)
16 throw Invalid_IV_Length(name(), iv.length());
17 }
virtual std::string name() const =0
Invalid_IV_Length(const std::string &mode, size_t bad_len)
Definition exceptn.h:80

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

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

◆ set_key()

void Botan::ECB_Decryption::set_key ( const SymmetricKey & key)
inlinevirtual

Set the key of this filter

Parameters
keythe key to use

Implements Botan::Keyed_Filter.

Definition at line 61 of file ecb.h.

61{ cipher->set_key(key); }

◆ 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{}

◆ valid_iv_length()

virtual bool Botan::Keyed_Filter::valid_iv_length ( size_t length) const
inlinevirtualinherited

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::CBC_Encryption, Botan::CFB_Decryption, Botan::CFB_Encryption, Botan::CTS_Decryption, Botan::CTS_Encryption, Botan::EAX_Base, Botan::StreamCipher_Filter, Botan::XTS_Decryption, and Botan::XTS_Encryption.

Definition at line 48 of file key_filt.h.

49 { return (length == 0); }

Referenced by Botan::algorithm_kat().

◆ valid_keylength()

bool Botan::ECB_Decryption::valid_keylength ( size_t length) const
inlinevirtual

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

Implements Botan::Keyed_Filter.

Definition at line 63 of file ecb.h.

64 { return cipher->valid_keylength(key_len); }

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