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

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

#include <gostcrypto.hpp>

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

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

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

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

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

См. также
MagmaEcb

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

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

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

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

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

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

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

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

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

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

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

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

~MagmaEcb_t ( )
inlinenoexcept

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

Методы

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

MagmaEcb_t& operator= ( const MagmaEcb_t )
default
MagmaEcb_t& operator= ( MagmaEcb_t &&  )
default

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