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

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

#include <gostcrypto.hpp>

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

 KuznyechikEcb_t (const KuznyechikEcb_t &)=default
 
KuznyechikEcb_toperator= (const KuznyechikEcb_t &)=default
 
 KuznyechikEcb_t (KuznyechikEcb_t &&)=default
 
KuznyechikEcb_toperator= (KuznyechikEcb_t &&)=default
 
 KuznyechikEcb_t (const uint8_t key[SYMMETRIC_KEY_SIZE]) noexcept
 Создать контекст блочного шифра. Подробнее...
 
 KuznyechikEcb_t (const std::array< uint8_t, SYMMETRIC_KEY_SIZE > &key) noexcept
 Создать контекст блочного шифра. Подробнее...
 
 ~KuznyechikEcb_t () noexcept
 
void encrypt_blocks (uint8_t(*blocks)[KUZNYECHIK_BLOCK_SIZE], uintptr_t len) noexcept
 Зашифровать массив блоков. Подробнее...
 
void decrypt_blocks (uint8_t(*blocks)[KUZNYECHIK_BLOCK_SIZE], uintptr_t 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 бит в режиме простой замены.

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

См. также
KuznyechikEcb

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

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

KuznyechikEcb_t ( const KuznyechikEcb_t )
default
KuznyechikEcb_t ( KuznyechikEcb_t &&  )
default
KuznyechikEcb_t ( const uint8_t  key[SYMMETRIC_KEY_SIZE])
inlineexplicitnoexcept

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

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

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

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

KuznyechikEcb_t ( const std::array< uint8_t, SYMMETRIC_KEY_SIZE > &  key)
inlineexplicitnoexcept

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

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

Аргументы
key— ключ

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

~KuznyechikEcb_t ( )
inlinenoexcept

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

Методы

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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 строка 1249

KuznyechikEcb_t& operator= ( const KuznyechikEcb_t )
default
KuznyechikEcb_t& operator= ( KuznyechikEcb_t &&  )
default

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