Статус: Активный участник
Группы: Участники
Зарегистрирован: 28.10.2009(UTC) Сообщений: 121
Сказал(а) «Спасибо»: 2 раз Поблагодарили: 3 раз в 3 постах
|
подскажите пожалуйста, как Вы решили вопрос с получением некорректных данных этой функцией? Код:
ICertServerExit certServerExit = new CCertServerExit();
certServerExit.SetContext(Context);
var RawCRL = certServerExit.GetCertificateProperty( "RawCRL.0", crypt.PROPTYPE_BINARY);
в справке к функции написано, что функция возвращает данные формата DER. На практике там набор непонятного мусора.
|
|
|
|
Статус: Эксперт
Группы: Участники
Зарегистрирован: 12.12.2007(UTC) Сообщений: 7 Откуда: Крипто-Про
|
Нигде в справке не нашел, чтобы там шла речь про DER. Может быть, возвращается строка Base-64?
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 28.10.2009(UTC) Сообщений: 121
Сказал(а) «Спасибо»: 2 раз Поблагодарили: 3 раз в 3 постах
|
не может быть... http://msdn.microsoft.co...ary/aa385074(VS.85).aspxЦитата:pvarPropertyValue
A pointer to a VARIANT that will contain the property value. The returned value is encoded as a BSTR. Use the SysStringByteLen function to retrieve the length of the BSTR. The binary BLOB is stored as a Distinguished Encoding Rules encoded X.509 certificate.
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 28.10.2009(UTC) Сообщений: 121
Сказал(а) «Спасибо»: 2 раз Поблагодарили: 3 раз в 3 постах
|
хоть какой-н ответ по теме отпишите пожалуйста, понимаю что времени мало...
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 25.12.2007(UTC) Сообщений: 1,732 Откуда: КРИПТО-ПРО Поблагодарили: 177 раз в 168 постах
|
ЕМНИП, CRL нумеруются не с 0, а с 1 - попробуйте получить "RawCRL.1". |
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 28.10.2009(UTC) Сообщений: 121
Сказал(а) «Спасибо»: 2 раз Поблагодарили: 3 раз в 3 постах
|
1- Цитата:RawCRL Binary CA's certificate revocation list (CRL). This property name may be appended with '.#', where # represents a CA certificate index (or, in the case of the CRLSuffix property, a CRL index). For information about certificate and CRL indices, see Certification Authority Renewal. http://msdn.microsoft.co...ary/aa376550(VS.85).aspxЦитата:You can retrieve the indexed CA certificates and CRLs by calling the GetCertificateProperty method (in both the ICertServerExit and ICertServerPolicy interfaces). When you retrieve certain properties related to the CA certificate or CRL, you can append the CA certificate's zero-based index to the property names. For example, to retrieve the CRL index that corresponds to the CA's third certificate, pass the property "CRLIndex.2" to ICertServerPolicy::GetCertificateProperty; for the table, the retrieved "CRLIndex.2" property value would be 1. A property called "CertCount" can be used to determine the number of times the CA has been issued a CA certificate. таблица находится там же по ссылке. CertCount вернул "1"; 2- так как Индекс может быть добавлен (при желании), я убрал его совсем (т.к. CertCount=1), чтоб не смущать ни вас ни себя и не отвлекаться пока на индексы :) = получаю тот же мусор Отредактировано пользователем 22 марта 2010 г. 16:27:27(UTC)
| Причина: Не указана
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 28.10.2009(UTC) Сообщений: 121
Сказал(а) «Спасибо»: 2 раз Поблагодарили: 3 раз в 3 постах
|
вопрос еще активен
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 28.10.2009(UTC) Сообщений: 121
Сказал(а) «Спасибо»: 2 раз Поблагодарили: 3 раз в 3 постах
|
т.е. решения пока, кроме редактирования и пересборки CERTCLIENT.dll, нет? =-O
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 28.10.2009(UTC) Сообщений: 121
Сказал(а) «Спасибо»: 2 раз Поблагодарили: 3 раз в 3 постах
|
CERTCLIENT.dll - пришлось на il подправить и все заработало.
спустя некоторое время у меня возник другой вопрос, как получить Delta CRL в этом же модуле выхода. событие Notify происходит, контекст я ловлю, могу получить сертификат и сам СОС, а вот Дельту получить у меня не получается. СОС я получаю certServerExit.GetCertificateProperty( "RawCRL"/* тут можно добавить индекс .# или суфикс */, crypt.PROPTYPE_BINARY, varObjPtr ); а вот для дельты этот метод, как понимаю, не подходит... или все-таки есть способ? не лезть же через certAdmin ... и сомневаюсь что у меня будут нужные права, чтоб из модуля выхода туда обратиться. подскажите пожалуйста выход из сложившейся ситуёвинки.. :)
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 25.12.2007(UTC) Сообщений: 1,732 Откуда: КРИПТО-ПРО Поблагодарили: 177 раз в 168 постах
|
Цитата:не лезть же через certAdmin аналогичные методы есть в ICertRequest2 |
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close