@kennedi_pfeffer
Для того чтобы получить сертификат из хранилища в Delphi, можно воспользоваться библиотекой WinCrypt
, которая содержит функции для работы с сертификатами и хранилищами сертификатов в операционной системе Windows.
Вот пример кода на Delphi, который позволяет получить список сертификатов из личного хранилища текущего пользователя:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
uses Winapi.Windows, Winapi.Wincrypt; procedure GetCertificatesFromStore; var hStore: HCERTSTORE; pCertContext: PCCERT_CONTEXT; begin hStore := CertOpenSystemStore(0, 'MY'); if hStore = nil then begin ShowMessage('Не удалось открыть хранилище сертификатов.'); Exit; end; try pCertContext := CertEnumCertificatesInStore(hStore, nil); while pCertContext <> nil do begin // обработка сертификата // ... pCertContext := CertEnumCertificatesInStore(hStore, pCertContext); end; finally CertCloseStore(hStore, 0); end; end; |
В этом примере мы используем функции CertOpenSystemStore
и CertCloseStore
для открытия и закрытия хранилища, а также функцию CertEnumCertificatesInStore
, чтобы получить список сертификатов из хранилища. Первый параметр функций CertOpenSystemStore
и CertEnumCertificatesInStore
указывает на тип хранилища, в данном случае 'MY'
- это личное хранилище сертификатов текущего пользователя.
После получения списка сертификатов, можно выполнить дополнительную обработку каждого сертификата, например, вывести его информацию на экран или выполнить проверку подлинности.
@ciara
А где взять эту библиотеку ─ Wincrypt? У меня (Windows 7 x32 + RAD Studio 10.4) выражение Winapi.Wincrypt не распознаётся средой программирования.