|
Botan 1.10.17
|
#include <secmem.h>
Public Member Functions | |
| T * | begin () |
| const T * | begin () const |
| void | clear () |
| void | copy (const T in[], size_t n) |
| void | copy (size_t off, const T in[], size_t n) |
| T * | data () |
| bool | empty () const |
| T * | end () |
| const T * | end () const |
| operator const T * () const | |
| operator T* () | |
| bool | operator!= (const MemoryRegion< T > &other) const |
| bool | operator< (const MemoryRegion< T > &other) const |
| MemoryRegion< T > & | operator= (const MemoryRegion< T > &other) |
| bool | operator== (const MemoryRegion< T > &other) const |
| void | push_back (T x) |
| void | resize (size_t n) |
| size_t | size () const |
| void | swap (MemoryRegion< T > &other) |
| ~MemoryRegion () | |
Protected Member Functions | |
| void | init (bool locking, size_t length=0) |
| MemoryRegion () | |
| MemoryRegion (const MemoryRegion< T > &other) | |
This class represents variable length memory buffers.
|
inline |
|
inlineprotected |
Definition at line 175 of file secmem.h.
Referenced by MemoryRegion(), Botan::MemoryVector< T >::MemoryVector(), operator!=(), operator<(), operator=(), Botan::MemoryVector< T >::operator=(), Botan::SecureVector< T >::operator=(), operator==(), Botan::SecureVector< T >::SecureVector(), and swap().
|
inlineprotected |
Copy constructor
| other | the other region to copy |
Definition at line 181 of file secmem.h.
References copy(), MemoryRegion(), resize(), and size().
|
inline |
Get a pointer to the first element in the buffer.
Definition at line 59 of file secmem.h.
Referenced by Botan::rfc3394_keyunwrap(), and Botan::rfc3394_keywrap().
|
inline |
|
inline |
Reset this buffer to an empty buffer with size zero.
Definition at line 158 of file secmem.h.
References resize().
Referenced by Botan::BER_Decoder::decode_optional_string(), Botan::PGP_decode(), and Botan::BER_Decoder::raw_bytes().
|
inline |
Copy the contents of an array of objects of type T into this buffer. The former contents of *this are discarded. The length of *this must be at least n, otherwise memory errors occur.
| in | the array to copy the contents from |
| n | the length of in |
Definition at line 126 of file secmem.h.
References Botan::copy_mem(), and size().
Referenced by Botan::OpenPGP_S2K::derive_key(), MemoryRegion(), Botan::MemoryVector< T >::MemoryVector(), Botan::MemoryVector< T >::MemoryVector(), operator=(), Botan::MemoryVector< T >::operator=(), Botan::SecureVector< T >::operator=(), Botan::operator^(), Botan::SecureVector< T >::SecureVector(), and Botan::SecureVector< T >::SecureVector().
|
inline |
Copy the contents of an array of objects of type T into this buffer. The former contents of *this are discarded. The length of *this must be at least n, otherwise memory errors occur.
| off | the offset position inside this buffer to start inserting the copied bytes |
| in | the array to copy the contents from |
| n | the length of in |
Definition at line 140 of file secmem.h.
References Botan::copy_mem(), and size().
|
inline |
Get a pointer to the first element in the buffer.
Definition at line 53 of file secmem.h.
Referenced by Botan::BigInt::const_time_lookup(), and Botan::Montgomery_Exponentiator::execute().
|
inline |
Find out whether this buffer is empty.
Definition at line 35 of file secmem.h.
Referenced by Botan::BER_Decoder::decode(), Botan::BER_Decoder::decode(), and Botan::X509::load_key().
|
inline |
|
inline |
|
inlineprotected |
| locking | should we use a locking allocator |
| length | the initial length to use |
Definition at line 195 of file secmem.h.
References Botan::Allocator::get(), and resize().
Referenced by Botan::MemoryVector< T >::MemoryVector(), Botan::MemoryVector< T >::MemoryVector(), Botan::MemoryVector< T >::MemoryVector(), Botan::SecureVector< T >::SecureVector(), Botan::SecureVector< T >::SecureVector(), and Botan::SecureVector< T >::SecureVector().
|
inline |
|
inline |
|
inline |
Check two buffers for inequality.
Definition at line 100 of file secmem.h.
References MemoryRegion().
| bool Botan::MemoryRegion< T >::operator< | ( | const MemoryRegion< T > & | other | ) | const |
Compare two buffers
Definition at line 239 of file secmem.h.
References MemoryRegion(), and size().
|
inline |
Copy the contents of another buffer into this buffer. The former contents of *this are discarded.
| other | the buffer to copy the contents from. |
Definition at line 109 of file secmem.h.
References copy(), MemoryRegion(), resize(), and size().
|
inline |
|
inline |
Append a single element.
| x | the element to append |
Definition at line 149 of file secmem.h.
References resize(), and size().
Referenced by Botan::append_tls_length_value(), Botan::CVC_EAC::create_cvc_req(), Botan::EC2OSP(), Botan::DER_Encoder::encode(), Botan::OID::encode_into(), Botan::make_cvc_cert(), Botan::operator+=(), Botan::BER_Decoder::raw_bytes(), Botan::RTSS_Share::reconstruct(), and Botan::RTSS_Share::split().
| void Botan::MemoryRegion< T >::resize | ( | size_t | n | ) |
Inserts or erases elements at the end such that the size becomes n, leaving elements in the range 0...n unmodified if set or otherwise zero-initialized
| n | length of the new buffer |
Definition at line 217 of file secmem.h.
References Botan::clear_mem(), and Botan::copy_mem().
Referenced by Botan::base64_decode(), Botan::OctetString::change(), clear(), Botan::BER_Decoder::decode(), Botan::divide(), Botan::Montgomery_Exponentiator::execute(), Botan::Entropy_Accumulator::get_io_buffer(), Botan::BER_Decoder::get_next_object(), Botan::Record_Reader::get_record(), Botan::hex_decode(), init(), MemoryRegion(), Botan::MemoryVector< T >::MemoryVector(), Botan::MemoryVector< T >::MemoryVector(), Botan::operator+=(), Botan::operator+=(), Botan::operator+=(), operator=(), Botan::MemoryVector< T >::operator=(), Botan::SecureVector< T >::operator=(), push_back(), Botan::Pipe::read_all(), Botan::SecureVector< T >::SecureVector(), and Botan::SecureVector< T >::SecureVector().
|
inline |
Find out the size of the buffer, i.e. how many objects of type T it contains.
Definition at line 29 of file secmem.h.
Referenced by Botan::Data_Store::add(), Botan::Randpool::add_entropy(), Botan::DER_Encoder::add_object(), Botan::Alert::Alert(), Botan::append_tls_length_value(), Botan::append_tls_length_value(), Botan::base64_encode(), Botan::BigInt::binary_decode(), Botan::check_passhash9(), Botan::PK_Verifier::check_signature(), Botan::PK_Verifier::check_signature(), Botan::MD4::compress_n(), Botan::MD5::compress_n(), Botan::BigInt::const_time_lookup(), copy(), copy(), Botan::BER::decode(), Botan::BER_Decoder::decode(), Botan::BER_Decoder::decode(), Botan::BER_Decoder::decode(), Botan::BigInt::decode(), Botan::BigInt::decode(), Botan::EME::decode(), Botan::decode_concatenation(), Botan::AlternativeName::decode_from(), Botan::EAC_Time::decode_from(), Botan::OID::decode_from(), Botan::BER_Decoder::decode_null(), Botan::BER_Decoder::decode_octet_string_bigint(), Botan::CryptoBox::decrypt(), Botan::PK_Decryptor::decrypt(), Botan::KDF2::derive(), Botan::X942_PRF::derive(), Botan::KDF::derive_key(), Botan::KDF::derive_key(), Botan::KDF::derive_key(), Botan::OpenPGP_S2K::derive_key(), Botan::PK_Key_Agreement::derive_key(), Botan::PK_Key_Agreement::derive_key(), Botan::PKCS5_PBKDF1::derive_key(), Botan::BigInt::encode(), Botan::BigInt::encode(), Botan::DER_Encoder::encode(), Botan::DER_Encoder::encode(), Botan::EME::encode(), Botan::PEM_Code::encode(), Botan::EMSA3::encoding_of(), Botan::CryptoBox::encrypt(), Botan::ElGamal_Encryption_Operation::encrypt(), Botan::PK_Encryptor::encrypt(), end(), end(), Botan::Hash_Filter::end_msg(), Botan::MAC_Filter::end_msg(), Botan::Montgomery_Exponentiator::execute(), Botan::Certificate_Store_Memory::find_cert_by_subject_and_key_id(), Botan::Certificate_Store_Memory::find_crl_by_subject_and_key_id(), Botan::generate_dsa_primes(), Botan::generate_passhash9(), Botan::Record_Reader::get_record(), Botan::hex_encode(), Botan::MGF1::mask(), Botan::PEM_Code::matches(), MemoryRegion(), Botan::MemoryVector< T >::MemoryVector(), Botan::BigInt::operator*=(), Botan::BigInt::operator+=(), Botan::operator+=(), Botan::operator+=(), Botan::operator+=(), operator<(), Botan::operator<<(), Botan::operator<<(), Botan::operator<<(), operator=(), Botan::MemoryVector< T >::operator=(), Botan::SecureVector< T >::operator=(), operator==(), Botan::operator>>(), Botan::operator>>(), Botan::OS2ECP(), Botan::OSSL_BN::OSSL_BN(), Botan::DataSource_Stream::peek(), Botan::Device_EntropySource::poll(), Botan::EGD_EntropySource::poll(), Botan::FTW_EntropySource::poll(), Botan::Unix_EntropySource::poll(), Botan::Win32_CAPI_EntropySource::poll(), Botan::CMAC::poly_double(), Botan::Buffered_Computation::process(), Botan::Pipe::process_msg(), push_back(), Botan::random_prime(), Botan::RandomNumberGenerator::random_vec(), Botan::BigInt::randomize(), Botan::DER_Encoder::raw_bytes(), Botan::Pipe::read_all(), Botan::Pipe::read_all_as_string(), Botan::RTSS_Share::reconstruct(), Botan::Randpool::reseed(), Botan::rfc3394_keyunwrap(), Botan::rfc3394_keywrap(), Botan::SecureVector< T >::SecureVector(), Botan::Filter::send(), Botan::HandshakeMessage::send(), Botan::Montgomery_Exponentiator::set_base(), Botan::EAX_Base::set_iv(), Botan::Turing::set_iv(), Botan::CMS_Encoder::sign(), Botan::DSA_Signature_Operation::sign(), Botan::ECDSA_Signature_Operation::sign(), Botan::NR_Signature_Operation::sign(), Botan::PK_Signer::sign_message(), Botan::PK_Signer::signature(), Botan::RTSS_Share::split(), Botan::BER_Decoder::start_cons(), Botan::ASN1::to_string(), Botan::Buffered_Computation::update(), Botan::PK_Signer::update(), Botan::PK_Verifier::update(), Botan::EMSA3::verify(), Botan::MessageAuthenticationCode::verify_mac(), Botan::PK_Verifier::verify_message(), Botan::Pipe::write(), Botan::Pipe::write(), and Botan::zeroise().
| void Botan::MemoryRegion< T >::swap | ( | MemoryRegion< T > & | other | ) |
Swap this buffer with another object.
Definition at line 260 of file secmem.h.
References MemoryRegion(), and std::swap().
Referenced by std::swap().