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

Класс MessageAuthenticationCode

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

void clear () override
MemoryRegion final () override
KeyLength keyLength () const
MessageAuthenticationCode (const MessageAuthenticationCode &from)
MessageAuthenticationCode (const QString &type, const SymmetricKey &key, const QString &provider=QString())
MessageAuthenticationCode & operator= (const MessageAuthenticationCode &from)
void setup (const SymmetricKey &key)
QString type () const
void update (const MemoryRegion &array) override
bool validKeyLength (int n) const

Публичные функции, унаследованные от QCA::Algorithm

Algorithm (const Algorithm &from)
void change (const QString &type, const QString &provider)
void change (Provider::Context *c)
Provider::Context * context ()
const Provider::Context * context () const
Algorithm & operator= (const Algorithm &from)
Provider * provider () const
Provider::Context * takeContext ()
QString type () const

Публичные функции, унаследованные от QCA::BufferedComputation

MemoryRegion process (const MemoryRegion &a)

Статические публичные функции

static QStringList supportedTypes (const QString &provider=QString())

Дополнительные унаследованные члены

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

Algorithm ()
Algorithm (const QString &type, const QString &provider)

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

Общий класс для алгоритмов кода аутентификации сообщений (MAC).

MessageAuthenticationCode— это класс для доступа к различным алгоритмам аутентификации сообщений в QCA. Для новых приложений рекомендуется HMAC с использованием SHA1 ("hmac(sha1)") или HMAC с использованием SHA256 ("hmac(sha256)").

Следует обратить внимание, что если приложение потенциально подвержено «атакам воспроизведения», когда сообщение отправляется более одного раза, нужно включить счётчик в сообщение, которое покрывается MAC, и проверять, что счётчик всегда увеличивается каждый раз, когда получено сообщение и MAC.

Для получения дополнительной информации о HMAC см. H. Krawczyk et al. RFC2104 "HMAC: Keyed-Hashing for Message Authentication"

Примеры

aes-cmac.cpp и mactest.cpp.

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

MessageAuthenticationCode() [1/2]

QCA::MessageAuthenticationCode::MessageAuthenticationCode (const QString & type, const SymmetricKey & key, const QString & provider = QString() )

Стандартный конструктор.

Параметры

type Имя MAC (и алгоритм, если применим) для использования
key Общий ключ
provider Криптопровайдер, который будет использоваться, если требуется конкретный криптопровайдер

MessageAuthenticationCode() [2/2]

QCA::MessageAuthenticationCode::MessageAuthenticationCode (const MessageAuthenticationCode & from)

Стандартный конструктор копирования.

Копирует состояние (включая ключ) из одного MessageAuthenticationCode в другой.

Параметры

from Объект MessageAuthenticationCodeдля получения состояния

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

operator=()

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

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

Копирует состояние (включая ключ) из одного MessageAuthenticationCode в другой.

Параметры

from Объект MessageAuthenticationCode для присваивания.

supportedTypes()

static QStringList QCA::MessageAuthenticationCode::supportedTypes (const QString & provider = QString()) static

Возвращает список всех доступных типов кода аутентификации сообщения.

Параметры

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

type()

QString QCA::MessageAuthenticationCode::type () const

Возвращает тип MAC.

keyLength()

KeyLength QCA::MessageAuthenticationCode::keyLength () const

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

validKeyLength()

bool QCA::MessageAuthenticationCode::validKeyLength (int n) const

Проверяет, допустима ли длина ключа для алгоритма MAC.

Параметры

n Длина ключа в байтах

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

clear()

void QCA::MessageAuthenticationCode::clear () override virtual

Сбрасывает MessageAuthenticationCode, сбросив все предыдущие части сообщения.

Этот метод очищает (или сбрасывает) алгоритм, эффективно отменяя все предыдущие вызовы update(). Необходимо использовать этот вызов, если повторно используется объект подкласса MessageAuthenticationCode для вычисления дополнительных MAC. Следует обратить внимание, что если ключ не нужно менять, не нужно снова вызывать setup(), поскольку ключ можно просто использовать повторно.

Реализует QCA::BufferedComputation.

update()

void QCA::MessageAuthenticationCode::update (const MemoryRegion & array) override virtual

Обновляет MAC, добавив больше содержимого сообщения в дайджест.

Всё сообщение необходимо добавить с помощью этого метода перед вызовом final().

Параметры

array Содержание сообщения

Реализует QCA::BufferedComputation.

Примеры

mactest.cpp.

final()

MemoryRegion QCA::MessageAuthenticationCode::final () override virtual

Завершает ввод и возвращает результат MAC.

После вызова update() с необходимыми данными хеширование завершается и создаются результаты.

Следует обратить внимание, что невозможно добавить дополнительные данные (с помощью update()) после вызова final(). Если нужно повторно использовать объект MessageAuthenticationCode, следует вызвать clear() и снова начать update().

Реализует QCA::BufferedComputation.

Примеры

mactest.cpp.

setup()

void QCA::MessageAuthenticationCode::setup (const SymmetricKey & key)

Инициализирует алгоритм MAC.

Параметры

key Ключ для использования в алгоритме

Примеры

mactest.cpp.

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

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