TPDFlibSigner
Security and Signatures
Açıklama
TPDFlibSigner, bir TPDFlibSignDoc hedefini bir TPDFlibPFXFile kimliğiyle eşleştiren ve tamamlanmış imzayı yeni bir artımlı revizyon olarak yazan bağımsız imzalama motorudur
PDF'i bir dosyadan, akıştan ya da dizgiden açın, kimliği açık metotlardan biriyle bağlayın, hedef alanı seçin, imzayı yapılandırın ve AppendToFile, AppendToStream ya da ApplySignature ile bitirin
Sınıf tam imzalama özellik setini kapsar: özet seçimi, içerik rezervasyonu ve tahmini, iptal bilgisi, taahhüt türleri, imza politikaları, yasal teyitler, DocMDP sertifikasyon düzeyleri, alan kilitleri, belge zaman damgaları ve sabit uzunluklu passthrough imzalar
Facade aynı hattı belgelenmiş SignProcess fonksiyonları üzerinden sunar; imzalama akışı daha büyük bir özel revizyon yazıcısına gömülecekse bu sınıfı doğrudan kullanın
Sözdizimi
Delphi
TPDFlibSigner = Class
Public
Constructor Create;
Destructor Destroy; Override;
Function OpenPDF(Const FileName: WideString; Const Password: WideString): TPDFlibSignerResult;
Function OpenPDFStream(SourceStream: TStream; Const Password: WideString): TPDFlibSignerResult;
Function OpenPDFString(Const SourceString: AnsiString; Const Password: WideString): TPDFlibSignerResult;
Function OpenPFX(Const FileName: WideString; Const Password: AnsiString; UseMachineKeyset: Boolean): TPDFlibSignerResult;
Function OpenCertStore(Const StoreName, CertName: WideString; UseMachineStore: Boolean): TPDFlibSignerResult;
Function OpenCertContext(CertContext: Pointer): TPDFlibSignerResult;
Function OpenEd25519(Const CertificateDER, PrivateKeyDER: AnsiString): TPDFlibSignerResult;
Function OpenEd25519FromFile(Const CertificateFile, PrivateKeyFile: WideString): TPDFlibSignerResult;
Function OpenCNGKey(Const CertificateDER: AnsiString;
Const ProviderName, KeyName: WideString; UseMachineKey, AllowUI: Boolean): TPDFlibSignerResult;
Function OpenCNGKeyHandle(Const CertificateDER: AnsiString; KeyHandle: TPLIntPtr; AllowUI: Boolean): TPDFlibSignerResult;
Function OpenExternalDigestSigner(Const CertificateDER: AnsiString;
Signer: TPDFlibExternalDigestSignEvent; Sender: TObject;
SignProcessID, SignatureAlgorithm, SignatureReserveBytes: Integer): TPDFlibSignerResult;
Procedure SetPrivateKeyUI(AllowUI: Boolean);
Procedure SetRSAPSSPadding(Enable: Boolean);
Procedure SetLegalAttestation(Const Value: WideString);
Procedure SelectField(Const FieldName: WideString; FieldPage: Integer);
Procedure SetSignatureProperty(SignatureProperty: TPDFlibSignatureProperty; Const NewValue: AnsiString);
Procedure SetAppearanceText(Const Text: WideString; FontSize, FontRed, FontGreen, FontBlue: Double);
Procedure SetSignatureBounds(Left, Top, Width, Height: Double);
Procedure SetPassthrough(SignatureLength: Integer);
Procedure SetDocTimeStamp(SignatureLength: Integer);
Procedure SetDigestAlgorithm(Algorithm: TPDFlibDigestAlgorithm);
Procedure SetContentsReserveBytes(ExtraBytes: Integer);
Procedure SetContentsEstimate(ChainBytes, CRLBytes, OCSPBytes, TimeStampBytes, SafetyMarginPercent: Integer);
Procedure SetRevocationInfo(Const RevocationInfoDER: AnsiString);
Procedure SetCommitmentType(CommitmentType: Integer);
Procedure SetDocMDP(Level: Integer);
Function SetFieldLock(Const Action: AnsiString; Const Fields: TArray): Boolean;
Procedure SetSignaturePolicy(Const PolicyOID: AnsiString; Const PolicyHashBytes: AnsiString; HashAlgorithm: TPDFlibDigestAlgorithm);
Function AppendToFile(Const FileName: WideString): Boolean;
Function AppendToStream(TargetStream: TStream): Boolean;
Function ApplySignature: Boolean;
Function GetByteRange(Index: Integer): Int64;
Function GetEstimatedContentsBytes: Integer;
Procedure SetInPlace;
Property IsDocTimeStamp: Boolean Read FIsDocTimeStamp;
End; Yöntemler
| OpenPDF, OpenPDFStream, OpenPDFString | İmzalanacak belgeyi bir dosyadan, akıştan ya da ANSI dizgisinden açar |
|---|---|
| OpenPFX, OpenCertStore, OpenCertContext | Bir PFX dosyasını, görüntü adıyla sistem deposu sertifikasını ya da harici bir sertifika bağlamını bağlar |
| OpenEd25519, OpenEd25519FromFile | Bir Ed25519 anahtar çiftini bellekten ya da dosyalardan bağlar |
| OpenCNGKey, OpenCNGKeyHandle | Bir CNG anahtarını sağlayıcı ve anahtar adıyla ya da anahtar tanıtıcısıyla bağlar |
| OpenExternalDigestSigner | Özet imzasını harici bir geri çağrıya devreder |
| SelectField | İmza alanını tam nitelikli ad ve sayfaya göre seçer |
| SetSignatureProperty | spReason, spLocation, spContactInfo, spFieldImage, spSubFilter ve spFieldImageOptions değerlerinden birini ayarlar |
| SetAppearanceText | Ekleme zamanında alan görünümüne yazılan otomatik üretilmiş görünür metin bloğunu saklar |
| SetSignatureBounds | Alanı açık koordinatlara yerleştirir |
| SetPassthrough | Harici imzalama için tam olarak verilen uzunlukta bir passthrough imza üretir |
| SetDocTimeStamp | İmzayı bir belge zaman damgasına çevirir |
| SetDigestAlgorithm | İmzada kullanılacak özeti seçer |
| SetContentsReserveBytes, SetContentsEstimate | Ek bayt rezerve eder ya da rezervasyonu zincir, CRL, OCSP ve zaman damgası tahminleri artı bir güvenlik payıyla boyutlandırır |
| SetRevocationInfo | Önceden toplanmış iptal verisini DER biçiminde gömer |
| SetCommitmentType, SetSignaturePolicy, SetLegalAttestation | İmzalama niyetini, politikayı ve yasal teyidi bildirir |
| SetDocMDP | DocMDP düzey 1, 2 ya da 3'te onaylayan imzayı etkinleştirir; SelectField çağrısından önce çağrılmalıdır |
| SetFieldLock | Bir eylem ve alan adı listesiyle alan kilidi sözlüğü yazar |
| AppendToFile, AppendToStream | İmzalı revizyonu yeni bir dosyaya ya da akışa yazar |
| ApplySignature | İmzayı yerindeki belgeye uygular |
| GetByteRange, GetEstimatedContentsBytes | Revizyon oluşturulduktan sonra ByteRange girdisini ve tahmini içerik boyutunu geri okur |
| SetInPlace | Revizyonu, açık belgenin yerinde güncellemesi olarak işaretler |
Parametreler
| IsDocTimeStamp | İmzalayıcı bir belge zaman damgası üretiyorsa True |
|---|
Açıklamalar
Her açık metot TPDFlibSignerResult döndürür
DocMDP düzeyleri ISO 32000 dönüşüm P değerine eşlenir: 1 değişiklik yok, 2 form doldurma, 3 ek açıklamalar; sıfırdan farklı olduğunda izleyicilerin sertifikasyonu uygulaması için AcroForm /SigFlags AppendOnly biti ayarlanır
Ayrıca bkz
TPDFlibSignDoc, TPDFlibPFXFile, TPDFlibSignerResult, NewSignProcessFromFile, SetSignProcessDocMDP