Я пытаюсь предоставить пользователю диалоговое окно для выбора сертификата. Первоначально я использовал CryptUIDlgSelectCertificateFromStore
в хранилище «MY», но это приводит к выбору всех сертификатов, где я хочу, чтобы пользователь выбирал только
сертификаты с закрытыми ключами.
По этой причине я создаю новое хранилище памяти и храню только сертификаты, для которых существует закрытый ключ. Я могу использовать CryptAcquireCertificatePrivateKey
для получения закрытого ключа сертификата, но это может привести к диалоговому окну, запрашивающему, например, PIN-код. Я не хочу использовать CRYPT_ACQUIRE_SILENT_FLAG
, потому что поставщик может захотеть показать информацию о ключе (не обязательно пин-код или подсказку смарт-карты).
Есть ли способ узнать, что есть закрытый ключ без фактического его получения ?
Спасибо.