Я следую примеру проверки сертификата iText (это третий пример, найденный здесь: https://itextpdf.com/en/resources/examples/itext-7/digital-signatures-chapter-5).
Я не совсем получаю следующий фрагмент кода (я использую iTextsharp с C #, но код для Java похож):
PdfPKCS7 pkcs7 = base.VerifySignature(fields, name);
X509Certificate[] certs = pkcs7.SignCertificateChain;
DateTime cal = pkcs7.SignDate;
Object[] errors = CertificateVerification.VerifyCertificates(certs, certificates, null, cal);
certificates
- это список, используемый для проверки certs
(certificates
являются доверенными сертификатами). В примере он создается из следующих файлов:
public const String ADOBE = "../../../../resources/adobeRootCA.cer";
public const String CACERT = "../../../../resources/CACertSigningAuthority.crt";
public const String BRUNO = "../../../../resources/bruno.crt";
Я не уверен, откуда мне взять эти файлы при попытке реализовать это самостоятельно.
Я думаю о проверке сертификатов подписей по доверенным сертификатам в хранилище Windows, но поскольку я не понимаю, почему в примере используются эти файлы, я не уверен, что проверка по хранилищу Windows будет в порядке.