QCA::SecureArray

#include <QtCrypto>

Inheritance diagram for QCA::SecureArray:

Public Member Functions

 SecureArray ()
 
 SecureArray (int size, char ch=0)
 
 SecureArray (const char *str)
 
 SecureArray (const QByteArray &a)
 
 SecureArray (const MemoryRegion &a)
 
 SecureArray (const SecureArray &from)
 
SecureArrayappend (const SecureArray &a)
 
char & at (int index)
 
const char & at (int index) const
 
void clear ()
 
const char * constData () const
 
char * data ()
 
const char * data () const
 
void fill (char fillChar, int fillToPosition=-1)
 
bool isEmpty () const
 
bool operator!= (const MemoryRegion &other) const
 
SecureArrayoperator+= (const SecureArray &a)
 
SecureArrayoperator= (const SecureArray &from)
 
SecureArrayoperator= (const QByteArray &a)
 
bool operator== (const MemoryRegion &other) const
 
char & operator[] (int index)
 
const char & operator[] (int index) const
 
bool resize (int size)
 
int size () const
 
QByteArray toByteArray () const
 
- Public Member Functions inherited from QCA::MemoryRegion
 MemoryRegion (const char *str)
 
 MemoryRegion (const QByteArray &from)
 
 MemoryRegion (const MemoryRegion &from)
 
const char & at (int index) const
 
const char * constData () const
 
const char * data () const
 
bool isEmpty () const
 
bool isNull () const
 
bool isSecure () const
 
MemoryRegionoperator= (const MemoryRegion &from)
 
MemoryRegionoperator= (const QByteArray &from)
 
int size () const
 
QByteArray toByteArray () const
 

Protected Member Functions

void set (const SecureArray &from)
 
void set (const QByteArray &from)
 
- Protected Member Functions inherited from QCA::MemoryRegion
 MemoryRegion (bool secure)
 
 MemoryRegion (int size, bool secure)
 
 MemoryRegion (const QByteArray &from, bool secure)
 
char & at (int index)
 
char * data ()
 
bool resize (int size)
 
void set (const QByteArray &from, bool secure)
 
void setSecure (bool secure)
 

Detailed Description

Secure array of bytes.

The SecureArray provides an array of memory from a pool that is, at least partly, secure. In this sense, secure means that the contents of the memory should not be made available to other applications. By comparison, a QByteArray or QString may be held in pages that might be swapped to disk or free'd without being cleared first.

Note that this class is implicitly shared (that is, copy on write).

Examples:
aes-cmac.cpp, ciphertest.cpp, eventhandlerdemo.cpp, hashtest.cpp, keyloader.cpp, mactest.cpp, md5crypt.cpp, publickeyexample.cpp, randomtest.cpp, rsatest.cpp, and saslclient.cpp.

Definition at line 316 of file qca_tools.h.

Constructor & Destructor Documentation

QCA::SecureArray::SecureArray ( )

Construct a secure byte array, zero length.

QCA::SecureArray::SecureArray ( int  size,
char  ch = 0 
)
explicit

Construct a secure byte array of the specified length.

Parameters
sizethe number of bytes in the array
chthe value every byte should be set to
QCA::SecureArray::SecureArray ( const char *  str)

Construct a secure byte array from a string.

Note that this copies, rather than references the source array.

Parameters
strthe source of the data (as a null terminated string).
QCA::SecureArray::SecureArray ( const QByteArray a)

Construct a secure byte array from a QByteArray.

Note that this copies, rather than references the source array.

Parameters
athe source of the data.
See also
operator=()
QCA::SecureArray::SecureArray ( const MemoryRegion a)

Construct a secure byte array from a MemoryRegion.

Note that this copies, rather than references the source array

Parameters
athe source of the data.
See also
operator=()
QCA::SecureArray::SecureArray ( const SecureArray from)

Construct a (shallow) copy of another secure byte array.

Parameters
fromthe source of the data and length.

Member Function Documentation

SecureArray& QCA::SecureArray::append ( const SecureArray a)

Append a secure byte array to the end of this array.

Parameters
athe array to append to this array
Examples:
ciphertest.cpp, and md5crypt.cpp.
char& QCA::SecureArray::at ( int  index)

Returns a reference to the byte at the index position.

