Класс 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"
Примеры
Описание конструкторов и деструктора
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.
Примеры
final()
MemoryRegion QCA::MessageAuthenticationCode::final () | override virtual |
Завершает ввод и возвращает результат MAC.
После вызова update() с необходимыми данными хеширование завершается и создаются результаты.
Следует обратить внимание, что невозможно добавить дополнительные данные (с помощью
update())
после вызова
final().
Если нужно повторно использовать объект MessageAuthenticationCode
, следует вызвать
clear()
и снова начать
update().
Реализует QCA::BufferedComputation.
Примеры
setup()
void QCA::MessageAuthenticationCode::setup (const SymmetricKey & key) |
Инициализирует алгоритм MAC.
Параметры
key | Ключ для использования в алгоритме |