SetSignProcessCNGKey

Безпека та підписи

Опис

Приєднує іменований приватний ключ NCrypt та його сертифікат X.509 у кодуванні DER до процесу підписання PDF

Ключ відкривається прямо з запитаного постачальника зберігання ключів, що вмикає підписання на основі TPM, апаратних токенів, хмарних KSP та інших CNG-only особ без експорту приватного ключа

Синтаксис

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);

Параметри

SignProcessIDЗначення, повернуте функцією NewSignProcessFrom*
CertificateDERПовний DER-кодований сертифікат X.509 RSA чи ECDSA, що відповідає приватному ключу
ProviderNameНазва постачальника сховища ключів Windows чи порожній рядок для Microsoft Software Key Storage Provider
KeyNameПостійна назва ключа, зрозуміла постачальнику
UseMachineKeyTrue чи ненульове значення — відкрити ключ у масштабі машини
AllowUITrue чи ненульове значення — дозволити інтерфейси PIN, згоди чи хмарного підтвердження від постачальника

Повернуті значення

1Конфігурацію особи прикріплено до процесу
0ID процесу, сертифікат чи назва ключа недійсні

Примітки

Ключ відкривається, коли процес підпису виконується, і жодних байтів приватного ключа не потрапляє в пам'ять бібліотеки

Коли AllowUI дорівнює false, NCRYPT_SILENT_FLAG застосовується до відкриття ключа та підписанняЗгенерований підпис CMS перевіряється проти

CertificateDER до прийняття, тож ключ того ж алгоритму, але інший, відхиляєтьсяActiveX приймає варіант-масив байтів, а DLL використовує явну довжину сертифіката, тож вбудовані нульові байти зберігаються

ActiveX приймає варіант із масивом байтів, а DLL використовує явну довжину сертифіката, тож вбудовані нульові байти зберігаються

Див. також

SetSignProcessCNGKeyFromFile, SetSignProcessCNGKeyByHandle, SetSignProcessPrivateKeyUI