Ключевое слово в защите информации
КЛЮЧЕВОЕ СЛОВО
в защите информации
Получить ГОСТ TLS-сертификат для домена (SSL-сертификат)
Добро пожаловать, Гость! Чтобы использовать все возможности Вход или Регистрация.

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline cryptoktulhu  
#1 Оставлено : 1 февраля 2017 г. 16:03:34(UTC)
cryptoktulhu

Статус: Участник

Группы: Участники
Зарегистрирован: 27.11.2015(UTC)
Сообщений: 10
Албания

Доброго времени суток.
При выполнении следующего кода функция 'CryptImportPublicKeyInfo' выдает ошибку CRYPT_E_ASN1_BADTAG:

HCERTSTORE fileStore;
PCCERT_CONTEXT certCtx;
HCRYPTKEY hKey;
HCRYPTPROV prov;
BOOL ret;

fileStore = ::CertOpenStore(CERT_STORE_PROV_FILENAME_A, 0, 0, CERT_STORE_OPEN_EXISTING_FLAG, "new.cer");
if (!fileStore)
{
PrintError();
return 0;
}

certCtx = ::CertEnumCertificatesInStore(fileStore, NULL);
if (!certCtx)
{
PrintError();
return 0;
}

ret = ::CryptAcquireContext(&prov, NULL, CP_GR3410_2001_PROV, PROV_GOST_2001_DH, CRYPT_VERIFYCONTEXT);
if (!ret)
{
PrintError();
return 0;
}

ret = ::CryptImportPublicKeyInfo(prov, certCtx->dwCertEncodingType, &certCtx->pCertInfo->SubjectPublicKeyInfo, &hKey);
if (!ret)
{
PrintError();
return 0;
}

Исходники в приложении:
CPTest.zip (40kb) загружен 5 раз(а).
Offline cryptoktulhu  
#2 Оставлено : 3 февраля 2017 г. 12:13:25(UTC)
cryptoktulhu

Статус: Участник

Группы: Участники
Зарегистрирован: 27.11.2015(UTC)
Сообщений: 10
Албания

Тестовое окружение:

  1. Windows 8 x64
  2. CryptoPro CSP 3.9.8227
Offline Андрей Писарев  
#3 Оставлено : 3 февраля 2017 г. 13:19:07(UTC)
Андрей *

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 26.07.2011(UTC)
Сообщений: 13,319
Мужчина
Российская Федерация

Сказал «Спасибо»: 549 раз
Поблагодарили: 2207 раз в 1722 постах
Здравствуйте.
Цитата:

>функция 'CryptImportPublicKeyInfo' выдает ошибку CRYPT_E_ASN1_BADTAG:


Все верно, подавайте на вход ANS.1, а не закодированный в base64 сертификат с заголовками.

Откройте сертификат, вкладка Состав, кнопка "Копировать в файл..."
Выбираете DER, получаете новый файл и с ним работаете.
Техническую поддержку оказываем тут
Наша база знаний
Offline Андрей Писарев  
#4 Оставлено : 3 февраля 2017 г. 13:20:52(UTC)
Андрей *

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 26.07.2011(UTC)
Сообщений: 13,319
Мужчина
Российская Федерация

Сказал «Спасибо»: 549 раз
Поблагодарили: 2207 раз в 1722 постах
По теме есть также информация на старом форуме
Техническую поддержку оказываем тут
Наша база знаний
Offline cryptoktulhu  
#5 Оставлено : 3 февраля 2017 г. 13:58:11(UTC)
cryptoktulhu

Статус: Участник

Группы: Участники
Зарегистрирован: 27.11.2015(UTC)
Сообщений: 10
Албания

Попробовал. Тот же результат.
Прикладываю преобразованный файл: new2.zip (1kb) загружен 4 раз(а).

Отредактировано пользователем 3 февраля 2017 г. 14:04:15(UTC)  | Причина: Не указана

Offline cryptoktulhu  
#6 Оставлено : 6 февраля 2017 г. 16:50:06(UTC)
cryptoktulhu

Статус: Участник

Группы: Участники
Зарегистрирован: 27.11.2015(UTC)
Сообщений: 10
Албания

Цитата:
По теме есть также информация на старом форуме

На старом форуме обсуждается другая проблема. Там ошибку выдает функция 'CertCreateCertificateContext'
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest (2)
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.