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

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

#include <gostcrypto.hpp>

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

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

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

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

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

См. также
MagmaCbc

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

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

MagmaCbc_t ( const MagmaCbc_t )
default
MagmaCbc_t ( MagmaCbc_t &&  )
default
MagmaCbc_t ( const uint8_t  key[SYMMETRIC_KEY_SIZE],
const uint8_t  nonce[MAGMA_CBC_NONCE_SIZE] 
)
inlineexplicitnoexcept

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

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

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

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

MagmaCbc_t ( const std::array< uint8_t, SYMMETRIC_KEY_SIZE > &  key,
const std::array< uint8_t, MAGMA_CBC_NONCE_SIZE > &  nonce 
)
inlineexplicitnoexcept

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

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

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

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

~MagmaCbc_t ( )
inlinenoexcept

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

Методы

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

MagmaCbc_t& operator= ( const MagmaCbc_t )
default
MagmaCbc_t& operator= ( MagmaCbc_t &&  )
default

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