GostCrypto  0.2.0
Криптография, реализованная в соответствии с ГОСТ
 Указатель Структуры данных Файлы Функции Определения типов Перечисления Элементы перечислений Друзья Макросы
Класс KuznyechikCbc_t

Блочный шифр с длиной блока 128 бит в режиме простой замены с зацеплением с размером синхропосылки 16 байт. Подробнее...

#include <gostcrypto.hpp>

Открытые члены

 KuznyechikCbc_t (const KuznyechikCbc_t &)=default
 
KuznyechikCbc_toperator= (const KuznyechikCbc_t &)=default
 
 KuznyechikCbc_t (KuznyechikCbc_t &&)=default
 
KuznyechikCbc_toperator= (KuznyechikCbc_t &&)=default
 
 KuznyechikCbc_t (const uint8_t key[SYMMETRIC_KEY_SIZE], const uint8_t nonce[KUZNYECHIK_CBC_NONCE_SIZE]) noexcept
 Создать контекст блочного шифра. Подробнее...
 
 KuznyechikCbc_t (const std::array< uint8_t, SYMMETRIC_KEY_SIZE > &key, const std::array< uint8_t, KUZNYECHIK_CBC_NONCE_SIZE > &nonce) noexcept
 Создать контекст блочного шифра. Подробнее...
 
 ~KuznyechikCbc_t () noexcept
 
void encrypt_blocks (uint8_t(*blocks)[KUZNYECHIK_BLOCK_SIZE], uintptr_t blocks_len) noexcept
 Зашифровать массив блоков. Подробнее...
 
void decrypt_blocks (uint8_t(*blocks)[KUZNYECHIK_BLOCK_SIZE], uintptr_t blocks_len) noexcept
 Расшифровать массив блоков. Подробнее...
 
intptr_t encrypt_pad (uint8_t *buf, uintptr_t buf_len, uintptr_t pos) const noexcept
 Зашифровать сообщение. Подробнее...
 
intptr_t decrypt_pad (uint8_t *buf, uintptr_t buf_len) const noexcept
 Расшифровать сообщение. Подробнее...
 

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

Блочный шифр с длиной блока 128 бит в режиме простой замены с зацеплением с размером синхропосылки 16 байт.

Определен в ГОСТ 34.13-2015 и ГОСТ 34.13-2018.

См. также
KuznyechikCbc

См. определение в файле gostcrypto.hpp строка 171

Конструктор(ы)

KuznyechikCbc_t ( const KuznyechikCbc_t )
default
KuznyechikCbc_t ( KuznyechikCbc_t &&  )
default
KuznyechikCbc_t ( const uint8_t  key[SYMMETRIC_KEY_SIZE],
const uint8_t  nonce[KUZNYECHIK_CBC_NONCE_SIZE] 
)
inlineexplicitnoexcept

Создать контекст блочного шифра.

Создаёт контекст блочного шифра в режиме простой замены с зацеплением с использованием ключа key и синхропосылки nonce.

Предупреждения
Передача нулевого или некорректного указателя приводит к неопределённому поведению.
Аргументы
key— ненулевой указатель на массив длинной SYMMETRIC_KEY_SIZE байт
nonce— ненулевой указатель на массив длинной KUZNYECHIK_CBC_NONCE_SIZE байт

См. определение в файле gostcrypto.hpp строка 190

KuznyechikCbc_t ( const std::array< uint8_t, SYMMETRIC_KEY_SIZE > &  key,
const std::array< uint8_t, KUZNYECHIK_CBC_NONCE_SIZE > &  nonce 
)
inlineexplicitnoexcept

Создать контекст блочного шифра.

Создаёт контекст блочного шифра в режиме простой замены с зацеплением с использованием ключа key и синхропосылки nonce.

Аргументы
key— ключ
nonce— синхропосылка

См. определение в файле gostcrypto.hpp строка 205

~KuznyechikCbc_t ( )
inlinenoexcept

См. определение в файле gostcrypto.hpp строка 211

Методы

void decrypt_blocks ( uint8_t(*)  blocks[KUZNYECHIK_BLOCK_SIZE],
uintptr_t  blocks_len 
)
inlinenoexcept

Расшифровать массив блоков.

Расшифровывает блоки данных на месте.

Предупреждения
Передача нулевого или некорректного указателя приводит к неопределённому поведению.
Аргументы
blocks— ненулевой указатель на массив блоков. Блок представляет собой последовательность байт длиной KUZNYECHIK_BLOCK_SIZE.
blocks_len— длина массива блоков (в блоках)

См. определение в файле gostcrypto.hpp строка 243

intptr_t decrypt_pad ( uint8_t *  buf,
uintptr_t  buf_len 
) const
inlinenoexcept

Расшифровать сообщение.

Расшифровывает сообщение на месте.

Возвращает ошибку в случае, когда длина буфера не делится на KUZNYECHIK_BLOCK_SIZE или расшифрованное сообщение имеет некорректное дополнение.

Предупреждения
Передача нулевого или некорректного указателя приводит к неопределённому поведению.
Аргументы
buf— ненулевой указатель на массив байт
buf_len— длина буфера (в байтах)
Возвращает
Длину сообщения, в случае успеха или -1, в случае ошибки

См. определение в файле gostcrypto.hpp строка 287

void encrypt_blocks ( uint8_t(*)  blocks[KUZNYECHIK_BLOCK_SIZE],
uintptr_t  blocks_len 
)
inlinenoexcept

Зашифровать массив блоков.

Шифрует блоки данных на месте.

Предупреждения
Передача нулевого или некорректного указателя приводит к неопределённому поведению.
Аргументы
blocks— ненулевой указатель на массив блоков. Блок представляет собой последовательность байт длиной KUZNYECHIK_BLOCK_SIZE.
blocks_len— длина массива блоков (в блоках)

См. определение в файле gostcrypto.hpp строка 227

intptr_t encrypt_pad ( uint8_t *  buf,
uintptr_t  buf_len,
uintptr_t  pos 
) const
inlinenoexcept

Зашифровать сообщение.

Зашифровывает сообщение на месте.

Байты 0..pos буфера buf используются как сообщение, когда же байты pos..buf_len используются как зарезервированное место для дополнения.

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

Предупреждения
Передача нулевого или некорректного указателя приводит к неопределённому поведению.
Аргументы
buf— ненулевой указатель на массив байт
buf_len— длина буфера (в байтах)
pos— индекс байта, с которого начинается дополнение в буфере buf
Возвращает
Длину шифротекста, в случае успеха или -1, в случае ошибки

См. определение в файле gostcrypto.hpp строка 266

KuznyechikCbc_t& operator= ( const KuznyechikCbc_t )
default
KuznyechikCbc_t& operator= ( KuznyechikCbc_t &&  )
default

Объявления и описания членов класса находятся в файле: