Re: Как сохранить выбранный сертификат?
От: hd44780 Украина http:\\hd44780.yandex.ru
Дата: 31.03.05 05:31
Оценка:
Здравствуйте, rayluke, Вы писали:

R>Добрый день!


R>Как сохранить выбранный сертификат в CAPICOM, не в смысле на диск, а получить идентификатор

R>с тем, чтобы потом получать его из Store по идентификатору?

R>Или же все умные программы типа Outlook сохраняют сертификаты на диск?


Сохранять можно двумя вариантами: с закрытым ключом и паролем и без них.
Пример
Certificate сert = .... // сертификат

if ( password == null || password == "" )
{ // пароля не указан — экспорт без закрытого ключа (файл .cer)
cert.Save ( filename, "",
CAPICOM_CERTIFICATE_SAVE_AS_TYPE.CAPICOM_CERTIFICATE_SAVE_AS_CER,
CAPICOM_CERTIFICATE_INCLUDE_OPTION.CAPICOM_CERTIFICATE_INCLUDE_END_ENTITY_ONLY );
} // if
else
{ // пароль указан (файл типа .pfx)
cert.Save ( filename, password,
CAPICOM_CERTIFICATE_SAVE_AS_TYPE.CAPICOM_CERTIFICATE_SAVE_AS_PFX,
CAPICOM_CERTIFICATE_INCLUDE_OPTION.CAPICOM_CERTIFICATE_INCLUDE_WHOLE_CHAIN);
} // else

Правда не проверял, что будет если попытаться записать сертификат без закрытого ключа как сертификат с ключом.
Но наличие ключа можно проверить заранее:
bool isPrivateKeyPresent = cert.HasPrivateKey ( ); // true — есть ключ, false — нет
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.