libdecaf
Loading...
Searching...
No Matches
decaf::FixedArrayBuffer< Size > Class Template Reference

A fixed-size stack-allocated buffer (for DECAF_NOEXCEPT semantics). More...

#include <secure_buffer.hxx>

Inheritance diagram for decaf::FixedArrayBuffer< Size >:
decaf::FixedBuffer< Size > decaf::Buffer decaf::Block

Public Member Functions

 FixedArrayBuffer () DECAF_NOEXCEPT
 New buffer initialized to zero.
 FixedArrayBuffer (const NOINIT &) DECAF_NOEXCEPT
 New uninitialized buffer.
 FixedArrayBuffer (Rng &r) DECAF_NOEXCEPT
 New random buffer.
 FixedArrayBuffer (const FixedBlock< Size > &b) DECAF_NOEXCEPT
 Copy constructor.
FixedArrayBufferoperator= (const FixedBlock< Size > &b) DECAF_NOEXCEPT
 Copy operator.
FixedArrayBufferoperator= (const FixedArrayBuffer< Size > &b) DECAF_NOEXCEPT
 Copy operator.
FixedArrayBufferoperator= (const Block &b)
 Copy operator.
 FixedArrayBuffer (const Block &b)
 Copy constructor.
 FixedArrayBuffer (const FixedArrayBuffer< Size > &b) DECAF_NOEXCEPT
 Copy constructor.
 ~FixedArrayBuffer () DECAF_NOEXCEPT
 Destroy the buffer.
Public Member Functions inherited from decaf::FixedBuffer< Size >
 FixedBuffer (Buffer b)
 Check a block's length.
 FixedBuffer (SecureBuffer &b)
 Check a block's length.
 FixedBuffer (uint8_t dat[Size], bool zero_on_destroy=false) DECAF_NOEXCEPT
 Explicitly pass a C buffer.
 operator FixedBlock< Size > () const DECAF_NOEXCEPT
 Cast to a FixedBlock.
Public Member Functions inherited from decaf::Buffer
 Buffer () DECAF_NOEXCEPT
 Null init.
 Buffer (unsigned char *data, size_t size, bool zero_on_destroy=false) DECAF_NOEXCEPT
 Unowned init.
template<class alloc>
 Buffer (std::vector< unsigned char, alloc > &s)
 Block from std::vector.
const unsigned char * data () const DECAF_NOEXCEPT
 Get const data.
unsigned char * data () DECAF_NOEXCEPT
 Cast to unsigned char.
Buffer slice (size_t off, size_t length)
 Slice the buffer.
unsigned char & operator[] (size_t off)
 Subscript.
void assign (const Block b)
 Copy from another block.
Public Member Functions inherited from decaf::Block
 Block ()
 Null initialization.
 Block (const char *data) DECAF_NOEXCEPT
 Init from C string.
 Block (const unsigned char *data, size_t size, bool zero_on_destroy=false) DECAF_NOEXCEPT
 Unowned init.
 Block (const std::string &s)
 Block from std::string.
template<class alloc>
 Block (const std::vector< unsigned char, alloc > &s)
 Block from std::vector.
const unsigned char * data () const DECAF_NOEXCEPT
 Get const data.
const unsigned char & operator[] (size_t off) const
 Subscript.
size_t size () const DECAF_NOEXCEPT
 Get the size.
std::string get_string () const
 Convert to C++ string.
Block slice (size_t off, size_t length) const
 Slice the buffer.
decaf_bool_t contents_equal (const Block &b) const DECAF_NOEXCEPT
 Content-wise comparison; constant-time if they are the same length.
 operator SecureBuffer () const
 Create new block from this.
void zeroize () DECAF_NOEXCEPT
 Securely set the buffer to 0.
void debug_print_hex (const char *name=NULL)
 Debugging print in hex.

Detailed Description

template<size_t Size>
class decaf::FixedArrayBuffer< Size >

A fixed-size stack-allocated buffer (for DECAF_NOEXCEPT semantics).


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