TPDFlibSigner
Security and Signatures
Beschreibung
TPDFlibSigner ist die eigenständige Signatur-Engine, die ein TPDFlibSignDoc-Ziel mit einer TPDFlibPFXFile-Identität paart und die fertige Signatur als neue inkrementelle Revision schreibt
Öffnen Sie das PDF aus Datei, Stream oder Zeichenkette, binden Sie die Identität über eine der Open-Methoden, wählen Sie das Zielfeld, konfigurieren Sie die Signatur, und schließen Sie mit AppendToFile, AppendToStream oder ApplySignature ab
Die Klasse deckt den vollen Signatur-Funktionssatz ab: Digest-Auswahl, Inhaltsreservierung und -schätzung, Widerrufsinfo, Commitment-Typen, Signaturrichtlinien, rechtliche Bescheinigungen, DocMDP-Zertifizierungsstufen, Feldsperren, Dokumentzeitstempel und Passthrough-Signaturen fester Länge
Die Fassade stellt dieselbe Pipeline über die dokumentierten SignProcess-Funktionen bereit; verwenden Sie diese Klasse direkt, wenn der Signatur-Workflow in einen größeren eigenen Revisions-Schreiber eingebettet werden muss
Syntax
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; Methoden
| OpenPDF, OpenPDFStream, OpenPDFString | Öffnet das zu signierende Dokument aus Datei, Stream oder ANSI-Zeichenkette |
|---|---|
| OpenPFX, OpenCertStore, OpenCertContext | Bindet eine PFX-Datei, ein Systemspeicher-Zertifikat über den Anzeigenamen oder einen externen Zertifikatskontext |
| OpenEd25519, OpenEd25519FromFile | Bindet ein Ed25519-Schlüsselpaar aus dem Speicher oder aus Dateien |
| OpenCNGKey, OpenCNGKeyHandle | Bindet einen CNG-Schlüssel über Provider und Schlüsselnamen oder über ein Schlüssel-Handle |
| OpenExternalDigestSigner | Delegiert die Digest-Signatur an einen externen Callback |
| SelectField | Wählt das Signaturfeld über vollqualifizierten Namen und Seite |
| SetSignatureProperty | Setzt einen der Werte spReason, spLocation, spContactInfo, spFieldImage, spSubFilter und spFieldImageOptions |
| SetAppearanceText | Speichert den automatisch erzeugten sichtbaren Textblock, der beim Anfügen ins Felderscheinungsbild geschrieben wird |
| SetSignatureBounds | Platziert das Feld an expliziten Koordinaten |
| SetPassthrough | Erzeugt eine Passthrough-Signatur mit exakt der angegebenen Länge für externes Signieren |
| SetDocTimeStamp | Schaltet die Signatur auf einen Dokumentzeitstempel um |
| SetDigestAlgorithm | Wählt den für die Signatur verwendeten Digest |
| SetContentsReserveBytes, SetContentsEstimate | Reserviert zusätzliche Bytes oder bemisst die Reservierung aus Schätzungen für Kette, CRL, OCSP und Zeitstempel plus Sicherheitszuschlag |
| SetRevocationInfo | Bettet vorab gesammelte Widerrufsdaten in DER-Form ein |
| SetCommitmentType, SetSignaturePolicy, SetLegalAttestation | Deklariert Signierabsicht, Richtlinie und rechtliche Bescheinigung |
| SetDocMDP | Aktiviert eine Zertifizierungssignatur auf DocMDP-Stufe 1, 2 oder 3; muss vor SelectField aufgerufen werden |
| SetFieldLock | Schreibt ein Feldsperren-Wörterbuch mit einer Aktion und einer Feldnamenliste |
| AppendToFile, AppendToStream | Schreibt die signierte Revision in eine neue Datei oder einen Stream |
| ApplySignature | Wendet die Signatur auf das Dokument an Ort und Stelle an |
| GetByteRange, GetEstimatedContentsBytes | Liest nach dem Bau der Revision den ByteRange-Eintrag und die geschätzte Inhaltsgröße zurück |
| SetInPlace | Markiert die Revision als Update des geöffneten Dokuments an Ort und Stelle |
Parameter
| IsDocTimeStamp | True, wenn ein Dokumentzeitstempel erzeugt wird |
|---|
Anmerkungen
Jede Open-Methode gibt TPDFlibSignerResult zurück
DocMDP-Stufen entsprechen dem ISO-32000-Transformations-P-Wert: 1 keine Änderungen, 2 Formularausfüllen, 3 Annotationen; bei Werten ungleich null wird das AcroForm-/SigFlags-Bit AppendOnly gesetzt, damit Viewer die Zertifizierung durchsetzen
Siehe auch
TPDFlibSignDoc, TPDFlibPFXFile, TPDFlibSignerResult, NewSignProcessFromFile, SetSignProcessDocMDP