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, OpenCertContextBir PFX dosyasını, görüntü adıyla sistem deposu sertifikasını ya da harici bir sertifika bağlamını bağlar
OpenEd25519, OpenEd25519FromFileBir Ed25519 anahtar çiftini bellekten ya da dosyalardan bağlar
OpenCNGKey, OpenCNGKeyHandleBir 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
SetSignaturePropertyspReason, spLocation, spContactInfo, spFieldImage, spSubFilter ve spFieldImageOptions değerlerinden birini ayarlar
SetAppearanceTextEkleme zamanında alan görünümüne yazılan otomatik üretilmiş görünür metin bloğunu saklar
SetSignatureBoundsAlanı açık koordinatlara yerleştirir
SetPassthroughHarici 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, SetContentsEstimateEk 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
SetDocMDPDocMDP düzey 1, 2 ya da 3'te onaylayan imzayı etkinleştirir; SelectField çağrısından önce çağrılmalıdır
SetFieldLockBir 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, GetEstimatedContentsBytesRevizyon oluşturulduktan sonra ByteRange girdisini ve tahmini içerik boyutunu geri okur
SetInPlaceRevizyonu, 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