CryptAcquireCertificatePrivateKey - создайте контейнер постоянного ключа, который обращается к сертификату - PullRequest
1 голос
/ 18 апреля 2011

Как создать контейнер постоянного ключа, используя cryptoAPI из самозаверяющего сертификата PFX?

Я могу получить доступ к закрытому ключу в PFX через вызов CryptAcquireCertificatePrivateKey, но как мне импортироватьпара закрытых и открытых ключей в контейнере ключей?Этот контейнер ключей должен постоянно присутствовать в хранилище ключей USER после завершения процесса импорта.

Ждем предложений.

Спасибо

1 Ответ

2 голосов
/ 21 апреля 2011

Одним из способов является импорт сертификата и пары ключей в отношении PFXImportCertStore .

Другой способ может быть интересен для понимания.Вы можете сохранить пару ключей, полученную в отношении CryptAcquireCertificatePrivateKey, в любом новом контейнере ключей.Затем вы можете импортировать только сертификат (без закрытого ключа), и в конце вы должны установить контейнер с закрытым ключом в качестве свойства сертификата ( CertSetCertificateContextProperty с CERT_KEY_PROV_INFO_PROP_ID).

В практике всегда используется функция PFXImportCertStore , но я рекомендую вам написать тестовую программу, которую вы CertEnumCertificateContextProperties , и посмотреть свойства, которые будут сохранены вместе с сертификатом вхранилище сертификатов, но которые не являются частью сертификата.

...