PDFium Delphi Component Docs

ValidatePadesTrust yöntemleri

Component: TPdf  ·  Unit: PDFium
PAdES imza bütünlüğünü, geçerli sistem güvenini, isteğe bağlı iptal kanıtlarını ve RFC 3161 zaman damgası dizgeciklerini doğrular

Syntax

function ValidatePadesTrust(const Options: TPadesTrustValidationOptions): TPadesValidationResult;

function ValidatePadesTrustAsync(const Options: TPadesTrustValidationOptions; const Reply: TPadesTrustValidationReply): Boolean;

Description

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

Options

NetworkPolicyptnpOffline yalnızca önbelleğe alınmış sertifika verisini kullanırken ptnpOnline Windows zincir getirmesine izin verir
CheckRevocationYapı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
CheckTimeStampsMevcutken imza zaman damgası ile Document Time-stamp dizgeciklerini doğrular
UrlRetrievalTimeoutMsZincir 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
QualifiedValidationTimeUTC hizmet geçmişi değerlendirme zamanını seçer; sıfır geçerli zamanı kullanır
CancellationTokenBir sonraki doğrulama aşama sınırında durur
OnProgressAşamayı, imza indeksini, imza sayısını ve genel yüzdeyi alır

Result

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

Remarks

Example

var
  Options: TPadesTrustValidationOptions;
  Validation: TPadesValidationResult;
begin
  Options := TPadesTrustValidationOptions.Default;
  Options.NetworkPolicy := ptnpOnline;
  Options.CheckRevocation := True;
  Validation := Pdf1.ValidatePadesTrust(Options);
end;

See Also

ValidatePades FPdfTrustedList AnalyzeSignatureRevisions RenewPadesArchiveTimestamp