27.12.2004 9:27:19 | Устаноовка сертификата программно | | Ответов: 7 |
|
Andrey | | |
|
Как можно используя CryptoAPI функции установить сертифкат с носителя (дискеты, винта) в системное хранилище.
Желательно поподробнее. |
|
Ответы:
|
27.12.2004 9:53:36 | Василий |
|
Функции CertAddEncodedCertificateToStore,
CertAddCertificateContextToStore, полный пример см. в исходниках проекта csptest (файлы property.c, makecert.c ) - http://www.cryptopro.ru/CryptoPro/test/sample2_0.zip |
|
28.12.2004 23:00:56 | Andrey |
|
Пытаюсь добавить сертификат с помощью функции CertAddEncodedCertificateToStore() в итоге получаю ошибку CRYPT_E_ASN1_BADTAG ASN.1: bad tag value met. Что делаю не так или что не доделываю. Я открываю файл читаю в буфер и затем пытаюсь добавить в хранилище, как показано в makecert.c. Подскажите пожалуйста |
|
|
Небольшое уточнение интересует добавление именно сертификата в кодировке BASE64 а не DER. Для der все работает как вы сказали. |
|
29.12.2004 9:59:33 | Василий |
|
Функции CryptoAPI работают именно с der.
Если нужно, можно перекодировать base64 в der - CryptStringToBinary (правда, она доступна, начиная с ХР или 2003).
|
|
29.12.2004 10:50:44 | Kirill Sobolev |
|
Если есть возможность использовать ATL - то можно воспользоваться функциями Base64Encode/Base64Decode. Так же преобразование Base64<->DER есть в CAPICOM.Utilities |
|
|
Есть такая отличная функция "CertOpenStore" с не менее хорошим параметром CERT_STORE_PROV_FILE...
То есть открываем файл как хранилище, читаем контексты сертификатов из хранилища и записываем их куда надо... |
|
13.01.2005 10:44:33 | Kirill Sobolev |
|
Тогда уж лучше CERT_STORE_PROV_FILENAME - CERT_STORE_PROV_FILE не работает с PKCS7 и сертификатами, только с сериализованными хранилищами. |
|