TPDFlibPFXFile
Security and Signatures
Beskrivning
TPDFlibPFXFile håller signeringsidentiteten som används för att producera en fristående PKCS#7-signatur
Identiteten kan komma från en PFX-fil, en post i ett Windows-systemcertifikatarkiv upplöst via dess enkla visningsnamn, en externt duplicerad PCCERT_CONTEXT, ett Ed25519-nyckelpar, en CNG-nyckel eller en extern digest-callback
Så snart en identitet är bunden producerar SignData CMS-signaturbytes, och uppskatthjäparna dimensionerar /Contents-reserveringen innan signaturen skrivs
SigningWorkbench-demon öppnar en PFX med den här klassen innan identiteten lämnas över till signeringspipelinen
Syntax
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 | Läser in en PFX- eller PKCS#12-fil med dess lösenord; UseMachineKeyset väljer maskinens nyckeluppsättning |
|---|---|
| OpenFromStore | Finner ett certifikat i ett Windows-systemarkiv via dess enkla Subject-visningsnamn och binder dess kontext; det första certifikatet med en användbar privat nyckel vinner |
| EnumerateStore | Fyller anroparens array med en TPDFlibCertificateInfo per arkivcertifikat och returnerar antalet som faktiskt fyllts |
| OpenFromContext | Binder en externt anskaffad PCCERT_CONTEXT; anroparen behåller ägarskapet och måste hålla kontexten giltig tills signeringen är klar |
| OpenEd25519, OpenEd25519FromFile | Binder ett Ed25519-certifikat och seed från minnet eller från filer |
| OpenCNGKey, OpenCNGKeyHandle | Binder en CNG-baserad nyckel via provider och nyckelnamn, eller via ett befintligt nyckelhandle |
| OpenExternalDigestSigner | Signerar via TPDFlibExternalDigestSignEvent-callbacken i stället för en lokal privat nyckel |
| GetCertificateDER | Det bundna certifikatet i DER-form |
| SetPrivateKeyUI | Tillåter eller undertrycker CryptoAPI-prompten för den privata nyckeln |
| SetRSAPSSPadding | Väljer RSASSA-PSS-padding för fristående RSA-signaturer; äldre CryptoAPI-nycklar behåller PKCS#1 v1.5 |
| CertificateKeyUsage | X.509 key-usage-bitarna packade som två byte, eller -1 när ingen kontext är bunden |
| EstimateSignatureSize, EstimateCertificateChainSize | Övre gränser för CMS-utdata och certifikatkedjan |
| SignData | Producerar den fristående CMS-signaturen för data med valda subfiltret och digestalgoritmen |
Anmärkningar
Alla open-metoder returnerar TPDFlibSignerResult, så en misslyckad identitetsbindning kan rapporteras precist
Fasaden når samma identiteter via SetSignProcessPFXFromFile, SetSignProcessCertFromStore, SetSignProcessEd25519Identity och SetSignProcessCNGKey
Se även
TPDFlibSignerResult, TPDFlibCertificateInfo, TPDFlibSigner, TPDFlibSignDoc, NewSignProcessFromFile