bign.h - Man Page

Алгоритмы СТБ 34.101.45 (bign)

Synopsis

#include 'bee2/defs.h'

Классы

struct bign_params
Долговременные параметры bign.

Определения типов

typedef err_t(* bign_pgen_calc_q) (bign_params *params, void *state)
Вычисление порядка группы точек эллиптической кривой
typedef err_t(* bign_pgen_on_seed) (const bign_params *params, void *state)
Обработка затравочного значения

Функции

err_t bignParamsStd (bign_params *params, const char *name)
Загрузка стандартных долговременных параметров
err_t bignParamsVal (const bign_params *params)
Проверка долговременных параметров
err_t bignParamsGen (bign_params *params, bign_pgen_calc_q calc_q, bign_pgen_on_seed on_seed, void *state)
Генерация долговременных параметров
err_t bignParamsEnc (octet der[], size_t *count, const bign_params *params)
Кодирование параметров
err_t bignParamsDec (bign_params *params, const octet der[], size_t count)
Декодирование параметров
err_t bignOidToDER (octet der[], size_t *count, const char *oid)
Кодирование идентификатора объекта
err_t bignKeypairGen (octet privkey[], octet pubkey[], const bign_params *params, gen_i rng, void *rng_state)
Генерация пары ключей
err_t bignKeypairVal (const bign_params *params, const octet privkey[], const octet pubkey[])
Проверка пары ключей
err_t bignPubkeyVal (const bign_params *params, const octet pubkey[])
Проверка открытого ключа
err_t bignPubkeyCalc (octet pubkey[], const bign_params *params, const octet privkey[])
Построение открытого ключа по личному
err_t bignDH (octet key[], const bign_params *params, const octet privkey[], const octet pubkey[], size_t key_len)
Построение общего ключа Диффи -- Хеллмана
err_t bignSign (octet sig[], const bign_params *params, const octet oid_der[], size_t oid_len, const octet hash[], const octet privkey[], gen_i rng, void *rng_state)
Выработка ЭЦП
err_t bignSign2 (octet sig[], const bign_params *params, const octet oid_der[], size_t oid_len, const octet hash[], const octet privkey[], const void *t, size_t t_len)
Детерминированная выработка ЭЦП
err_t bignVerify (const bign_params *params, const octet oid_der[], size_t oid_len, const octet hash[], const octet sig[], const octet pubkey[])
Проверка ЭЦП
err_t bignKeyWrap (octet token[], const bign_params *params, const octet key[], size_t len, const octet header[16], const octet pubkey[], gen_i rng, void *rng_state)
Создание токена ключа
err_t bignKeyUnwrap (octet key[], const bign_params *params, const octet token[], size_t len, const octet header[16], const octet privkey[])
Разбор токена ключа
err_t bignIdExtract (octet id_privkey[], octet id_pubkey[], const bign_params *params, const octet oid_der[], size_t oid_len, const octet id_hash[], const octet sig[], octet pubkey[])
Извлечение пары ключей
err_t bignIdSign (octet id_sig[], const bign_params *params, const octet oid_der[], size_t oid_len, const octet id_hash[], const octet hash[], const octet id_privkey[], gen_i rng, void *rng_state)
Выработка идентификационной ЭЦП
err_t bignIdSign2 (octet id_sig[], const bign_params *params, const octet oid_der[], size_t oid_len, const octet id_hash[], const octet hash[], const octet id_privkey[], const void *t, size_t t_len)
Детерминированная выработка идентификационной ЭЦП
err_t bignIdVerify (const bign_params *params, const octet oid_der[], size_t oid_len, const octet id_hash[], const octet hash[], const octet id_sig[], const octet id_pubkey[], const octet pubkey[])
Проверка идентификационной ЭЦП

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

СТБ 34.101.45 (bign): Общие положения

Реализованы алгоритмы СТБ 34.101.45 (bign). При ссылках на алгоритмы, таблицы, другие объекты подразумеваются разделы СТБ 34.101.45-2013, в которых эти объекты определены.

Ожидается [ERR_BAD_INPUT]

Все входные указатели корректны.

Регулярность

todo

Идентификатор объекта

В функциях ЭЦП используется идентификатор используемого алгоритма хэширования. Идентификатор представляет собой последовательность неотрицательных целых чисел {d1 d2 ... dn}. Эта последовательность должна удовлетворять базовым ограничениям ACH.1 (см. приложение A) и, дополнительно, числа di не должны превосходить 2^32 - 1 = 4294967295.

