Статус: Участник
Группы: Участники
Зарегистрирован: 01.06.2009(UTC) Сообщений: 13 Откуда: Каширское шоссе, 13б
|
Проблема в следующем:
Был зарегистрирован пользователь по запросу на регистрацию. Одновременно с регистрацией пользователя был обработан запрос на сертификат. Далее запрос на сертификат был одобрен.
С помощью функции CertRequestSoapPort.GetRequestInfo был получен запрос на сертификат. Проблема в том, что я не могу его распарсить (Вытащить сам запрос), чтобы получить открытый ключ для корректировки неких данных в своем приложении.
Использовал CryptDecodeObject с параметром PKCS_CONTENT_INFO_SEQUENCE_OF_ANY. Получил пять блобов в структуре CRYPT_CONTENT_INFO_SEQUENCE_OF_ANY, а что делать с ними понятия не имею.
Нельзя ли выложить пример работы с этим запросом с помощью Crypto API.
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 25.12.2007(UTC) Сообщений: 1,732 Откуда: КРИПТО-ПРО Поблагодарили: 177 раз в 168 постах
|
PKCS#10 можно проще разобрать с помощью CryptDecodeObject, в 2 вызова 1) CryptDecodeObject(.., X509_CERT, ..) - получите структуру CERT_SIGNED_CONTENT_INFO 2) CryptDecodeObject(.., X509_CERT_REQUEST_TO_BE_SIGNED, ..) для CERT_SIGNED_CONTENT_INFO::ToBeSignedd - получите CERT_REQUEST_INFO а после этого уже открытый ключ будет легко достать. |
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 01.06.2009(UTC) Сообщений: 13 Откуда: Каширское шоссе, 13б
|
Это был мой первый вариант. но вызов функции CryptDecodeObject(PKCS_7_ASN_ENCODING | X509_ASN_ENCODING,X509_CERT,pReqDer,dwReqSize,0,NULL,&dw) возвращает ошибку 0x8009310b. Поэтому я подумал, что это немножко не PKCS10 формат и попробовал PKCS_CONTENT_INFO_SEQUENCE_OF_ANY
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 25.12.2007(UTC) Сообщений: 1,732 Откуда: КРИПТО-ПРО Поблагодарили: 177 раз в 168 постах
|
Если Вы подаете в CryptDecodeObject непосредственно то, что возвращает GetRequestInfo - то да, это не PKCS#10. Для одобренных запросов это PKCS#7, внутри которого лежит PKCS#10. |
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 01.06.2009(UTC) Сообщений: 13 Откуда: Каширское шоссе, 13б
|
Поэтому я еще раз осмелюсь спросить, как с этим запросом поступать. Запрос одобрен.
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 25.12.2007(UTC) Сообщений: 1,732 Откуда: КРИПТО-ПРО Поблагодарили: 177 раз в 168 постах
|
Вытащить из PKCS#7 вложенный PKCS#10 и потом уже разобрать с помощью CryptDecodeObject. |
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 01.06.2009(UTC) Сообщений: 13 Откуда: Каширское шоссе, 13б
|
Спасибо за ответ. Это я все понимаю. Но мне нужен хотя бы первый шаг. Как вытащить. Потому что, если честно, я мало представляю отличие pkcs7 и pkcs10.
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 25.12.2007(UTC) Сообщений: 1,732 Откуда: КРИПТО-ПРО Поблагодарили: 177 раз в 168 постах
|
|
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 01.06.2009(UTC) Сообщений: 13 Откуда: Каширское шоссе, 13б
|
Громное спасибо! Получилось. Использовал функцию CryptVerifyMessageSignature(...) для получения подписанных данных.
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close