|
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 |
| MemoryVector (const MemoryRegion< T > &in) | |
| MemoryVector (const T in[], size_t n) | |
| MemoryVector (size_t n=0) | |
| operator const T * () const | |
| operator T* () | |
| bool | operator!= (const MemoryRegion< T > &other) const |
| bool | operator< (const MemoryRegion< T > &other) const |
| MemoryVector< T > & | operator= (const MemoryRegion< T > &in) |
| 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) |
Protected Member Functions | |
| void | init (bool locking, size_t length=0) |
This class represents variable length buffers that do not make use of memory locking.
|
inline |
Create a buffer of the specified length.
| n | the length of the buffer to create. |
Definition at line 295 of file secmem.h.
References Botan::MemoryRegion< T >::init().
Referenced by operator=().
|
inline |
Create a buffer with the specified contents.
| in | the array containing the data to be initially copied into the newly created buffer |
| n | the size of the arry in |
Definition at line 303 of file secmem.h.
References Botan::MemoryRegion< T >::copy(), Botan::MemoryRegion< T >::init(), and Botan::MemoryRegion< T >::resize().
|
inline |
Copy constructor.
Definition at line 313 of file secmem.h.
References Botan::MemoryRegion< T >::copy(), Botan::MemoryRegion< T >::init(), Botan::MemoryRegion< T >::MemoryRegion(), Botan::MemoryRegion< T >::resize(), and Botan::MemoryRegion< T >::size().
|
inlineinherited |
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().
|
inlineinherited |
|
inlineinherited |
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().
|
inlineinherited |
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().
|
inlineinherited |
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().
|
inlineinherited |
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().
|
inlineinherited |
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().
|
inlineinherited |
|
inlineinherited |
|
inlineprotectedinherited |
| 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().
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
Check two buffers for inequality.
Definition at line 100 of file secmem.h.
References MemoryRegion().
|
inherited |
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.
| in | the buffer to copy the contents from |
Definition at line 281 of file secmem.h.
References Botan::MemoryRegion< T >::copy(), Botan::MemoryRegion< T >::MemoryRegion(), MemoryVector(), Botan::MemoryRegion< T >::resize(), and Botan::MemoryRegion< T >::size().
|
inlineinherited |
|
inlineinherited |
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().
|
inherited |
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().
|
inlineinherited |
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().
|
inherited |
Swap this buffer with another object.
Definition at line 260 of file secmem.h.
References MemoryRegion(), and std::swap().
Referenced by std::swap().