Идентификатор задается либо строкой "d1.d2....dn", либо DER-кодом. Если идентификатор задается строкой, то числа di должны записываться без лидирующих нулей.

Функция bignOidEncode() выполняет преобразование строкового представления в DER-код.

Если идентификатор некорректен, то функции, в которых он используется, возвращают код ERR_BAD_OID.

Идентификационная ЭЦП

Идентификационная подпись при передаче и хранении должна объединяться с открытым ключом (см. Д.3). Объединенная подпись состоит из 7 * l / 8 октетов и включает две части: первая часть -- собственно подпись (3 * l / 8 октетов), вторая часть -- открытый ключ (l / 2 октетов).

Типы

typedef err_t(* bign_pgen_calc_q) (bign_params *params, void *state)

Определяется порядок params->q группы точек эллиптической кривой, заданной параметрами params->p, params->a и params->b. При вычислениях используется состояние state.

Возвращает

ERR_OK, если порядок успешно вычислен, и код ошибки в противном случае.

Прим.

Функция может возвращать ERR_NO_RESULT, если порядок окончательно не вычислен или заведомо не удовлетворяет требованиям СТБ 34.101.45, например, является составным.

Аргументы

params [in, out] долговременные параметры  
state [in, out] состояние

typedef err_t(* bign_pgen_on_seed) (const bign_params *params, void *state)

Выполняется обработка очередного затравочного значения params->seed в процессе генерации долговременных параметров. При вычислениях используется состояние state.

Возвращает

ERR_OK, если затравочное значение успешно обработано, и код ошибки в противном случае.

Прим.

В момент обработки действительны параметры params->l, params->p, params->a и params->b. Описываемая этими параметрами эллиптическая кривая не обязательно является корректной.

Аргументы

params долговременные параметры  
state [in, out] состояние

Функции

err_t bignDH (octet key[], const bign_params * params, const octet privkey[], const octet pubkey[], size_t key_len)

При долговременных параметрах params по личному ключу [l / 4]privkey и открытому ключу [l / 2]pubkey противоположной стороны строится общий ключ [key_len]key. Общий ключ определяется как privkey-кратное ключа pubkey, что соответствует протоколу Диффи -- Хеллмана.

Ожидается [ERR_BAD_PARAMS]

Параметры params корректны.

Ожидается [ERR_BAD_PRIVKEY]

Личный ключ privkey корректен.

Ожидается [ERR_BAD_PUBKEY]

Открытый ключ pubkey корректен.

Ожидается [ERR_BAD_SHAREDKEY]

key_len <= l / 2.

Возвращает

ERR_OK, если общий ключ успешно построен, и код ошибки в противном случае.

Аргументы

key общий ключ  
params долговременные параметры  
privkey личный ключ  
pubkey открытый ключ (другой стороны)  
key_len длина key в октетах

err_t bignIdExtract (octet id_privkey[], octet id_pubkey[], const bign_params * params, const octet oid_der[], size_t oid_len, const octet id_hash[], const octet sig[], octet pubkey[])

Из подписи [3 * l / 8]sig идентификатора с хэш-значением [l / 4]id_hash извлекаются личный [l / 4]id_privkey и открытый [l / 2]id_pubkey ключи. Используются долговременные параметры params и открытый ключ [l / 2]pubkey доверенной стороны. Считается, что хэш-значение id_hash получено с помощью алгоритма с идентификатором [oid_len]oid_der, заданным DER-кодом.

Ожидается [ERR_BAD_PARAMS]

Параметры params корректны.

Ожидается [ERR_BAD_OID]

Идентификатор oid_der корректен.

Ожидается [ERR_BAD_PUBKEY]

Открытый ключ pubkey корректен.

Возвращает

ERR_OK, если ключи успешно извлечены, и код ошибки в противном случае.

Прим.

Реализован алгоритм B.2.3.

Одновременно с извлечением ключей проверяется подпись sig. Если подпись некорректна, то будет возвращен код ERR_BAD_SIG.

Аргументы

id_privkey личный ключ  
id_pubkey открытый ключ  
params долговременные параметры  
oid_der идентификатор хэш-алгоритма  
oid_len длина oid_der в октетах  
id_hash хэш-значение идентификатора  
sig подпись идентификатора  
pubkey открытый ключ доверенной стороны

err_t bignIdSign (octet id_sig[], const bign_params * params, const octet oid_der[], size_t oid_len, const octet id_hash[], const octet hash[], const octet id_privkey[], gen_i rng, void * rng_state)

Вырабатывается идентификационная подпись [3 * l / 8]id_sig сообщения с хэш-значением [l / 4]hash. Подпись вырабатывается на личном ключе [l / 4]id_privkey стороны, которая имеет идентификатор с хэш-значением [l / 4]id_hash. Считается, что хэш-значения id_hash и hash получены с помощью алгоритма с идентификатором [oid_len]oid_der, заданным DER-кодом. При выработке ЭЦП используются долговременные параметры params и генератор rng с состоянием rng_state.

Ожидается [ERR_BAD_PARAMS]

Параметры params корректны.

Ожидается [ERR_BAD_OID]

Идентификатор oid_der корректен.

Ожидается [ERR_BAD_PRIVKEY]

Ключ id_privkey получен с помощью функции bignIdExtract().

Ожидается [ERR_BAD_RNG]

Генератор rng (с состоянием rng_state) корректен.

Ожидается

Генератор rng является криптографически стойким.

Возвращает

ERR_OK, если подпись выработана, и код ошибки в противном случае.

Прим.

Реализован алгоритм B.2.4.

Аргументы

id_sig идентификационная подпись  
params долговременные параметры  
oid_der идентификатор хэш-алгоритма  
oid_len длина oid_der в октетах  
id_hash хэш-значение идентификатора  
hash хэш-значение сообщения  
id_privkey личный ключ  
rng генератор случайных чисел  
rng_state [in,out] состояние генератора

err_t bignIdSign2 (octet id_sig[], const bign_params * params, const octet oid_der[], size_t oid_len, const octet id_hash[], const octet hash[], const octet id_privkey[], const void * t, size_t t_len)

Вырабатывается идентификационная подпись [3 * l / 8]id_sig сообщения с хэш-значением [l / 4]hash. Подпись вырабатывается на личном ключе [l / 4]id_privkey стороны, которая имеет идентификатор с хэш-значением [l / 4]id_hash. Считается, что хэш-значения id_hash и hash получены с помощью алгоритма с идентификатором [oid_len]oid_der, заданным DER-кодом. При выработке ЭЦП используются долговременные параметры params. Одноразовый личный ключ генерируется по алгоритму 6.3.3 с использованием дополнительных данных [t_len]t. Если t == 0, то дополнительные данные не используются.

Ожидается [ERR_BAD_PARAMS]

Параметры params корректны.

Ожидается [ERR_BAD_OID]

Идентификатор oid_der корректен.

Ожидается [ERR_BAD_PRIVKEY]

Ключ id_privkey получен с помощью функции bignIdExtract().

Возвращает

ERR_OK, если подпись выработана, и код ошибки в противном случае.

Прим.

Реализованы алгоритмы B.2.4 и 6.3.3.

Аргументы

id_sig идентификационная подпись  
params долговременные параметры  
oid_der идентификатор хэш-алгоритма  
oid_len длина oid_der в октетах  
id_hash хэш-значение идентификатора  
hash хэш-значение сообщения  
id_privkey личный ключ  
t дополнительные данные  
t_len длина t в октетах

err_t bignIdVerify (const bign_params * params, const octet oid_der[], size_t oid_len, const octet id_hash[], const octet hash[], const octet id_sig[], const octet id_pubkey[], const octet pubkey[])

Проверяется идентификационная ЭЦП [3 * l / 8]id_sig сообщения с хэш-значением [l / 4]hash, выработанная стороной, хэш-значение идентификатора которой есть [l / 4]id_hash. При проверке используются долговременные параметры params, открытый ключ [l / 2]id_pubkey и открытый ключ доверенной стороны [l / 4]pubkey. Считается, что хэш-значения id_hash, hash получены с помощью алгоритма с идентификатором [oid_len]oid_der, заданным DER-кодом.

Ожидается [ERR_BAD_PARAMS]

Параметры params корректны.

Ожидается [ERR_BAD_OID]

Идентификатор oid_der корректен.

Ожидается [ERR_BAD_PUBKEY]

  • открытый ключ id_pubkey получен с помощью функции bignIdExtract();
  • открытый ключ pubkey корректен.
Возвращает

ERR_OK, если подпись корректна, и код ошибки в противном случае.

Прим.

Реализован алгоритм B.2.5.

При нарушении ограничений на ЭЦП возвращается код ERR_BAD_SIG.

Аргументы

params долговременные параметры  
oid_der идентификатор хэш-алгоритма  
oid_len длина oid_der в октетах  
id_hash хэш-значение идентификатора  
hash хэш-значение сообщения  
id_sig подпись  
id_pubkey открытый ключ  
pubkey открытый ключ доверенной стороны

err_t bignKeypairGen (octet privkey[], octet pubkey[], const bign_params * params, gen_i rng, void * rng_state)

При долговременных параметрах params генерируются личный [l / 4]privkey и открытый [l / 2]pubkey ключи. При генерации используется генератор rng и его состояние rng_state.

Ожидается [ERR_BAD_PARAMS]

Параметры params корректны.

Ожидается [ERR_BAD_RNG]

Генератор rng (с состоянием rng_state) корректен.

Ожидается

Используется криптографически стойкий генератор rng.

Возвращает

ERR_OK, если ключи успешно сгенерированы, и код ошибки в противном случае.

Прим.

Реализован алгоритм 6.2.2.

Аргументы

privkey личный ключ  
pubkey открытый ключ  
params долговременные параметры  
rng генератор случайных чисел  
rng_state [in,out] состояние генератора

err_t bignKeypairVal (const bign_params * params, const octet privkey[], const octet pubkey[])

При долговременных параметрах params проверяется корректность личного ключа [l / 8]privkey и соответствие ему открытого ключа [l / 2]pubkey.

Ожидается [ERR_BAD_PARAMS]

Параметры params корректны.

Возвращает

ERR_OK, если пара корректна, и код ошибки в противном случае.

Аргументы

params долговременные параметры  
privkey личный ключ  
pubkey открытый ключ

err_t bignKeyUnwrap (octet key[], const bign_params * params, const octet token[], size_t len, const octet header[16], const octet privkey[])

Определяется ключ [len - (l / 4 + 16)]key, который имеет заголовок [16]header и содержится в токене [len]token. При разборе токена используются долговременные параметры params и личный ключ [l / 2]privkey.

Ожидается [ERR_BAD_PARAMS]

Параметры params корректны.

Ожидается [ERR_BAD_PRIVKEY]

Личный ключ privkey корректен.

Возвращает

ERR_OK, если токен успешно разобран, и код ошибки в противном случае.

Прим.

Реализован алгоритм 7.2.4.

Может передаваться нулевой указатель header. В этом случае будет использоваться заголовок из всех нулей.

При нарушении целостности токена возвращается код ERR_BAD_KEYTOKEN. Этот код будет возвращен, если len < 32 + l / 4.

Аргументы

key ключ  
params долговременные параметры  
token токен ключа  
len длина токена в октетах  
header заголовок ключа  
privkey личный ключ получателя

err_t bignKeyWrap (octet token[], const bign_params * params, const octet key[], size_t len, const octet header[16], const octet pubkey[], gen_i rng, void * rng_state)

Создается токен [l / 4 + 16 + len]token ключа [len]key с заголовком [16]header. При создании токена используются долговременные параметры params, открытый ключ получателя pubkey и генератор rng с состоянием rng_state.

Ожидается [ERR_BAD_PARAMS]

Параметры params корректны.

Ожидается [ERR_BAD_INPUT]

len >= 16.

Ожидается [ERR_BAD_PUBKEY]

Открытый ключ pubkey корректен.

Ожидается [ERR_BAD_RNG]

Генератор rng (с состоянием rng_state) корректен.

Ожидается

Используется криптографически стойкий генератор rng.

Возвращает

ERR_OK, если токен успешно создан, и код ошибки в противном случае.

Прим.

Реализован алгоритм 7.2.3.

Может передаваться нулевой указатель header. В этом случае будет использоваться заголовок из всех нулей.

Аргументы

token токен ключа  
params долговременные параметры  
key транспортируемый ключ  
len длина ключа в октетах  
header заголовок ключа  
pubkey открытый ключ получателя  
rng генератор случайных чисел  
rng_state [in,out] состояние генератора

err_t bignOidToDER (octet der[], size_t * count, const char * oid)

По строковому представлению oid идентификатора объекта строится его DER-код [?count]der.

Возвращает

ERR_OK, если кодирование успешно выполнено или длина DER-кода успешно рассчитана, и код ошибки в противном случае.

Аргументы

der DER-код идентификатора  
count [in,out] длина буфера der / длина DER-кода  
oid строковое представление идентификатора

err_t bignParamsDec (bign_params * params, const octet der[], size_t count)

По DER-коду [count]der определяются долговременные параметры params.

Возвращает

ERR_OK в случае успеха и код ошибки в противном случае.

Прим.

Формат кода определяется типом ECParameters, установленным в Д.11.

Длина der должна в точности равняться count. Противное считается ошибкой формата.

Аргументы

params долговременные параметры  
der DER-код  
count длина der в октетах

err_t bignParamsEnc (octet der[], size_t * count, const bign_params * params)

Долговременные параметры params представляются DER-кодом [?count]der.

Возвращает

ERR_OK в случае успеха и код ошибки в противном случае.

Прим.

Формат кода определяется типом ECParameters, установленным в Д.11.

Аргументы

der DER-код  
count [in,out] длина der / длина DER-кода  
params долговременные параметры

err_t bignParamsGen (bign_params * params, bign_pgen_calc_q calc_q, bign_pgen_on_seed on_seed, void * state)

По параметрам params->l, params->p, params->a и params->seed вычисляются и сохраняются в params остальные долговременные параметры. Если построенные params не удовлетворяют требованиям СТБ 34.101.45, то параметр params->seed (как число little-endian) увеличивается на 1 по модулю 2^64, вычисление и проверка параметров продолжаются. Параметр params->q вычисляется с помощью функции calc_q(). Функция on_seed() получает управление всякий раз перед обработкой очередного seed. Функции calc_q() и on_seed() используют в своей работе состояние state.

Ожидается [ERR_BAD_INPUT]

calc_q != 0.

Прим.

Указатель on_seed может быть нулевым, т.е. функция on_seed() может не использоваться.

Ожидается

Функции calc_q() и on_seed() (при on_seed != 0) корректны. В частности, функция calc_q() корректно вычисляет порядок группы точек.

Прим.

Если возвращаемый функциями calc_q() и on_seed() код отличен от ERR_OK, то вычисления завершаются с возвратом этого кода. Исключение составляет случай, когда функция calc_q() возвращает код ERR_NO_RESULT. В этом случае выполняется переход к следующему seed и вычисления продолжаются.

Через возврат кода ошибки функцией on_seed() можно прерывать длительные вычисления.

Возвращает

ERR_OK, если долговременные параметры успешно сгенерированы, и код ошибки в противном случае.

Прим.

Реализован алгоритм 6.1.3.

Аргументы

params [in, out] долговременные параметры  
calc_q функция вычисления порядка q  
on_seed функция обработки нового seed  
state [in, out] состояние функций

err_t bignParamsStd (bign_params * params, const char * name)

В params загружаются стандартные долговременные параметры с именем name. Поддерживаются следующие имена: "1.2.112.0.2.0.34.101.45.3.1", "1.2.112.0.2.0.34.101.45.3.2", "1.2.112.0.2.0.34.101.45.3.3". Это имена стандартных параметров, заданных в таблицах Б.1, Б.2, Б.3.

Возвращает

ERR_OK, если параметры успешно загружены, и код ошибки в противном случае.

Аргументы

params стандартные параметры  
name имя параметров

err_t bignParamsVal (const bign_params * params)

Проверяется корректность долговременных параметров params.

Возвращает

ERR_OK, если параметры корректны, и код ошибки в противном случае.

Прим.

Реализован алгоритм 6.1.4.

Аргументы

params долговременные параметры

err_t bignPubkeyCalc (octet pubkey[], const bign_params * params, const octet privkey[])

При долговременных параметрах params по личному ключу [l / 4]privkey строится открытый ключ [l / 2]pubkey.

Ожидается [ERR_BAD_PARAMS]

Параметры params корректны.

Ожидается [ERR_BAD_PRIVKEY]

Личный ключ privkey корректен.

Возвращает

ERR_OK, если открытый ключ успешно построен, и код ошибки в противном случае.

Аргументы

pubkey открытый ключ  
params долговременные параметры  
privkey личный ключ

err_t bignPubkeyVal (const bign_params * params, const octet pubkey[])

При долговременных параметрах params проверяется корректность открытого ключа [l / 2]pubkey.

Ожидается [ERR_BAD_PARAMS]

Параметры params корректны.

Возвращает

ERR_OK, если ключ корректен, и код ошибки в противном случае.

Прим.

Реализован алгоритм 6.2.3.

Аргументы

params долговременные параметры  
pubkey проверяемый ключ

err_t bignSign (octet sig[], const bign_params * params, const octet oid_der[], size_t oid_len, const octet hash[], const octet privkey[], gen_i rng, void * rng_state)

Вырабатывается подпись [3 * l / 8]sig сообщения с хэш-значением [l / 4]hash, полученном с помощью алгоритма с идентификатором [oid_len]oid_der, заданным DER-кодом. Подпись вырабатывается на личном ключе [l / 4]privkey. При выработке ЭЦП используются долговременные параметры params и генератор rng с состоянием rng_state.

Ожидается [ERR_BAD_PARAMS]

Параметры params корректны.

Ожидается [ERR_BAD_OID]

Идентификатор oid_der корректен.

Ожидается [ERR_BAD_INPUT]

Буферы sig и hash не пересекаются.

Ожидается [ERR_BAD_PRIVKEY]

Личный ключ privkey корректен.

Ожидается [ERR_BAD_RNG]

Генератор rng (с состоянием rng_state) корректен.

Ожидается

Генератор rng является криптографически стойким.

Возвращает

ERR_OK, если подпись выработана, и код ошибки в противном случае.

Прим.

Реализован алгоритм 7.1.3.

Аргументы

sig подпись  
params долговременные параметры  
oid_der идентификатор хэш-алгоритма  
oid_len длина oid_der в октетах  
hash хэш-значение  
privkey личный ключ  
rng генератор случайных чисел  
rng_state [in,out] состояние генератора

err_t bignSign2 (octet sig[], const bign_params * params, const octet oid_der[], size_t oid_len, const octet hash[], const octet privkey[], const void * t, size_t t_len)

Вырабатывается подпись [3 * l / 8]sig сообщения с хэш-значением [l / 4]hash, полученном с помощью алгоритма с идентификатором [oid_len]oid_der, заданным DER-кодом. Подпись вырабатывается на личном ключе [l / 4]privkey. При выработке ЭЦП используются долговременные параметры params. Одноразовый личный ключ генерируется по алгоритму 6.3.3 с использованием дополнительных данных [t_len]t. Если t == 0, то дополнительные данные не используются.

Ожидается [ERR_BAD_PARAMS]

Параметры params корректны.

Ожидается [ERR_BAD_OID]

Идентификатор oid_der корректен.

Ожидается [ERR_BAD_INPUT]

Буферы sig и hash не пересекаются.

Ожидается [ERR_BAD_PRIVKEY]

Личный ключ privkey корректен.

Возвращает

ERR_OK, если подпись выработана, и код ошибки в противном случае.

Прим.

Реализованы алгоритмы 7.1.3 и 6.3.3.

Аргументы

sig подпись  
params долговременные параметры  
oid_der идентификатор хэш-алгоритма  
oid_len длина oid_der в октетах  
hash хэш-значение  
privkey личный ключ  
t дополнительные данные  
t_len размер дополнительных данных

err_t bignVerify (const bign_params * params, const octet oid_der[], size_t oid_len, const octet hash[], const octet sig[], const octet pubkey[])

Проверяется ЭЦП [3 * l / 8]sig сообщения с хэш-значением [l / 4]hash. При проверке используются долговременные параметры params и открытый ключ [l / 2]pubkey. Считается, что хэш-значение [l / 4]hash получено с помощью алгоритма с идентификатором [oid_len]oid_der, заданным DER-кодом.

Ожидается [ERR_BAD_PARAMS]

Параметры params корректны.

Ожидается [ERR_BAD_OID]

Идентификатор oid_der корректен.

Ожидается [ERR_BAD_PUBKEY]

Открытый ключ pubkey корректен.

Возвращает

ERR_OK, если подпись корректна, и код ошибки в противном случае.

Прим.

Реализован алгоритм 7.1.4.

При нарушении ограничений на ЭЦП возвращается код ERR_BAD_SIG.

Аргументы

params долговременные параметры  
oid_der идентификатор хэш-алгоритма  
oid_len длина oid_der в октетах  
hash хэш-значение  
sig подпись  
pubkey открытый ключ

Автор

Автоматически создано Doxygen для Библиотека Bee2 из исходного текста.

Info

Чт 16 Янв 2025 00:00:00 Библиотека Bee2