TPDFlibSigner
Security and Signatures
Beskrivelse
TPDFlibSigner er den selvstændige signeringsmotor, der parer et TPDFlibSignDoc-mål med en TPDFlibPFXFile-identitet og skriver den færdige signatur som en ny inkrementel revision
Åbn PDF'en fra fil, stream eller streng, bind identiteten med en af open-metoderne, vælg målfeltet, konfigurer signaturen, og afslut med AppendToFile, AppendToStream eller ApplySignature
Klassen dækker hele signeringsfunktionssættet: digest-valg, indholdsreservation og -estimering, tilbagekaldsinformation, commitment-typer, signaturpolitikker, juridiske attester, DocMDP-certificeringsniveauer, feltlåse, dokumenttidsstempler og passthrough-signaturer af fast længde
Facaden eksponerer den samme pipeline via de dokumenterede SignProcess-funktioner; brug denne klasse direkte, når signeringsworkflowet skal indlejres i en større egen revisionsskriver
Syntaks
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 | Åbner dokumentet, der skal signeres, fra fil, stream eller ANSI-streng |
|---|---|
| OpenPFX, OpenCertStore, OpenCertContext | Binder en PFX-fil, et systemlager-certifikat via visningsnavn eller en ekstern certifikatkontekst |
| OpenEd25519, OpenEd25519FromFile | Binder et Ed25519-nøglepar fra hukommelsen eller filer |
| OpenCNGKey, OpenCNGKeyHandle | Binder en CNG-nøgle via provider og nøglenavn eller via nøglehandle |
| OpenExternalDigestSigner | Delegerer digest-signaturen til et eksternt callback |
| SelectField | Vælger signaturfeltet via fuldt kvalificeret navn og side |
| SetSignatureProperty | Sætter én af spReason, spLocation, spContactInfo, spFieldImage, spSubFilter og spFieldImageOptions |
| SetAppearanceText | Gemmer den automatisk genererede synlige tekstblok, der skrives i feltudseendet ved append-tid |
| SetSignatureBounds | Placerer feltet ved eksplicitte koordinater |
| SetPassthrough | Producerer en passthrough-signatur med præcis den givne længde til ekstern signering |
| SetDocTimeStamp | Skifter signaturen til et dokumenttidsstempel |
| SetDigestAlgorithm | Vælger den digest, der bruges til signaturen |
| SetContentsReserveBytes, SetContentsEstimate | Reserverer ekstra bytes eller dimensionerer reservationen ud fra kæde-, CRL-, OCSP- og tidsstempel-estimater plus en sikkerhedsmargen |
| SetRevocationInfo | Indlejrer forud indsamlede tilbagekaldsdata i DER-form |
| SetCommitmentType, SetSignaturePolicy, SetLegalAttestation | Erklærer signeringshensigten, politikken og den juridiske attestation |
| SetDocMDP | Aktiverer en certificeringssignatur på DocMDP-niveau 1, 2 eller 3; skal kaldes før SelectField |
| SetFieldLock | Skriver en feltlåsningsordbog med en handling og en feltnavneliste |
| AppendToFile, AppendToStream | Skriver den signerede revision til en ny fil eller stream |
| ApplySignature | Anvender signaturen på dokumentet på stedet |
| GetByteRange, GetEstimatedContentsBytes | Læser ByteRange-indgangen og den estimerede indholdsstørrelse tilbage, efter revisionen er bygget |
| SetInPlace | Markerer revisionen som en opdatering på stedet af det åbne dokument |
Parametre
| IsDocTimeStamp | True, når signeringsmotoren producerer et dokumenttidsstempel |
|---|
Bemærkninger
Enhver open-metode returnerer TPDFlibSignerResult
DocMDP-niveauer svarer til ISO 32000's transformations-P-værdi: 1 ingen ændringer, 2 formularudfyldning, 3 annotationer; ved værdier forskellige fra nul sættes AcroForm /SigFlags-bitten AppendOnly, så viewers håndhæver certificeringen
Se også
TPDFlibSignDoc, TPDFlibPFXFile, TPDFlibSignerResult, NewSignProcessFromFile, SetSignProcessDocMDP