# QCA::SecureArray Class Reference
[QCA user API]

Secure array of bytes. More...

`#include <QtCrypto>`

Inheritance diagram for QCA::SecureArray:

Collaboration diagram for QCA::SecureArray:

[legend]

List of all members.

## Public Member Functions

SecureArray & | append (const SecureArray &a)
const char & | at (int index) const
char & | at (int index)
void | clear ()
const char * | constData () const
const char * | data () const
char * | data ()
void | fill (char fillChar, int fillToPosition=-1)
bool | isEmpty () const
bool | operator!= (const MemoryRegion &other) const
SecureArray & | operator+= (const SecureArray &a)
SecureArray & | operator= (const QByteArray &a)
SecureArray & | operator= (const SecureArray &from)
bool | operator== (const MemoryRegion &other) const
const char & | operator[] (int index) const
char & | operator[] (int index)
bool | resize (int size)
| SecureArray (const SecureArray &from)
| SecureArray (const MemoryRegion &a)
| SecureArray (const QByteArray &a)
| SecureArray (const char *str)
| SecureArray (int size, char ch=0)
| SecureArray ()
int | size () const
QByteArray | toByteArray () const

## Protected Member Functions

void | set (const QByteArray &from)
void | set (const SecureArray &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 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:

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

Parameters:

  | str | the 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:

  | a | the 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:

  | a | the source of the data.

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::append | ( | const SecureArray & | a | ) |

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

Parameters:

  | a | the array to append to this array

Examples:
  ciphertest.cpp, and md5crypt.cpp.

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.

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.

void QCA::SecureArray::clear | ( |  | ) |

Clears the contents of the array and makes it empty.

Examples:
  md5crypt.cpp.

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.

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.

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, hashtest.cpp, mactest.cpp, md5crypt.cpp, publickeyexample.cpp, and rsatest.cpp.

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.

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::operator!= | ( | const MemoryRegion & | other | ) | const`[inline]`

Inequality operator.

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

Parameters:

  | other | the MemoryRegion to compare to

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

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

Parameters:

  | a | the array to append to this array

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

Creates a copy, rather than references.

Parameters:

  | a | the array to copy from

Reimplemented from QCA::MemoryRegion.

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

Creates a reference, rather than a deep copy.

Parameters:

  | from | the array to reference

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:

  | other | the MemoryRegion to compare to

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::operator[] | ( | int | index | ) |

Returns a reference to the byte at the index position.

Parameters:

  | index | the 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:

  | size | the new length

Reimplemented from QCA::MemoryRegion.

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

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

int QCA::SecureArray::size | ( |  | ) | const

Returns the number of bytes in the array.

Reimplemented from QCA::MemoryRegion.

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.

Reimplemented from QCA::MemoryRegion.

Examples:
  ciphertest.cpp, hashtest.cpp, mactest.cpp, md5crypt.cpp, and rsatest.cpp.

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

- qca_tools.h