TPDFlibPFXFile
Security and Signatures
Descrizione
TPDFlibPFXFile contiene l'identità di firma usata per produrre una firma detached PKCS#7
L'identità può venire da un file PFX, da una voce di archivio certificati di sistema Windows risolta tramite il suo nome visualizzato semplice, da un PCCERT_CONTEXT duplicato esternamente, da una coppia di chiavi Ed25519, da una chiave CNG o da un callback di digest esterno
Una volta agganciata un'identità, SignData produce i byte della firma CMS e gli helper di stima dimensionano la riserva di /Contents prima che la firma venga scritta
La demo SigningWorkbench apre un PFX con questa classe prima di passare l'identità alla pipeline di firma
Sintassi
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;Metodi
| Open | Carica un file PFX o PKCS#12 con la sua password; UseMachineKeyset seleziona il keyset della macchina |
|---|---|
| OpenFromStore | Trova un certificato in un archivio di sistema Windows tramite il nome visualizzato semplice del Subject e aggancia il suo contesto; vince il primo certificato che porta una chiave privata utilizzabile |
| EnumerateStore | Riempie l'array fornito da chi chiama con un TPDFlibCertificateInfo per certificato dell'archivio e restituisce il numero effettivamente riempito |
| OpenFromContext | Aggancia un PCCERT_CONTEXT ottenuto esternamente; chi chiama mantiene la proprietà e deve tenere il contesto valido fino al completamento della firma |
| OpenEd25519, OpenEd25519FromFile | Aggancia un certificato e un seed Ed25519 da memoria o da file |
| OpenCNGKey, OpenCNGKeyHandle | Aggancia una chiave basata su CNG per provider e nome chiave, o per un handle di chiave esistente |
| OpenExternalDigestSigner | Firma tramite il callback TPDFlibExternalDigestSignEvent invece che con una chiave privata locale |
| GetCertificateDER | Il certificato agganciato in forma DER |
| SetPrivateKeyUI | Consente o sopprime il prompt della chiave privata CryptoAPI |
| SetRSAPSSPadding | Seleziona il padding RSASSA-PSS per firme RSA detached; le chiavi CryptoAPI storiche mantengono PKCS#1 v1.5 |
| CertificateKeyUsage | I bit di key usage X.509 impacchettati in due byte, o -1 quando nessun contesto è agganciato |
| EstimateSignatureSize, EstimateCertificateChainSize | Limiti superiori per l'output CMS e la catena di certificati |
| SignData | Produce la firma CMS detached dei dati con il sub-filter e l'algoritmo di digest selezionati |
Note
Tutti i metodi open restituiscono TPDFlibSignerResult, così un aggancio d'identità fallito può essere segnalato con precisione
La facade raggiunge le stesse identità tramite SetSignProcessPFXFromFile, SetSignProcessCertFromStore, SetSignProcessEd25519Identity e SetSignProcessCNGKey
Vedere anche
TPDFlibSignerResult, TPDFlibCertificateInfo, TPDFlibSigner, TPDFlibSignDoc, NewSignProcessFromFile