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

SignProcessIDValor devuelto por una función NewSignProcessFrom*
CertificateDERCertificado X.509 RSA o ECDSA completo codificado en DER que corresponde a la clave privada
ProviderNameNombre del proveedor de almacenamiento de claves de Windows o una cadena vacía para Microsoft Software Key Storage Provider
KeyNameNombre de clave persistente reconocido por el proveedor
UseMachineKeyVerdadero o distinto de cero para abrir la clave desde el ámbito de la máquina
AllowUITrue o distinto de cero para permitir interfaces de usuario de PIN, consentimiento o aprobación en la nube del proveedor

Valores devueltos

1La configuración de identidad se adjuntó al proceso
0El 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