TPDFlibPFXFile
Security and Signatures
Descripción
TPDFlibPFXFile contiene la identidad de firma usada para producir una firma desasociada PKCS#7
La identidad puede venir de un archivo PFX, de una entrada de almacén de certificados del sistema Windows resuelta por su nombre simple de visualización, de un PCCERT_CONTEXT duplicado externamente, de un par de claves Ed25519, de una clave CNG o de un callback de digest externo
Una vez vinculada una identidad, SignData produce los bytes de la firma CMS y los helpers de estimación dimensionan la reserva de /Contents antes de escribir la firma
La demo SigningWorkbench abre un PFX con esta clase antes de entregar la identidad al pipeline de firma
Sintaxis
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étodos
| Open | Carga un archivo PFX o PKCS#12 con su contraseña; UseMachineKeyset selecciona el conjunto de claves de la máquina |
|---|---|
| OpenFromStore | Localiza un certificado en un almacén del sistema Windows por el nombre simple de visualización del Subject y vincula su contexto; gana el primer certificado que lleve una clave privada utilizable |
| EnumerateStore | Rellena el array proporcionado por quien llama con un TPDFlibCertificateInfo por certificado del almacén y devuelve el número realmente rellenado |
| OpenFromContext | Vincula un PCCERT_CONTEXT obtenido externamente; quien llama conserva la propiedad y debe mantener el contexto válido hasta que la firma termine |
| OpenEd25519, OpenEd25519FromFile | Vincula un certificado y una semilla Ed25519 desde memoria o desde archivos |
| OpenCNGKey, OpenCNGKeyHandle | Vincula una clave respaldada por CNG por proveedor y nombre de clave, o por un handle de clave existente |
| OpenExternalDigestSigner | Firma mediante el callback TPDFlibExternalDigestSignEvent en lugar de una clave privada local |
| GetCertificateDER | El certificado vinculado en forma DER |
| SetPrivateKeyUI | Permite o suprime el aviso de clave privada de CryptoAPI |
| SetRSAPSSPadding | Selecciona relleno RSASSA-PSS para firmas RSA desasociadas; las claves CryptoAPI heredadas mantienen PKCS#1 v1.5 |
| CertificateKeyUsage | Los bits de key usage X.509 empaquetados en dos bytes, o -1 cuando no hay contexto vinculado |
| EstimateSignatureSize, EstimateCertificateChainSize | Límites superiores para la salida CMS y la cadena de certificados |
| SignData | Produce la firma CMS desasociada de los datos con el subfiltro y el algoritmo de digest seleccionados |
Observaciones
Todos los métodos open devuelven TPDFlibSignerResult, así que un fallo al vincular la identidad se puede informar con precisión
La fachada accede a las mismas identidades mediante SetSignProcessPFXFromFile, SetSignProcessCertFromStore, SetSignProcessEd25519Identity y SetSignProcessCNGKey
Véase también
TPDFlibSignerResult, TPDFlibCertificateInfo, TPDFlibSigner, TPDFlibSignDoc, NewSignProcessFromFile