SetSignProcessCNGKey

Segurança e assinaturas

Descrição

Associa uma chave privada NCrypt com nome e o respetivo certificado X.509 codificado em DER a um processo de assinatura PDF

A chave é aberta diretamente a partir do fornecedor de armazenamento de chaves solicitado, permitindo identidades de assinatura apoiadas por TPM, tokens de hardware, KSP na nuvem e outras exclusivas de CNG sem exportar a chave privada

Sintaxe

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 devolvido por uma função NewSignProcessFrom*
CertificateDERCertificado X.509 RSA ou ECDSA completo, codificado em DER, correspondente à chave privada
ProviderNameNome do fornecedor de armazenamento de chaves do Windows, ou uma cadeia vazia para Microsoft Software Key Storage Provider
KeyNameNome de chave persistente compreendido pelo fornecedor
UseMachineKeyTrue ou um valor diferente de zero para abrir a chave no âmbito do computador
AllowUITrue ou um valor diferente de zero para permitir interfaces de utilizador do fornecedor destinadas à introdução de PIN, ao consentimento ou à aprovação na nuvem

Valores devolvidos

1A configuração da identidade foi associada ao processo
0O ID do processo, o certificado ou o nome da chave era inválido

Observações

A chave é aberta quando o processo de assinatura é executado, e nenhum byte da chave privada entra na memória da biblioteca

Quando AllowUI é falso, NCRYPT_SILENT_FLAG é aplicado à abertura de chaves e à assinatura

A assinatura CMS gerada é verificada em relação a CertificateDER antes de ser aceite, pelo que uma chave incompatível, ainda que utilize o mesmo algoritmo, é rejeitada

ActiveX aceita uma variante de matriz de bytes, e a DLL utiliza um comprimento de certificado explícito para conservar bytes zero incorporados

Consulte também

SetSignProcessCNGKeyFromFile, SetSignProcessCNGKeyByHandle, SetSignProcessPrivateKeyUI