Parameters
indexthe zero-based offset to obtain
const char& QCA::SecureArray::at ( int  index) const

Returns a reference to the byte at the index position.

Parameters
indexthe zero-based offset to obtain
void QCA::SecureArray::clear ( )

Clears the contents of the array and makes it empty.

const char* QCA::SecureArray::constData ( ) const

Pointer to the data in the secure array.

You can use this for memcpy and similar functions. If you are trying to obtain data at a particular offset, you might be better off using at() or operator[]

char* QCA::SecureArray::data ( )

Pointer to the data in the secure array.

You can use this for memcpy and similar functions. If you are trying to obtain data at a particular offset, you might be better off using at() or operator[]

Examples:
ciphertest.cpp, hashtest.cpp, mactest.cpp, md5crypt.cpp, publickeyexample.cpp, and rsatest.cpp.
const char* QCA::SecureArray::data ( ) const

Pointer to the data in the secure array.

You can use this for memcpy and similar functions. If you are trying to obtain data at a particular offset, you might be better off using at() or operator[]

void QCA::SecureArray::fill ( char  fillChar,
int  fillToPosition = -1 
)

Fill the data array with a specified character.

Parameters
fillCharthe character to use as the fill
fillToPositionthe number of characters to fill to. If not specified (or -1), fills array to current length.
Note
This function does not extend the array - if you ask for fill beyond the current length, only the current length will be used.
The number of characters is 1 based, so if you ask for fill('x', 10), it will fill from
Examples:
md5crypt.cpp.
bool QCA::SecureArray::isEmpty ( ) const

Test if the array contains any bytes.

This is equivalent to testing (size() != 0). Note that if the array is allocated, isEmpty() is false (even if no data has been added)

Returns
true if the array has zero length, otherwise false
Examples:
rsatest.cpp.
bool QCA::SecureArray::operator!= ( const MemoryRegion other) const
inline

Inequality operator.

Returns true if both arrays have different length, or the same length but different data.

Parameters
otherthe MemoryRegion to compare to

Definition at line 516 of file qca_tools.h.

SecureArray& QCA::SecureArray::operator+= ( const SecureArray a)

Append a secure byte array to the end of this array.

Parameters
athe array to append to this array
SecureArray& QCA::SecureArray::operator= ( const SecureArray from)

Creates a reference, rather than a deep copy.

Parameters
fromthe array to reference
SecureArray& QCA::SecureArray::operator= ( const QByteArray a)

Creates a copy, rather than references.

Parameters
athe array to copy from
bool QCA::SecureArray::operator== ( const MemoryRegion other) const

Equality operator.

Returns true if both arrays have the same data (and the same length, of course).

Parameters
otherthe MemoryRegion to compare to
char& QCA::SecureArray::operator[] ( int  index)

Returns a reference to the byte at the index position.

Parameters
indexthe zero-based offset to obtain
const char& QCA::SecureArray::operator[] ( int  index) const

Returns a reference to the byte at the index position.

Parameters
indexthe zero-based offset to obtain
bool QCA::SecureArray::resize ( int  size)

Change the length of this array If the new length is less than the old length, the extra information is (safely) discarded.

If the new length is equal to or greater than the old length, the existing data is copied into the array.

Parameters
sizethe new length
Examples:
aes-cmac.cpp.
void QCA::SecureArray::set ( const SecureArray from)
protected

Assign the contents of a provided byte array to this object.

Parameters
fromthe byte array to copy
void QCA::SecureArray::set ( const QByteArray from)
protected

Assign the contents of a provided byte array to this object.

Parameters
fromthe byte array to copy
int QCA::SecureArray::size ( ) const

Returns the number of bytes in the array.

Examples:
aes-cmac.cpp, and md5crypt.cpp.
QByteArray QCA::SecureArray::toByteArray ( ) const

Copy the contents of the secure array out to a standard QByteArray.

Note that this performs a deep copy of the data.

Examples:
aes-cmac.cpp, ciphertest.cpp, eventhandlerdemo.cpp, hashtest.cpp, mactest.cpp, md5crypt.cpp, and rsatest.cpp.

The documentation for this class was generated from the following file:
This file is part of the KDE documentation.
Documentation copyright © 1996-2020 The KDE developers.
Generated on Thu Aug 6 2020 23:02:40 by doxygen 1.8.11 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.