Документация
ОС Аврора 5.1.5

Класс SecureArray

Публичные функции

SecureArray & append (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
SecureArray & operator+= (const SecureArray &a)
SecureArray & operator= (const QByteArray &a)
SecureArray & operator= (const SecureArray &from)
bool operator== (const MemoryRegion &other) const
char & operator[] (int index)
const char & operator[] (int index) const
bool resize (int size)
SecureArray ()
SecureArray (const char *str)
SecureArray (const MemoryRegion &a)
SecureArray (const QByteArray &a)
SecureArray (const SecureArray &from)
SecureArray (int size, char ch=0)
int size () const
QByteArray toByteArray () const

Публичные функции, унаследованные от 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 MemoryRegion &from)
MemoryRegion (const QByteArray &from)
MemoryRegion & operator= (const MemoryRegion &from)
MemoryRegion & operator= (const QByteArray &from)
int size () const
QByteArray toByteArray () const

Защищённые методы

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

Защищённые функции, унаследованные от QCA::MemoryRegion

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)

Подробное описание

Безопасные массивы байтов.

Класс SecureArray предоставляет массив из пула памяти, который безопасен до некоторого уровня. В данном контексте безопасный обозначает, что содержимое памяти не дожлно стать доступным другим приложениям. Для сравнения, данные QByteArray или QString могут хранится в страницах, которые могут быть выгружены на диск или освобождены без предварительной очистки.

Следует обратить внимание, что данный класс можно разделять между несколькими потоками исполнения, так как реализация основана на механизме копирования при записи.

Примеры

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

Описание конструкторов и деструктора

SecureArray() [1/6]

QCA::SecureArray::SecureArray ()

Создаёт безопасный массив байтов нулевой длины.

SecureArray() [2/6]

QCA::SecureArray::SecureArray (int size, charch = 0) explicit

Создаёт безопасный массив байтов указанной длины.

Параметры

size Количество байтов в создаваемом массиве
ch Изначальное значение каждого байта

SecureArray() [3/6]

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

Создаёт безопасный массив байтов из строки.

Следует обратить внимание, что конструктор копирует данные, а не формирует ссылку на переданный массив.

Параметры

str Источник данных (в формате null-терминированой строки)

SecureArray() [4/6]

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

Создаёт безопасный массив байтов из объекта QByteArray.

Следует обратить внимание, что конструктор копирует данные, а не формирует ссылку на переданный массив.

Параметры

a Источник данных

См. также operator=()

SecureArray() [5/6]

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

Создаёт безопасный массив байтов из объекта MemoryRegion.

Следует обратить внимание, что конструктор копирует данные, а не добавляет ссылку на переданный массив.

Параметры

a Источник данных

См. также operator=()

SecureArray() [6/6]

QCA::SecureArray::SecureArray (const SecureArray & from)

Создаёт копию другого безопасного массива байтов, используя поверхностное копирование.

Параметры

from Источник данных и длины

Описание методов

operator=() [1/2]

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

Формирует ссылку на данные, не выполняет глубокое копирование.

Параметры

from Ссылка на массив

operator=() [2/2]

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

Возвращает копию, а не ссылку.

Параметры

a Массив для копирования

clear()

void QCA::SecureArray::clear ()

Очищает содержимое массива и делает его пустым.

Примеры

md5crypt.cpp.

operator [1/2]

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

Возвращает ссылку на байт по указаной позиции.

Параметры

index Номер байта для получения, нумерация начинается с нуля

operator [2/2]

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

Возвращает ссылку на байт по указаной позиции.

Параметры

index Номер байта для получения, нумерация начинается с нуля

data() [1/2]

char* QCA::SecureArray::data ()

Указатель на данные в защищённом массиве.

Можно передавать данную ссылку в функцию memcpy или подобную ей. Для получения данных по указанному отступу лучше использовать метод at() или оператор [].

Примеры

ciphertest.cpp, hashtest.cpp, mactest.cpp, md5crypt.cpp, publickeyexample.cpp и rsatest.cpp.

