GostCrypto
0.2.0
Криптография, реализованная в соответствии с ГОСТ
|
Закрытый ключ эллиптических кривых. Подробнее...
#include <gostcrypto.hpp>
Открытые члены | |
Ec256PrivateKey_t (const Ec256PrivateKey_t< CurveID > &)=default | |
Ec256PrivateKey_t< CurveID > & | operator= (const Ec256PrivateKey_t< CurveID > &)=default |
Ec256PrivateKey_t (Ec256PrivateKey_t< CurveID > &&) noexcept=default | |
Ec256PrivateKey_t< CurveID > & | operator= (Ec256PrivateKey_t< CurveID > &&) noexcept=default |
~Ec256PrivateKey_t () | |
Ec256PrivateKey_t (const uint8_t rand_bytes[EC_256_WIDTH], intptr_t &error_code) noexcept | |
Создать закрытый ключ. Подробнее... | |
Ec256PrivateKey_t (const std::array< uint8_t, EC_256_WIDTH > &rand_bytes, intptr_t &error_code) noexcept | |
Создать закрытый ключ. Подробнее... | |
Ec256PublicKey_t< CurveID > | get_public_key () const noexcept |
Получить открытый ключ. Подробнее... | |
std::array< uint8_t, EC_256_WIDTH > | to_bytes () const noexcept |
Сериализовать закрытый ключ. Подробнее... | |
intptr_t | sign_hash (const uint8_t hash[STREEBOG256_RESULT_SIZE], const uint8_t rand_bytes[EC_256_WIDTH], uint8_t signature[EC_256_DOUBLE_WIDTH]) const noexcept |
Подписать хэш сообщения. Подробнее... | |
std::array< uint8_t, EC_256_DOUBLE_WIDTH > | sign_hash (const std::array< uint8_t, STREEBOG256_RESULT_SIZE > &hash, const std::array< uint8_t, EC_256_WIDTH > &rand_bytes, intptr_t &error_code) const noexcept |
Подписать хэш сообщения. Подробнее... | |
intptr_t | sign (const uint8_t *msg, uintptr_t msg_len, const uint8_t rand_bytes[EC_256_WIDTH], uint8_t signature[EC_256_DOUBLE_WIDTH]) const noexcept |
Подписать сообщение. Подробнее... | |
intptr_t | sign (const std::vector< uint8_t > &msg, const std::array< uint8_t, EC_256_WIDTH > &rand_bytes, std::array< uint8_t, EC_256_DOUBLE_WIDTH > &signature) const noexcept |
Подписать сообщение. Подробнее... | |
std::array< uint8_t, EC_256_DOUBLE_WIDTH > | sign (const std::vector< uint8_t > &msg, const std::array< uint8_t, EC_256_WIDTH > &rand_bytes, intptr_t &error_code) const noexcept |
Подписать сообщение. Подробнее... | |
std::array< uint8_t, EC_256_WIDTH > | vko256 (const Ec256PublicKey_t< CurveID > &other_pk, intptr_t &error_code) const noexcept |
Выработать общий ключ. Подробнее... | |
std::array< uint8_t, EC_256_WIDTH > | vko256 (const Ec256PublicKey_t< CurveID > &other_pk, intptr_t &error_code, const uint8_t ukm[EC_256_WIDTH]) const noexcept |
Выработать общий ключ. Подробнее... | |
Открытые статические члены | |
static Ec256PrivateKey_t< CurveID > | from_bytes (const uint8_t bytes[EC_256_WIDTH], intptr_t &error_code) noexcept |
Десериалировать закрытый ключ. Подробнее... | |
static Ec256PrivateKey_t< CurveID > | from_bytes (const std::array< uint8_t, EC_256_WIDTH > &rand_bytes, intptr_t &error_code) noexcept |
Десериалировать закрытый ключ. Подробнее... | |
Закрытый ключ эллиптических кривых.
Специализируется перечислением Gost3410_2012_256.
См. определение в файле gostcrypto.hpp строка 2857
|
default |
|
defaultnoexcept |
|
inline |
См. определение в файле gostcrypto.hpp строка 3028
|
inlinenoexcept |
Создать закрытый ключ.
Создаёт закрытый ключ для заданной эллиптической кривой.
rand_bytes | — набор чисел, сгенерированный случайным образом |
error_code | код ошибки: 0, в случае успеха, EC_ERR_CURVE_ID, EC_ERR_BAD_RAND_BYTES в случае ошибки |
См. определение в файле gostcrypto.hpp строка 3043
|
inlineexplicitnoexcept |
Создать закрытый ключ.
Создаёт закрытый ключ для заданной эллиптической кривой.
rand_bytes | — набор чисел, сгенерированный случайным образом |
error_code | код ошибки: 0, в случае успеха, EC_ERR_CURVE_ID, EC_ERR_BAD_RAND_BYTES в случае ошибки |
См. определение в файле gostcrypto.hpp строка 3057
|
inlinestaticnoexcept |
Десериалировать закрытый ключ.
Десериализует закрытый ключ из представления ГОСТ 34.10-2012 раздел 5.2/ГОСТ 34.10-2018 раздел 5.3 во внутреннее представление для заданной эллиптической кривой.
bytes | — сериализованное представление |
error_code | — код ошибки: 0, в случае успеха, EC_ERR_CURVE_ID, EC_ERR_BAD_RAND_BYTES в случае ошибки |
См. определение в файле gostcrypto.hpp строка 3089
|
inlinestaticnoexcept |
Десериалировать закрытый ключ.
Десериализует закрытый ключ из представления ГОСТ 34.10-2012 раздел 5.2/ГОСТ 34.10-2018 раздел 5.3 во внутреннее представление для заданной эллиптической кривой.
rand_bytes | — сериализованное представление |
error_code | — код ошибки: 0, в случае успеха, EC_ERR_CURVE_ID, EC_ERR_BAD_RAND_BYTES в случае ошибки |
См. определение в файле gostcrypto.hpp строка 3106
|
inlinenoexcept |
Получить открытый ключ.
Получает открытый ключ из закрытого ключа для заданной эллиптической кривой.
См. определение в файле gostcrypto.hpp строка 3070
|
default |
|
defaultnoexcept |
|
inlinenoexcept |
Подписать сообщение.
Подписывает сообщение с помощью закрытого ключа для заданной эллиптической кривой.
msg | — указатель на сообщение |
msg_len | — длина сообщения |
rand_bytes | — набор чисел, сгенерированный случайным образом |
signature | — результирующая подпись |
См. определение в файле gostcrypto.hpp строка 3182
|
inlinenoexcept |
Подписать сообщение.
Подписывает сообщение с помощью закрытого ключа для заданной эллиптической кривой.
msg | — указатель на сообщение |
rand_bytes | — набор чисел, сгенерированный случайным образом |
signature | — результирующая подпись |
См. определение в файле gostcrypto.hpp строка 3202
|
inlinenoexcept |
Подписать сообщение.
Подписывает сообщение с помощью закрытого ключа для заданной эллиптической кривой.
msg | — указатель на сообщение |
rand_bytes | — набор чисел, сгенерированный случайным образом |
error_code | — код ошибки: 0, в случае успеха, EC_ERR_CURVE_ID, EC_ERR_BAD_RAND_BYTES в случае ошибки |
См. определение в файле gostcrypto.hpp строка 3218
|
inlinenoexcept |
Подписать хэш сообщения.
Подписывает хэш сообщения с помощью закрытого ключа для заданной эллиптической кривой. По ГОСТу хэш сообщения должен быть вычислен с помощью функции Стрибог.
hash | — хэш сообщения |
rand_bytes | — набор чисел, сгенерированный случайным образом |
signature | — результирующая подпись |
См. определение в файле gostcrypto.hpp строка 3139
|
inlinenoexcept |
Подписать хэш сообщения.
Подписывает хэш сообщения с помощью закрытого ключа для заданной эллиптической кривой. По ГОСТу хэш сообщения должен быть вычислен с помощью функции Стрибог.
hash | — хэш сообщения |
rand_bytes | — набор чисел, сгенерированный случайным образом |
error_code | — код ошибки: 0, в случае успеха, EC_ERR_CURVE_ID, EC_ERR_BAD_RAND_BYTES в случае ошибки |
См. определение в файле gostcrypto.hpp строка 3158
|
inlinenoexcept |
Сериализовать закрытый ключ.
Сериализует закрытый ключ из внутреннего представления в представление ГОСТ 34.10-2012 раздел 5.2 для заданной эллиптической кривой.
См. определение в файле gostcrypto.hpp строка 3118
|
inlinenoexcept |
Выработать общий ключ.
Вырабатывает 256-битный алгоритм выработки ключей обмена длиной 256 бит, используя 256-битные эллиптические кривые.
other_pk | — чужой открытый ключ |
error_code | — код ошибки: 0, в случае успеха, EC_ERR_CURVE_ID, EC_ERR_VKO_UKM в случае ошибки |
См. определение в файле gostcrypto.hpp строка 3236
|
inlinenoexcept |
Выработать общий ключ.
Вырабатывает 256-битный алгоритм выработки ключей обмена длиной 256 бит, используя 256-битные эллиптические кривые.
Если в ukm
передан нулевой указатель, то используется значение по умолчанию равное единице. Если указатель не нулевой, то значение на которое он указывает не должно быть равным нулю по модулю простого числа эллиптической кривой. В случае передачи такого значения возвращается код ошибки EC_ERR_VKO_UKM. Если используемый приватный или публичный ключ статичны (т.е. используются неэфемерные ключи), то рекомендуется использовать ukm
, содержащий не менее 128 переменных бит.
other_pk | — чужой открытый ключ |
ukm | — указатель на пользовательский ключевой материал (опционально) |
error_code | — код ошибки: 0, в случае успеха, EC_ERR_CURVE_ID, EC_ERR_VKO_UKM в случае ошибки |
См. определение в файле gostcrypto.hpp строка 3267