TPDFlibPFXFile
Security and Signatures
Beskrivelse
TPDFlibPFXFile holder signeringsidentiteten, der bruges til at producere en fristående PKCS#7-signatur
Identiteten kan komme fra en PFX-fil, en post i et Windows-systemcertifikatlager opløst ved dets simple visningsnavn, en eksternt duplikeret PCCERT_CONTEXT, et Ed25519-nøglepar, en CNG-nøgle eller et eksternt digest-callback
Når en identitet er bundet, producerer SignData CMS-signaturbytes, og estimeringshjælperne dimensionerer /Contents-reservationen, før signaturen skrives
SigningWorkbench-demoen åbner en PFX med denne klasse, før identiteten gives videre til signeringspipelinen
Syntaks
Delphi
TPDFlibPFXFile = Class
Public
Destructor Destroy; Override;
Function Open(Const FileName: WideString; Const Password: AnsiString; UseMachineKeyset: Boolean): TPDFlibSignerResult;
Function OpenFromStore(Const StoreName, CertName: WideString; UseMachineStore: Boolean): TPDFlibSignerResult;
Function EnumerateStore(Const StoreName: WideString; UseMachineStore: Boolean;
Var Infos: Array Of TPDFlibCertificateInfo): Integer;
Function OpenFromContext(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;
Function GetCertificateDER: AnsiString;
Procedure SetPrivateKeyUI(AllowUI: Boolean);
Procedure SetRSAPSSPadding(Enable: Boolean);
Function CertificateKeyUsage: Integer;
Function EstimateSignatureSize(Const Data, SubFilter: AnsiString;
DigestAlgorithm: TPDFlibDigestAlgorithm;
Const CommitmentTypeDER, SignaturePolicyDER, RevocationInfoDER: AnsiString): Integer;
Function EstimateCertificateChainSize: Integer;
Function SignData(Const Data, SubFilter: AnsiString; DigestAlgorithm: TPDFlibDigestAlgorithm;
Const CommitmentTypeDER, SignaturePolicyDER, RevocationInfoDER: AnsiString): AnsiString;
End;Metoder
| Open | Indlæser en PFX- eller PKCS#12-fil med dens adgangskode; UseMachineKeyset vælger maskinens nøglesæt |
|---|---|
| OpenFromStore | Finder et certifikat i et Windows-systemlager via Subject simple visningsnavn og binder dets kontekst; det første certifikat med en brugbar privat nøgle vinder |
| EnumerateStore | Udfylder det af kalderen leverede array med én TPDFlibCertificateInfo pr. lagercertifikat og returnerer det faktisk udfyldte antal |
| OpenFromContext | Binder en eksternt fremskaffet PCCERT_CONTEXT; kalderen beholder ejerskabet og skal holde konteksten gyldig, indtil signeringen er fuldført |
| OpenEd25519, OpenEd25519FromFile | Binder et Ed25519-certifikat og seed fra hukommelsen eller fra filer |
| OpenCNGKey, OpenCNGKeyHandle | Binder en CNG-baseret nøgle via provider og nøglenavn eller via et eksisterende nøglehandle |
| OpenExternalDigestSigner | Signerer via TPDFlibExternalDigestSignEvent-callbacket i stedet for en lokal privat nøgle |
| GetCertificateDER | Det bundne certifikat i DER-form |
| SetPrivateKeyUI | Tillader eller undertrykker CryptoAPI-adgangskodeprompten for den private nøgle |
| SetRSAPSSPadding | Vælger RSASSA-PSS-padding til fristående RSA-signaturer; ældre CryptoAPI-nøgler beholder PKCS#1 v1.5 |
| CertificateKeyUsage | X.509 key-usage-bittene pakket som to bytes, eller -1 når ingen kontekst er bundet |
| EstimateSignatureSize, EstimateCertificateChainSize | Øvre grænser for CMS-outputtet og certifikatkæden |
| SignData | Producerer den fristående CMS-signatur for dataene med den valgte subfilter- og digest-algoritme |
Bemærkninger
Alle open-metoder returnerer TPDFlibSignerResult, så en mislykket identitetsbinding kan rapporteres præcist
Facaden når de samme identiteter via SetSignProcessPFXFromFile, SetSignProcessCertFromStore, SetSignProcessEd25519Identity og SetSignProcessCNGKey
Se også
TPDFlibSignerResult, TPDFlibCertificateInfo, TPDFlibSigner, TPDFlibSignDoc, NewSignProcessFromFile