@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 не распознаётся средой программирования.