TPDFlibSigner
Security and Signatures
Beskrivning
TPDFlibSigner är den fristående signeringsmotorn som parar ett TPDFlibSignDoc-mål med en TPDFlibPFXFile-identitet och skriver den färdiga signaturen som en ny inkrementell revision
Öppna PDF:en från fil, stream eller sträng, bind identiteten med en av open-metoderna, välj målfältet, konfigurera signaturen och avsluta med AppendToFile, AppendToStream eller ApplySignature
Klassen täcker hela signeringsfunktionsuppsättningen: digestval, innehållsreservering och uppskattning, återkallningsinfo, commitment-typer, signaturpolicyer, juridiska intyganden, DocMDP-certifieringsnivåer, fältlåsningar, dokumenttidstämplar och passthrough-signaturer med fast längd
Fasaden exponerar samma pipeline via de dokumenterade SignProcess-funktionerna; använd den här klassen direkt när signeringsarbetsflödet måste bäddas in i en större egen revisionsskrivare
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; Metoder
| OpenPDF, OpenPDFStream, OpenPDFString | Öppnar dokumentet som ska signeras från fil, stream eller ANSI-sträng |
|---|---|
| OpenPFX, OpenCertStore, OpenCertContext | Binder en PFX-fil, ett systemarkivcertifikat via visningsnamn, eller en extern certifikatkontext |
| OpenEd25519, OpenEd25519FromFile | Binder ett Ed25519-nyckelpar från minnet eller filer |
| OpenCNGKey, OpenCNGKeyHandle | Binder en CNG-nyckel via provider och nyckelnamn, eller via ett nyckelhandle |
| OpenExternalDigestSigner | Delegerar digestsignaturen till en extern callback |
| SelectField | Väljer signaturfältet via fullt kvalificerat namn och sida |
| SetSignatureProperty | Sätter en av spReason, spLocation, spContactInfo, spFieldImage, spSubFilter och spFieldImageOptions |
| SetAppearanceText | Lagrar det automatiskt genererade synliga textblocket som skrivs i fältutseendet vid tilläggstillfället |
| SetSignatureBounds | Placerar fältet vid explicita koordinater |
| SetPassthrough | Producerar en passthrough-signatur med exakt den givna längden för extern signering |
| SetDocTimeStamp | Växlar signaturen till en dokumenttidsstämpel |
| SetDigestAlgorithm | Väljer den digest som används för signaturen |
| SetContentsReserveBytes, SetContentsEstimate | Reserverar extra byte eller dimensionerar reserveringen utifrån uppskattningar för kedja, CRL, OCSP och tidsstämpel plus en säkerhetsmarginal |
| SetRevocationInfo | Bäddar in förinsamlade återkallningsdata i DER-form |
| SetCommitmentType, SetSignaturePolicy, SetLegalAttestation | Deklarerar signeringsavsikten, policyn och det juridiska intyget |
| SetDocMDP | Aktiverar en certifierande signatur på DocMDP-nivå 1, 2 eller 3; måste anropas före SelectField |
| SetFieldLock | Skriver en fältlåsningsordbok med en åtgärd och en fältnamnlista |
| AppendToFile, AppendToStream | Skriver den signerade revisionen till en ny fil eller stream |
| ApplySignature | Tillämpar signaturen på dokumentet på plats |
| GetByteRange, GetEstimatedContentsBytes | Läser tillbaka ByteRange-posten och den uppskattade innehållsstorleken efter att revisionen byggts |
| SetInPlace | Markerar revisionen som en uppdatering på plats av det öppna dokumentet |
Parametrar
| IsDocTimeStamp | True när signeraren producerar en dokumenttidsstämpel |
|---|
Anmärkningar
Varje open-metod returnerar TPDFlibSignerResult
DocMDP-nivåer mappas på ISO 32000:s transformations-P-värde: 1 inga ändringar, 2 ifyllandet av formulär, 3 annoteringar; när värdet är skilt från noll sätts AcroForm /SigFlags-biten AppendOnly så att visare driver genom certifieringen
Se även
TPDFlibSignDoc, TPDFlibPFXFile, TPDFlibSignerResult, NewSignProcessFromFile, SetSignProcessDocMDP