SetSignProcessCNGKey
Seguridad y firmas
Descripción
Asocia una clave privada NCrypt con nombre y su certificado X.509 codificado en DER a un proceso de firma PDF
La clave se abre directamente desde el proveedor de almacenamiento de claves solicitado, lo que habilita identidades de firma solo CNG respaldadas por TPM, token de hardware, KSP en la nube y otros, sin exportar la clave privada
Sintaxis
Delphi
Function TPDFlib.SetSignProcessCNGKey(SignProcessID: Integer; Const CertificateDER: AnsiString; Const ProviderName, KeyName: WideString; UseMachineKey, AllowUI: Boolean): Integer;
ActiveX
Function PDFlib::SetSignProcessCNGKey(SignProcessID As Long, CertificateDER As Variant, ProviderName As String, KeyName As String, UseMachineKey As Long, AllowUI As Long) As Long
DLL
int DLSetSignProcessCNGKey(int InstanceID, int SignProcessID, const char* CertificateDER, int CertificateLength, const wchar_t* ProviderName, const wchar_t* KeyName, int UseMachineKey, int AllowUI);
Parámetros
| SignProcessID | Valor devuelto por una función NewSignProcessFrom* |
|---|---|
| CertificateDER | Certificado X.509 RSA o ECDSA completo codificado en DER que corresponde a la clave privada |
| ProviderName | Nombre del proveedor de almacenamiento de claves de Windows o una cadena vacía para Microsoft Software Key Storage Provider |
| KeyName | Nombre de clave persistente reconocido por el proveedor |
| UseMachineKey | Verdadero o distinto de cero para abrir la clave desde el ámbito de la máquina |
| AllowUI | True o distinto de cero para permitir interfaces de usuario de PIN, consentimiento o aprobación en la nube del proveedor |
Valores devueltos
| 1 | La configuración de identidad se adjuntó al proceso |
|---|---|
| 0 | El identificador de proceso, certificado o nombre de clave no era válido |
Observaciones
La clave se abre cuando se ejecuta el proceso de firma y ningún byte de clave privada entra en la memoria de la biblioteca
Cuando AllowUI es falso, se aplica NCRYPT_SILENT_FLAG a la apertura y firma de claves
La firma CMS generada se verifica contra CertificateDER antes de aceptarse, por lo que se rechaza una clave no coincidente aunque use el mismo algoritmo
ActiveX acepta una variante de matriz de bytes y la DLL usa una longitud explícita de certificado para conservar los bytes cero incrustados
Véase también
SetSignProcessCNGKeyFromFile, SetSignProcessCNGKeyByHandle, SetSignProcessPrivateKeyUI