TPDFlibSigner
Security and Signatures
Beschrijving
TPDFlibSigner is de zelfstandige ondertekeningsengine die een TPDFlibSignDoc-doel koppelt aan een TPDFlibPFXFile-identiteit en de voltooide handtekening wegschrijft als een nieuwe incrementele revisie
Open de PDF vanuit bestand, stream of tekenreeks, bind de identiteit met een van de open-methoden, kies het doelveld, stel de handtekening in en rond af met AppendToFile, AppendToStream of ApplySignature
De klasse dekt het volledige ondertekenpakket: digestkeuze, inhoudsreservering en -schatting, intrekkingsinfo, commitment-typen, handtekeningsbeleid, juridische attestaties, DocMDP-certificeringsniveaus, veldvergrendelingen, documenttijdstempels en passthrough-handtekeningen van vaste lengte
De façade stelt dezelfde pijplijn beschikbaar via de gedocumenteerde SignProcess-functies; gebruik deze klasse direct wanneer de ondertekenworkflow in een grotere eigen revisieschrijver moet worden ingebed
Syntaxis
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 | Opent het te ondertekenen document vanuit bestand, stream of ANSI-tekenreeks |
|---|---|
| OpenPFX, OpenCertStore, OpenCertContext | Bindt een PFX-bestand, een systeemstore-certificaat op weergavenaam, of een externe certificaatcontext |
| OpenEd25519, OpenEd25519FromFile | Bindt een Ed25519-sleutelpaar uit geheugen of bestanden |
| OpenCNGKey, OpenCNGKeyHandle | Bindt een CNG-sleutel op provider en sleutelnaam, of op sleutelhandle |
| OpenExternalDigestSigner | Delegeert de digest-handtekening aan een externe callback |
| SelectField | Kiest het handtekeningveld op volledig gekwalificeerde naam en pagina |
| SetSignatureProperty | Zet een van spReason, spLocation, spContactInfo, spFieldImage, spSubFilter en spFieldImageOptions |
| SetAppearanceText | Bewaart het automatisch gegenereerde zichtbare tekstblok dat bij het toevoegen in het velduiterlijk wordt weggeschreven |
| SetSignatureBounds | Plaatst het veld op expliciete coördinaten |
| SetPassthrough | Maakt een passthrough-handtekening van precies de opgegeven lengte voor extern ondertekenen |
| SetDocTimeStamp | Schakelt de handtekening over op een documenttijdstempel |
| SetDigestAlgorithm | Kiest de digest die voor de handtekening wordt gebruikt |
| SetContentsReserveBytes, SetContentsEstimate | Reserveert extra bytes of stelt de reservering in op basis van schattingen voor keten, CRL, OCSP en tijdstempel plus een veiligheidsmarge |
| SetRevocationInfo | Embedt vooraf verzamelde intrekkingsgegevens in DER-vorm |
| SetCommitmentType, SetSignaturePolicy, SetLegalAttestation | Declareert de ondertekeningsintentie, het beleid en de juridische attestatie |
| SetDocMDP | Activeert een certificerende handtekening op DocMDP-niveau 1, 2 of 3; moet vóór SelectField worden aangeroepen |
| SetFieldLock | Schrijft een veldvergrendelingswoordenboek met een actie en een lijst met veldnamen |
| AppendToFile, AppendToStream | Schrijft de ondertekende revisie naar een nieuw bestand of stream |
| ApplySignature | Past de handtekening toe op het document ter plekke |
| GetByteRange, GetEstimatedContentsBytes | Leest na het bouwen van de revisie het ByteRange-item en de geschatte inhoudsgrootte terug |
| SetInPlace | Markeert de revisie als een update ter plekke van het geopende document |
Parameters
| IsDocTimeStamp | True wanneer de ondertekenaar een documenttijdstempel maakt |
|---|
Opmerkingen
Elke open-methode geeft TPDFlibSignerResult terug
DocMDP-niveaus verwijzen naar de ISO 32000-transformatie-P-waarde: 1 geen wijzigingen, 2 formulieren invullen, 3 annotaties; bij een waarde ongelijk aan nul wordt de AcroForm /SigFlags-bit AppendOnly gezet zodat viewers de certificering afdwingen
Zie ook
TPDFlibSignDoc, TPDFlibPFXFile, TPDFlibSignerResult, NewSignProcessFromFile, SetSignProcessDocMDP