data() [2/2]

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

Указатель на данные в защищённом массиве.

Можно передавать данную ссылку в функцию memcpy или подобную ей. Для получения данных по указанному отступу лучше использовать метод at() или оператор [].

constData()

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

Указатель на данные в защищённом массиве.

Можно передавать данную ссылку в функцию memcpy или подобную ей. Для получения данных по указанному отступу лучше использовать метод at() или оператор [].

at() [1/2]

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

Возвращает ссылку на байт по указаной позиции.

Параметры

index Номер байта для получения, нумерация начинается с нуля

at() [2/2]

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

Возвращает ссылку на байт по указаной позиции.

Параметры

index Номер байта для получения, нумерация начинается с нуля

size()

int QCA::SecureArray::size () const

Возвращает количество байтов в массиве.

Примеры

aes-cmac.cpp и md5crypt.cpp.

isEmpty()

bool QCA::SecureArray::isEmpty () const

Проверяет, содержит ли массив какие-нибудь байты.

Метод эквивалентен проверке (size() != 0). Следует обратить внимание, что если память под массив была выделена, метод isEmpty() возвращает false, даже если никакие данные не были добавлены.

Возвращает true, если массив нулевой длины, false в противном случае.

Примеры

rsatest.cpp.

resize()

bool QCA::SecureArray::resize (int size)

Изменяет длину данного массива. Если новая длина меньше старой длины, лишние данные безопасно отбрасываются.

Если новая длина массива больше или равна старой длине, существующие данные копируются в массив.

Параметры

size Новая длина массива

fill()

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

Заполняет массив данных указанным символом.

Параметры

fillChar Символ для заполнения массива
fillToPosition Количество символов для заполнения. Если не указан (или равен -1), то заполняет массив до указанной длины

Примечание.

Данная функция не увеличивает размер массива. Если выполнить запрос на заполнение данными больше, чем текущая длина массива, то будет заполнен текущий размер массива.

Количество символов для заполнения считается, начиная с единицы. Если выполнить запрос fill('x', 10), то он заполнит массив.

Примеры

md5crypt.cpp.

toByteArray()

QByteArray QCA::SecureArray::toByteArray () const

Копирует содержимое защищённого массива в стандартный QByteArray.

Следует обратить внимание, что данная функция выполняет глубокое копированне данных.

Примеры

ciphertest.cpp, eventhandlerdemo.cpp, hashtest.cpp, mactest.cpp, md5crypt.cpp и rsatest.cpp.

append()

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

Добавляет защищённый байтовый массив в конец этого массива.

Параметры

a Массив, который нужно добавить к данному массиву

Примеры

ciphertest.cpp и md5crypt.cpp.

operator==()

bool QCA::SecureArray::operator== (const MemoryRegion & other) const

Оператор равенства.

Возвращает true, если оба массива имеют одинаковые данные и одинаковую длину.

Параметры

other Объект MemoryRegion для сравнения

operator!=()

bool QCA::SecureArray::operator!= (const MemoryRegion & other) const inline

Оператор неравенства.

Возвращает true, если массивы имеют различную длину или если одинаковую длину, но различные данные.

Параметры

other Объект MemoryRegion для сравнения

operator+=()

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

Добавляет защищённый байтовый массив в конец этого массива.

Параметры

a Массив, который нужно добавить к данному массиву

set() [1/2]

void QCA::SecureArray::set (const SecureArray & from) protected

Присваивает содержимое предоставленного массива байтов данному объекту.

Параметры

from Массив байтов для копирования

set() [2/2]

void QCA::SecureArray::set (const QByteArray & from) protected

Присваивает содержимое предоставленного массива байтов данному объекту.

Параметры

from Массив байтов для копирования

Мы используем cookies для персонализации сайта и его более удобного использования. Вы можете запретить cookies в настройках браузера.

Пожалуйста ознакомьтесь с политикой использования cookies.