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 | Постійна назва ключа, зрозуміла постачальнику |
| UseMachineKey | True чи ненульове значення — відкрити ключ у масштабі машини |
| AllowUI | True чи ненульове значення — дозволити інтерфейси PIN, згоди чи хмарного підтвердження від постачальника |
Повернуті значення
| 1 | Конфігурацію особи прикріплено до процесу |
|---|---|
| 0 | ID процесу, сертифікат чи назва ключа недійсні |
Примітки
Ключ відкривається, коли процес підпису виконується, і жодних байтів приватного ключа не потрапляє в пам'ять бібліотеки
Коли AllowUI дорівнює false, NCRYPT_SILENT_FLAG застосовується до відкриття ключа та підписанняЗгенерований підпис CMS перевіряється проти
CertificateDER до прийняття, тож ключ того ж алгоритму, але інший, відхиляєтьсяActiveX приймає варіант-масив байтів, а DLL використовує явну довжину сертифіката, тож вбудовані нульові байти зберігаються
ActiveX приймає варіант із масивом байтів, а DLL використовує явну довжину сертифіката, тож вбудовані нульові байти зберігаються
Див. також
SetSignProcessCNGKeyFromFile, SetSignProcessCNGKeyByHandle, SetSignProcessPrivateKeyUI