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
| SignProcessID | Valor devolvido por uma função NewSignProcessFrom* |
|---|---|
| CertificateDER | Certificado X.509 RSA ou ECDSA completo, codificado em DER, correspondente à chave privada |
| ProviderName | Nome do fornecedor de armazenamento de chaves do Windows, ou uma cadeia vazia para Microsoft Software Key Storage Provider |
| KeyName | Nome de chave persistente compreendido pelo fornecedor |
| UseMachineKey | True ou um valor diferente de zero para abrir a chave no âmbito do computador |
| AllowUI | True 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
| 1 | A configuração da identidade foi associada ao processo |
|---|---|
| 0 | O 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