Блочный шифр с длиной блока 64 бит в режиме простой замены.
Подробнее...
#include <gostcrypto.hpp>
Блочный шифр с длиной блока 64 бит в режиме простой замены.
Определен в ГОСТ 34.13-2015 и ГОСТ 34.13-2018.
- См. также
- MagmaEcb
См. определение в файле gostcrypto.hpp строка 1295
MagmaEcb_t |
( |
const uint8_t |
key[SYMMETRIC_KEY_SIZE] | ) |
|
|
inlineexplicitnoexcept |
Создать контекст блочного шифра.
Создаёт контекст блочного шифра в режиме простой замены с зацеплением с использованием ключа key
.
- Предупреждения
- Передача нулевого или некорректного указателя приводит к неопределённому поведению.
- Аргументы
-
См. определение в файле gostcrypto.hpp строка 1313
Создать контекст блочного шифра.
Создаёт контекст блочного шифра в режиме простой замены с зацеплением с использованием ключа key
.
- Аргументы
-
См. определение в файле gostcrypto.hpp строка 1327
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
Объявления и описания членов класса находятся в файле: