Задать вопрос

Как побороть ошибку генерации сертификата c помощью openssl ГОСТ?

Здравствуйте! Пытаюсь создать сертификаты с поддержкой гост.

Получаю следующую ошибку при генерации сертификата уц:

error:8007D06C:lib(128):PKEY_GOST_CTRL:invalid digest type:gost_pmeth.c:82:


Команда создания ключа:

openssl genpkey -algorithm gost2001 -pkeyopt paramset:A -out cakey.pem


Создание сертификата:

openssl req -key cakey.pem -new -x509 -extensions v3_ca -out cacert.pem


Или

openssl req -engine gost -newkey gost2001 -pkeyopt paramset:A -x509 -extensions v3_ca -passout pass:135246 -subj "/C=RU/ST=Moscow/L=Moscow/O=organization/CN=sample.ru/emailAddress=user@sample.ru" -keyout priv.pem -out req.csr
engine "gost" set.
Generating a 2048 bit GOST2001 private key
writing new private key to 'priv.pem'
-----
140203655325600:error:8007D06C:lib(128):PKEY_GOST_CTRL:invalid digest type:gost_pmeth.c:82:


Ключ генерится, сертификат не хочет.

В openssl.cnf прописано:
openssl_conf = openssl_def

[openssl_def]
        engines = engine_section

[engine_section]
        gost = gost_section

[gost_section]
        engine_id = gost
        dynamic_path = /usr/lib64/openssl/engines/libgost.so
        default_algorithms = ALL
        CRYPT_PARAMS = id-Gost28147-89-CryptoPro-A-ParamSet


openssl ciphers | tr ":" "\n" | grep -i gost
GOST2001-GOST89-GOST89
GOST94-GOST89-GOST89


Пробовал на разных версиях openssl (OpenSSL 1.0.2a-fips 19 Mar 2015 и OpenSSL 1.0.1e 11 Feb 2013)

В файле gost_pmeth.c на 82 строке:

/* --------------------- control functions ------------------------------*/
static int pkey_gost_ctrl(EVP_PKEY_CTX *ctx, int type, int p1, void *p2)
{
struct gost_pmeth_data *pctx =
(struct gost_pmeth_data *)EVP_PKEY_CTX_get_data(ctx);
switch (type) {
case EVP_PKEY_CTRL_MD:
{
if (EVP_MD_type((const EVP_MD *)p2) != NID_id_GostR3411_94) {
GOSTerr(GOST_F_PKEY_GOST_CTRL, GOST_R_INVALID_DIGEST_TYPE);
return 0;
}
pctx->md = (EVP_MD *)p2;
return 1;
}
  • Вопрос задан
  • 3815 просмотров
Подписаться 6 Оценить 1 комментарий
Решения вопроса 1
kazatchkoff
@kazatchkoff Автор вопроса
Вообщем решилось установкой Ubunt'ы 14.04 LTS с дефолтным OpenSSL 1.0.1f 6 Jan 2014 (до этого пробовал на Centos 7 и АльтЛинукс server СПТ 6)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы