Qt Cryptographic Architecture
Public Member Functions | Protected Member Functions | List of all members
QCA::SecureArray Class Reference

#include <QtCrypto>

Collaboration diagram for QCA::SecureArray:
Collaboration graph
[legend]

Public Member Functions

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)
 
 SecureArray ()
 
 SecureArray (int size, char ch=0)
 
 SecureArray (const char *str)
 
 SecureArray (const QByteArray &a)
 
 SecureArray (const MemoryRegion &a)
 
 SecureArray (const SecureArray &from)
 
int size () const
 
QByteArray toByteArray () const
 
- Public Member Functions inherited from QCA::MemoryRegion
const char & at (int index) const
 
const char * constData () const
 
const char * data () const
 
bool isEmpty () const
 
bool isNull () const
 
bool isSecure () const
 
 MemoryRegion (const char *str)
 
 MemoryRegion (const QByteArray &from)
 
 MemoryRegion (const MemoryRegion &from)
 
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
char & at (int index)
 
char * data ()
 
 MemoryRegion (bool secure)
 
 MemoryRegion (int size, bool secure)
 
 MemoryRegion (const QByteArray &from, bool secure)
 
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.

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::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
void QCA::SecureArray::clear ( )

Clears the contents of the array and makes it empty.

Examples:
md5crypt.cpp.
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
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[]

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::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
int QCA::SecureArray::size ( ) const

Returns the number of bytes in the array.

Examples:
aes-cmac.cpp, and 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::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
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.
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:
ciphertest.cpp, eventhandlerdemo.cpp, hashtest.cpp, mactest.cpp, md5crypt.cpp, and rsatest.cpp.
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.
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
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
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
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

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