SetSignProcessCNGKey
Сигурност и подписи
Описание
Прикачва именуван частен ключ NCrypt и неговия DER-кодиран сертификат X.509 към процес за подписване на PDF
Ключът се отваря директно от заявения доставчик на хранилище за ключове, което позволява самоличности за подписване, поддържани от TPM, хардуерни токени, облачен KSP и други само за CNG, без експортиране на частния ключ
Синтаксис
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-кодиран RSA или ECDSA X.509 сертификат, съответстващ на частния ключ |
| ProviderName | Име на доставчика на хранилище за ключове на Windows или празен низ за Microsoft Software Key Storage Provider |
| KeyName | Постоянно име на ключ, разпознавано от доставчика |
| UseMachineKey | True или ненулева стойност за отваряне на ключа от обхвата на машината |
| AllowUI | True или ненулева стойност за разрешаване на потребителски интерфейси за PIN, съгласие или облачно одобрение от доставчика |
Върнати стойности
| 1 | Конфигурацията за идентичност беше прикрепена към процеса |
|---|---|
| 0 | Идентификаторът на процеса, сертификатът или името на ключа е невалидно |
Забележки
Ключът се отваря при изпълнение на процеса за подписване и в паметта на библиотеката не постъпват байтове на частния ключ
Когато AllowUI е false, NCRYPT_SILENT_FLAG се прилага при отваряне на ключ и подписване
Генерираният CMS подпис се проверява спрямо CertificateDER, преди да бъде приет, така че несъответстващ ключ със същия алгоритъм се отхвърля
ActiveX приема вариант с масив от байтове, а DLL използва изрична дължина на сертификата, така че вградените нулеви байтове се запазват
Вижте също
SetSignProcessCNGKeyFromFile, SetSignProcessCNGKeyByHandle, SetSignProcessPrivateKeyUI