function ValidatePadesTrust(const Options: TPadesTrustValidationOptions): TPadesValidationResult;
function ValidatePadesTrustAsync(const Options: TPadesTrustValidationOptions; const Reply: TPadesTrustValidationReply): Boolean;
Her iki yöntem de etkin bileşenin tuttuğu tam olarak orijinal dosyayı, bellek tamponunu, özel akışı veya tamamlanmış progressive kaynağı yakalar ve hiçbir zaman PDFium tarafından yeniden kaydedilmiş bir kopyayı doğrulamaz
Her sıradan imza, orijinal ByteRange değerine, CMS imzalı özniteliklerine ve imza değerine, signing-certificate-v2 bağlamasına, yapılandırılmış arka ucun güncel sertifika zincirine ve isteğe bağlı iptal kanıtlarına karşı denetlenir
İmza zaman damgaları ve Document Time-stamp'ler ayrıca SHA-256 mesaj damgalarını (message imprint), ekli CMS imzalarını, TSA zincirini ve isteğe bağlı iptal durumlarını doğrular
Zaman damgası imzalayan sertifikasında, RFC 3161 bölüm 2.3'ün gerektirdiği gibi yalnızca id-kp-timeStamping içeren kritik bir Extended Key Usage uzantısı bulunmalıdır. Eksik, kritik olmayan, karışık ya da farklı bir EKU, token'ın CMS imzası ve temel sertifika zinciri geçerli olsa bile geçersiz bir TimeStampTrustStatus üretir; dış belge imzası kendi bağımsız sonuçlarını korur
Eşzamansız aşırı yükleme, kaynağı gönderimden önce yakalar ve tamamlanmayı TPadesTrustValidationReply üzerinden raporlar
| NetworkPolicy | ptnpOffline yalnızca önbelleğe alınmış sertifika verisini kullanırken ptnpOnline Windows zincir getirmesine izin verir |
| CheckRevocation | Yapılandırılmış arka ucun zincir iptal değerlendirmesini ister; Windows kök sertifikayı hariç tutar, OpenSSL ise yapılandırılmış CRL'leri zincire karşı denetler |
| CheckTimeStamps | Mevcutken imza zaman damgası ile Document Time-stamp dizgeciklerini doğrular |
| UrlRetrievalTimeoutMs | Zincir ve iptal işlemesinin kullandığı yerel URL getirmeyi sınırlar |
| QualifiedTrustEvaluator | İsteğe bağlı olarak imzalayanı ve toplanan zinciri, kimliği doğrulanmış çevrimdışı bir güvenilir liste anlık görüntüsüne karşı değerlendirir |
| QualifiedValidationTime | UTC hizmet geçmişi değerlendirme zamanını seçer; sıfır geçerli zamanı kullanır |
| CancellationToken | Bir sonraki doğrulama aşama sınırında durur |
| OnProgress | Aşamayı, imza indeksini, imza sayısını ve genel yüzdeyi alır |
TPadesValidationResult.Signatures, bağımsız ByteRangeStatus, CmsSignatureStatus, AlgorithmPolicyStatus, SigningCertificateStatus, CertificateTrustStatus, QualifiedTrustStatus, RevocationStatus, TimeStampStatus, TimeStampSignatureStatus, TimeStampTrustStatus ve TimeStampRevocationStatus değerlerini raporlar; QualifiedTrust ise eşleşen bölgeyi, sağlayıcıyı, hizmeti, türü, durumu ve başlangıç zamanını tanımlar
AlgorithmInfo, CMS özet ve imza OID'lerinin yanı sıra imzalayan sertifikasının açık anahtar ve adlandırılmış eğri OID'lerini kaydeder ve bütünlük kabul edilmeden önce ISO/TS 32002 NIST, Brainpool, Ed25519, Ed448 ile eğri-özet kurallarını uygular
Desteklenmeyen algoritmalar, kullanılamayan platform güven hizmetleri, eksik iptal kanıtları ve iptal edilmiş doğrulama geçerli durumlara yükseltilmez
Her imza girdisi, CMS doğrulamasından gelen RevocationReason ve NativeRevocationError değerlerini; timestamp token doğrulamasından gelen bağımsız TimeStampRevocationReason ve NativeTimeStampRevocationError değerlerini de içerir. Neden alanları TPdfCmsRevocationReason türündedir; yerel hata alanları, seçilen arka ucun hata uzayında Cardinal değerlerdir — OpenSSL'in X509_V_ERR_* kodları ya da ham bir Windows sağlayıcı ve GetLastError DWORD değeri gibi. Windows değerleri ortak bir HRESULT uzayına dönüştürülmeden korunur
Timestamp çifti, gömülü bir imza timestamp'ini ya da bir Document Time-stamp'i anlatır ve sıradan imza çiftinin üzerine yazmaz. Timestamp tanılamaları, token yapısı ve mesaj damgası kontrolleri CMS doğrulamasına izin verdikten sonra doldurulur
CheckRevocation = False iken tanılama nedenleri pcrrNone, hatalar sıfır kalır. Aynı varsayılanlar bir denetime hiç gelinmediğinde ya da arka ucu ayrıntılı bir neden sunmadığında da geçerlidir; bu yüzden boş bir tanılamayı başarı saymak yerine her zaman karşılık gelen durumu okuyun
Active değerinin True olmasını ve eksiksiz bir orijinal kaynak anlık görüntüsünü gerektirirOnProgress, ValidatePadesTrustAsync tarafından çağrıldığında worker thread üzerinde çalışır ve doğrudan UI denetimlerini manipüle etmemelidirTPdfFuture ana iş parçacığı eşitleme modunu kullanır
var
Options: TPadesTrustValidationOptions;
Validation: TPadesValidationResult;
begin
Options := TPadesTrustValidationOptions.Default;
Options.NetworkPolicy := ptnpOnline;
Options.CheckRevocation := True;
Validation := Pdf1.ValidatePadesTrust(Options);
end;