QCA::SecureArray Class Reference

Secure array of bytes. More...

#include <QtCrypto>

Inheritance diagram for QCA::SecureArray:

QCA::MemoryRegion QCA::InitializationVector QCA::SymmetricKey Collaboration diagram for QCA::SecureArray:

Collaboration graph
[legend]
List of all members.

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)
SecureArrayoperator= (const SecureArray &from)
SecureArrayoperator= (const QByteArray &a)
void clear ()
char & operator[] (int index)
const char & operator[] (int index) const
char * data ()
const char * data () const
const char * constData () const
char & at (int index)
const char & at (int index) const
int size () const
bool isEmpty () const
bool resize (int size)
void fill (char fillChar, int fillToPosition=-1)
QByteArray toByteArray () const
SecureArrayappend (const SecureArray &a)
bool operator== (const MemoryRegion &other) const
bool operator!= (const MemoryRegion &other) const
SecureArrayoperator+= (const SecureArray &a)

Protected Member Functions

void set (const SecureArray &from)
void set (const QByteArray &from)

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 QMemArray (or subclass such as QCString or QByteArray) 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.


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:
size the number of bytes in the array
ch the 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

QCA::SecureArray::SecureArray const QByteArray a  ) 
 

Construct a secure byte array from a QByteArray.

Note that this copies, rather than references the source array

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

See also:
operator=()

QCA::SecureArray::SecureArray const SecureArray from  ) 
 

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

Parameters:
from the source of the data and length.


Member Function Documentation

SecureArray& QCA::SecureArray::operator= const SecureArray from  ) 
 

Creates a reference, rather than a deep copy.

SecureArray& QCA::SecureArray::operator= const QByteArray a  ) 
 

Creates a copy, rather than references.

Parameters:
a the array to copy from

Reimplemented from QCA::MemoryRegion.

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:
index the zero-based offset to obtain

const char& QCA::SecureArray::operator[] int  index  )  const
 

Returns a reference to the byte at the index position.

Parameters:
index the 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[]

Reimplemented from QCA::MemoryRegion.

Examples:
ciphertest.cpp, cmsexample.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[]

Reimplemented from QCA::MemoryRegion.

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[]

Reimplemented from QCA::MemoryRegion.

char& QCA::SecureArray::at int  index  ) 
 

Returns a reference to the byte at the index position.

Parameters:
index the zero-based offset to obtain

Reimplemented from QCA::MemoryRegion.

const char& QCA::SecureArray::at int  index  )  const
 

Returns a reference to the byte at the index position.

Parameters:
index the zero-based offset to obtain

Reimplemented from QCA::MemoryRegion.

int QCA::SecureArray::size  )  const
 

Returns the number of bytes in the array.

Reimplemented from QCA::MemoryRegion.

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

Reimplemented from QCA::MemoryRegion.

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:
size the new length

Reimplemented from QCA::MemoryRegion.

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

Fill the data array with a specified character.

Parameters:
fillChar the character to use as the fill
fillToPosition the 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.

Reimplemented from QCA::MemoryRegion.

Examples:
ciphertest.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.

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).

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.

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

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

void QCA::SecureArray::set const SecureArray from  )  [protected]
 

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

Parameters:
from the byte array to copy

void QCA::SecureArray::set const QByteArray from  )  [protected]
 

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

Parameters:
from the byte array to copy


The documentation for this class was generated from the following file:
Generated on Fri Jul 6 13:24:33 2007 for Qt Cryptographic Architecture by  doxygen 1.4.6