SetSignProcessCNGKey

Seguridad y firmas

Descripción

Adjunta 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 permite identidades de firma respaldadas por TPM, tokens de hardware, KSP en la nube y otras exclusivas de CNG 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 con 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 que reconoce el proveedor
UseMachineKeyVerdadero o distinto de cero para abrir la clave desde el ámbito de la máquina
AllowUITrue o un valor distinto de cero para permitir interfaces de usuario del proveedor para PIN, consentimiento o aprobación en la nube

Valores devueltos

1La configuración de identidad se adjuntó al proceso
0El identificador de proceso, el certificado o el nombre de clave no eran válidos

Observaciones

La clave se abre cuando se ejecuta el proceso de firma y ningún byte de la clave privada entra en la memoria de la biblioteca

Cuando AllowUI es false, se aplica NCRYPT_SILENT_FLAG a la apertura de claves y a la firma

La firma CMS generada se verifica con 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 utiliza una longitud de certificado explícita, por lo que se conservan los bytes cero incrustados

Véase también

SetSignProcessCNGKeyFromFile, SetSignProcessCNGKeyByHandle, SetSignProcessPrivateKeyUI