QCA::MemoryRegion Class Reference
QCA user API

`#include <QtCrypto>`

## Public Member Functions

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 MemoryRegion &from)
| MemoryRegion (const QByteArray &from)
MemoryRegion & | operator= (const MemoryRegion &from)
MemoryRegion & | operator= (const QByteArray &from)
int | size () const
QByteArray | toByteArray () const

## Protected Member Functions

char & | at (int index)
char * | data ()
| MemoryRegion (bool secure)
| MemoryRegion (const QByteArray &from, bool secure)
| MemoryRegion (int size, bool secure)
bool | resize (int size)
void | set (const QByteArray &from, bool secure)
void | setSecure (bool secure)

## Detailed Description

Array of bytes that may be optionally secured.

This class is mostly unusable on its own. Either use it as a SecureArray subclass or call toByteArray() to convert to QByteArray.

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

Examples
  aes-cmac.cpp.

## Constructor & Destructor Documentation

## MemoryRegion() [1/6]

QCA::MemoryRegion::MemoryRegion | ( | const char * | str | ) |

Constructs a new Memory Region from a null terminated character array.

Parameters

  str | pointer to the array of data to copy

## MemoryRegion() [2/6]

QCA::MemoryRegion::MemoryRegion | ( | const QByteArray & | from | ) |

Constructs a new MemoryRegion from the data in a byte array.

Parameters

  from | the QByteArray to copy from

## MemoryRegion() [3/6]

QCA::MemoryRegion::MemoryRegion | ( | const MemoryRegion & | from | ) |

Standard copy constructor.

Parameters

  from | the MemoryRegion to copy from

## MemoryRegion() [4/6]

QCA::MemoryRegion::MemoryRegion | ( | bool | secure | ) |

protected

Create a memory region, optionally using secure storage.

Parameters

  secure | if this is true, the memory region will use secure storage.

Note
  This will create a memory region without any content (i.e. both isNull() and isEmpty() will return true.

## MemoryRegion() [5/6]

QCA::MemoryRegion::MemoryRegion | ( | int | size,
|  | bool | secure )

protected

Create a memory region, optionally using secure storage.

Parameters

  size | the number of bytes in the memory region.
  secure | if this is true, the memory region will use secure storage.

References size().

## MemoryRegion() [6/6]

QCA::MemoryRegion::MemoryRegion | ( | const QByteArray & | from,
|  | bool | secure )

protected

Create a memory region, optionally using secure storage.

This constructor variant allows you to initialize the memory region from an existing array.

Parameters

  from | the byte array to copy from.
  secure | if this is true, the memory region will use secure storage.

## Member Function Documentation

## operator=() [1/2]

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

Standard assignment operator.

Parameters

  from | the MemoryRegion to copy from

## operator=() [2/2]

MemoryRegion & QCA::MemoryRegion::operator= | ( | const QByteArray & | from | ) |

Standard assignment operator.

Parameters

  from | the QByteArray to copy from

## isNull()

bool QCA::MemoryRegion::isNull | ( |  | ) | const

Test if the MemoryRegion is null (i.e.

was created as a null array, and hasn't been resized).

This is probably not what you are trying to do. If you are trying to determine whether there are any bytes in the array, use isEmpty() instead.

## isSecure()

bool QCA::MemoryRegion::isSecure | ( |  | ) | const

Test if the MemoryRegion is using secure memory, or not.

In this context, memory is secure if it will not be paged out to disk.

Returns
  true if the memory region is secure

## toByteArray()

QByteArray QCA::MemoryRegion::toByteArray | ( |  | ) | const

Convert this memory region to a byte array.

Note
  For secure data, this will make it insecure

See also
  data() and constData() for other ways to convert to an "accessible" format.

## isEmpty()

bool QCA::MemoryRegion::isEmpty | ( |  | ) | const

Returns true if the size of the memory region is zero.

## size()

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

Returns the number of bytes in the memory region.

Referenced by MemoryRegion(), and resize().

## data() [1/2]

const char * QCA::MemoryRegion::data | ( |  | ) | const

Convert the contents of the memory region to a C-compatible character array.

This consists of size() bytes, followed by a null terminator.

See also
  toByteArray for an alternative approach.
  constData, which is equivalent to this method, but avoids the possibility that the compiler picks the wrong version.

## constData()

const char * QCA::MemoryRegion::constData | ( |  | ) | const

Convert the contents of the memory region to a C-compatible character array.

This consists of size() bytes, followed by a null terminator.

See also
  toByteArray for an alternative approach.
  data which is equivalent to this method

## at() [1/2]

const char & QCA::MemoryRegion::at | ( | int | index | ) | const

Obtain the value of the memory location at the specified position.

Parameters

  index | the offset into the memory region.

Note
  The contents of a memory region are between 0 and size()-1. The content at position size() is always a null terminator.

## data() [2/2]

char * QCA::MemoryRegion::data | ( |  | ) |

protected

Convert the contents of the memory region to a C-compatible character array.

This consists of size() bytes, followed by a null terminator.

## at() [2/2]

char & QCA::MemoryRegion::at | ( | int | index | ) |

protected

Obtain the value of the memory location at the specified position.

Parameters

  index | the offset into the memory region.

Note
  The contents of a memory region are between 0 and size()-1. The content at position size() is always a null terminator.

## resize()

bool QCA::MemoryRegion::resize | ( | int | size | ) |

protected

Resize the memory region to the specified size.

Parameters

  size | the new size of the region.

References size().

## set()

void QCA::MemoryRegion::set | ( | const QByteArray & | from,
|  | bool | secure )

protected

Modify the memory region to match a specified byte array.

This resizes the memory region as required to match the byte array size.

Parameters

  from | the byte array to copy from.
  secure | if this is true, the memory region will use secure storage.

## setSecure()

void QCA::MemoryRegion::setSecure | ( | bool | secure | ) |

protected

Convert the memory region to use the specified memory type.

This may involve copying data from secure to insecure storage, or from insecure to secure storage.

Parameters

  secure | if true, use secure memory; otherwise use insecure memory.

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

- qca_tools.h