TPDFlibPFXFile
Security and Signatures
Description
TPDFlibPFXFile détient l'identité de signature utilisée pour produire une signature détachée PKCS#7
L'identité peut provenir d'un fichier PFX, d'une entrée de magasin de certificats système Windows résolue par son nom d'affichage simple, d'un PCCERT_CONTEXT dupliqué de l'extérieur, d'une paire de clés Ed25519, d'une clé CNG ou d'un callback de digest externe
Une fois une identité liée, SignData produit les octets de la signature CMS et les helpers d'estimation dimensionnent la réservation de /Contents avant l'écriture de la signature
La démo SigningWorkbench ouvre un PFX avec cette classe avant de remettre l'identité au pipeline de signature
Syntaxe
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;Méthodes
| Open | Charge un fichier PFX ou PKCS#12 avec son mot de passe ; UseMachineKeyset sélectionne le jeu de clés de la machine |
|---|---|
| OpenFromStore | Repère un certificat dans un magasin système Windows par le nom d'affichage simple du Subject et lie son contexte ; le premier certificat portant une clé privée utilisable gagne |
| EnumerateStore | Remplit le tableau fourni par l'appelant avec un TPDFlibCertificateInfo par certificat du magasin et renvoie le nombre réellement rempli |
| OpenFromContext | Lie un PCCERT_CONTEXT obtenu de l'extérieur ; l'appelant conserve la propriété et doit garder le contexte valide jusqu'à la fin de la signature |
| OpenEd25519, OpenEd25519FromFile | Lie un certificat et une graine Ed25519 depuis la mémoire ou des fichiers |
| OpenCNGKey, OpenCNGKeyHandle | Lie une clé adossée à CNG par fournisseur et nom de clé, ou par un handle de clé existant |
| OpenExternalDigestSigner | Signe via le callback TPDFlibExternalDigestSignEvent au lieu d'une clé privée locale |
| GetCertificateDER | Le certificat lié sous forme DER |
| SetPrivateKeyUI | Autorise ou supprime l'invite de clé privée CryptoAPI |
| SetRSAPSSPadding | Sélectionne le remplissage RSASSA-PSS pour les signatures RSA détachées ; les clés CryptoAPI historiques conservent PKCS#1 v1.5 |
| CertificateKeyUsage | Les bits de key usage X.509 empaquetés sur deux octets, ou -1 quand aucun contexte n'est lié |
| EstimateSignatureSize, EstimateCertificateChainSize | Bornes supérieures pour la sortie CMS et la chaîne de certificats |
| SignData | Produit la signature CMS détachée des données avec le sous-filtre et l'algorithme de digest sélectionnés |
Remarques
Toutes les méthodes open renvoient TPDFlibSignerResult, un échec de liaison d'identité peut donc être signalé précisément
La façade atteint les mêmes identités via SetSignProcessPFXFromFile, SetSignProcessCertFromStore, SetSignProcessEd25519Identity et SetSignProcessCNGKey
Voir aussi
TPDFlibSignerResult, TPDFlibCertificateInfo, TPDFlibSigner, TPDFlibSignDoc, NewSignProcessFromFile