GostCrypto
0.2.0
Криптография, реализованная в соответствии с ГОСТ
|
Закрытый ключ эллиптических кривых. Подробнее...
#include <gostcrypto.hpp>
Открытые члены | |
Ec512PrivateKey_t (const Ec512PrivateKey_t< CurveID > &)=default | |
Ec512PrivateKey_t< CurveID > & | operator= (const Ec512PrivateKey_t< CurveID > &)=default |
Ec512PrivateKey_t (Ec512PrivateKey_t< CurveID > &&) noexcept=default | |
Ec512PrivateKey_t< CurveID > & | operator= (Ec512PrivateKey_t< CurveID > &&) noexcept=default |
~Ec512PrivateKey_t () | |
Ec512PrivateKey_t (const uint8_t rand_bytes[EC_512_WIDTH], intptr_t &error_code) noexcept | |
Создать закрытый ключ. Подробнее... | |
Ec512PrivateKey_t (const std::array< uint8_t, EC_512_WIDTH > &rand_bytes, intptr_t &error_code) noexcept | |
Создать закрытый ключ. Подробнее... | |
Ec512PublicKey_t< CurveID > | get_public_key () const noexcept |
Получить открытый ключ. Подробнее... | |
std::array< uint8_t, EC_512_WIDTH > | to_bytes () const noexcept |
Сериализовать закрытый ключ. Подробнее... | |
intptr_t | sign_hash (const uint8_t hash[STREEBOG512_RESULT_SIZE], const uint8_t rand_bytes[EC_512_WIDTH], uint8_t signature[EC_512_DOUBLE_WIDTH]) const noexcept |
Подписать хэш сообщения. Подробнее... | |
std::array< uint8_t, EC_512_DOUBLE_WIDTH > | sign_hash (const std::array< uint8_t, STREEBOG512_RESULT_SIZE > &hash, const std::array< uint8_t, EC_512_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_512_WIDTH], uint8_t signature[EC_512_DOUBLE_WIDTH]) const noexcept |
Подписать сообщение. Подробнее... | |
intptr_t | sign (const std::vector< uint8_t > &msg, const std::array< uint8_t, EC_512_WIDTH > &rand_bytes, std::array< uint8_t, EC_512_DOUBLE_WIDTH > &signature) const noexcept |
Подписать сообщение. Подробнее... | |
std::array< uint8_t, EC_512_DOUBLE_WIDTH > | sign (const std::vector< uint8_t > &msg, const std::array< uint8_t, EC_512_WIDTH > &rand_bytes, intptr_t &error_code) const noexcept |
Подписать сообщение. Подробнее... | |
std::array< uint8_t, EC_256_WIDTH > | vko256 (const Ec512PublicKey_t< CurveID > &other_pk, intptr_t &error_code) const noexcept |
Выработать общий ключ. Подробнее... | |
std::array< uint8_t, EC_256_WIDTH > | vko256 (const Ec512PublicKey_t< CurveID > &other_pk, intptr_t &error_code, const uint8_t ukm[EC_512_WIDTH]) const noexcept |
Выработать общий ключ. Подробнее... | |
std::array< uint8_t, EC_512_WIDTH > | vko512 (const Ec512PublicKey_t< CurveID > &other_pk, intptr_t &error_code) const noexcept |
Выработать общий ключ. Подробнее... | |
std::array< uint8_t, EC_512_WIDTH > | vko512 (const Ec512PublicKey_t< CurveID > &other_pk, intptr_t &error_code, const uint8_t ukm[EC_512_WIDTH]) const noexcept |
Выработать общий ключ. Подробнее... | |
Открытые статические члены | |
static Ec512PrivateKey_t< CurveID > | from_bytes (const uint8_t bytes[EC_512_WIDTH], intptr_t &error_code) noexcept |
Десериалировать закрытый ключ. Подробнее... | |
static Ec512PrivateKey_t< CurveID > | from_bytes (const std::array< uint8_t, EC_512_WIDTH > &rand_bytes, intptr_t &error_code) noexcept |
Десериалировать закрытый ключ. Подробнее... | |
Закрытый ключ эллиптических кривых.
Специализируется перечислением Gost3410_2012_512.
См. определение в файле gostcrypto.hpp строка 2348
|
default |
|
defaultnoexcept |
|
inline |
См. определение в файле gostcrypto.hpp строка 2519
|
inlinenoexcept |
Создать закрытый ключ.
Создаёт закрытый ключ для заданной эллиптической кривой.
rand_bytes | — набор чисел, сгенерированный случайным образом |
error_code | код ошибки: 0, в случае успеха, EC_ERR_CURVE_ID, EC_ERR_BAD_RAND_BYTES в случае ошибки |
См. определение в файле gostcrypto.hpp строка 2534
|
inlineexplicitnoexcept |
Создать закрытый ключ.
Создаёт закрытый ключ для заданной эллиптической кривой.
rand_bytes | — набор чисел, сгенерированный случайным образом |
error_code | код ошибки: 0, в случае успеха, EC_ERR_CURVE_ID, EC_ERR_BAD_RAND_BYTES в случае ошибки |
См. определение в файле gostcrypto.hpp строка 2548
|
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 строка 2580
|
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 строка 2597
|
inlinenoexcept |
Получить открытый ключ.
Получает открытый ключ из закрытого ключа для заданной эллиптической кривой.
См. определение в файле gostcrypto.hpp строка 2561
|
default |
|
defaultnoexcept |
|
inlinenoexcept |
Подписать сообщение.
Подписывает сообщение с помощью закрытого ключа для заданной эллиптической кривой.
msg | — указатель на сообщение |
msg_len | — длина сообщения |
rand_bytes | — набор чисел, сгенерированный случайным образом |
signature | — результирующая подпись |
См. определение в файле gostcrypto.hpp строка 2673
|
inlinenoexcept |
Подписать сообщение.
Подписывает сообщение с помощью закрытого ключа для заданной эллиптической кривой.
msg | — указатель на сообщение |
rand_bytes | — набор чисел, сгенерированный случайным образом |
signature | — результирующая подпись |
См. определение в файле gostcrypto.hpp строка 2693
|
inlinenoexcept |
Подписать сообщение.
Подписывает сообщение с помощью закрытого ключа для заданной эллиптической кривой.
msg | — указатель на сообщение |
rand_bytes | — набор чисел, сгенерированный случайным образом |
error_code | — код ошибки: 0, в случае успеха, EC_ERR_CURVE_ID, EC_ERR_BAD_RAND_BYTES в случае ошибки |
См. определение в файле gostcrypto.hpp строка 2709
|
inlinenoexcept |
Подписать хэш сообщения.
Подписывает хэш сообщения с помощью закрытого ключа для заданной эллиптической кривой. По ГОСТу хэш сообщения должен быть вычислен с помощью функции Стрибог.
hash | — хэш сообщения |
rand_bytes | — набор чисел, сгенерированный случайным образом |
signature | — результирующая подпись |
См. определение в файле gostcrypto.hpp строка 2630
|
inlinenoexcept |
Подписать хэш сообщения.
Подписывает хэш сообщения с помощью закрытого ключа для заданной эллиптической кривой. По ГОСТу хэш сообщения должен быть вычислен с помощью функции Стрибог.
hash | — хэш сообщения |
rand_bytes | — набор чисел, сгенерированный случайным образом |
error_code | — код ошибки: 0, в случае успеха, EC_ERR_CURVE_ID, EC_ERR_BAD_RAND_BYTES в случае ошибки |
См. определение в файле gostcrypto.hpp строка 2649
|
inlinenoexcept |
Сериализовать закрытый ключ.
Сериализует закрытый ключ из внутреннего представления в представление ГОСТ 34.10-2012 раздел 5.2/ГОСТ 34.10-2018 раздел 5.3 для заданной эллиптической кривой.
См. определение в файле gostcrypto.hpp строка 2609
|
inlinenoexcept |
Выработать общий ключ.
Вырабатывает алгоритм выработки ключей обмена длиной 256 бит, используя 512-битные эллиптические кривые.
other_pk | — чужой открытый ключ |
error_code | — код ошибки: 0, в случае успеха, EC_ERR_CURVE_ID, EC_ERR_VKO_UKM в случае ошибки |
См. определение в файле gostcrypto.hpp строка 2727
|
inlinenoexcept |
Выработать общий ключ.
Вырабатывает алгоритм выработки ключей обмена длиной 256 бит, используя 512-битные эллиптические кривые.
Если в ukm
передан нулевой указатель, то используется значение по умолчанию равное единице. Если указатель не нулевой, то значение на которое он указывает не должно быть равным нулю по модулю простого числа эллиптической кривой. В случае передачи такого значения возвращается код ошибки EC_ERR_VKO_UKM. Если используемый приватный или публичный ключ статичны (т.е. используются неэфемерные ключи), то рекомендуется использовать ukm
, содержащий не менее 128 переменных бит.
other_pk | — чужой открытый ключ |
ukm | — указатель на пользовательский ключевой материал (опционально) |
error_code | — код ошибки: 0, в случае успеха, EC_ERR_CURVE_ID, EC_ERR_VKO_UKM в случае ошибки |
См. определение в файле gostcrypto.hpp строка 2758
|
inlinenoexcept |
Выработать общий ключ.
Вырабатывает алгоритм выработки ключей обмена длиной 512 бит, используя 512-битные эллиптические кривые.
other_pk | — чужой открытый ключ |
error_code | — код ошибки: 0, в случае успеха, EC_ERR_CURVE_ID, EC_ERR_VKO_UKM в случае ошибки |
См. определение в файле gostcrypto.hpp строка 2779
|
inlinenoexcept |
Выработать общий ключ.
Вырабатывает алгоритм выработки ключей обмена длиной 512 бит, используя 512-битные эллиптические кривые.
Если в ukm
передан нулевой указатель, то используется значение по умолчанию равное единице. Если указатель не нулевой, то значение на которое он указывает не должно быть равным нулю по модулю простого числа эллиптической кривой. В случае передачи такого значения возвращается код ошибки EC_ERR_VKO_UKM. Если используемый приватный или публичный ключ статичны (т.е. используются неэфемерные ключи), то рекомендуется использовать ukm
, содержащий не менее 128 переменных бит.
other_pk | — чужой открытый ключ |
ukm | — указатель на пользовательский ключевой материал (опционально) |
error_code | — код ошибки: 0, в случае успеха, EC_ERR_CURVE_ID, EC_ERR_VKO_UKM в случае ошибки |
См. определение в файле gostcrypto.hpp строка 2810