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Постоянно име на ключ, разпознавано от доставчика
UseMachineKeyTrue или ненулева стойност за отваряне на ключа от обхвата на машината
AllowUITrue или ненулева стойност за разрешаване на потребителски интерфейси за PIN, съгласие или облачно одобрение от доставчика

Върнати стойности

1Конфигурацията за идентичност беше прикрепена към процеса
0Идентификаторът на процеса, сертификатът или името на ключа е невалидно

Забележки

Ключът се отваря при изпълнение на процеса за подписване и в паметта на библиотеката не постъпват байтове на частния ключ

Когато AllowUI е false, NCRYPT_SILENT_FLAG се прилага при отваряне на ключ и подписване

Генерираният CMS подпис се проверява спрямо CertificateDER, преди да бъде приет, така че несъответстващ ключ със същия алгоритъм се отхвърля

ActiveX приема вариант с масив от байтове, а DLL използва изрична дължина на сертификата, така че вградените нулеви байтове се запазват

Вижте също

SetSignProcessCNGKeyFromFile, SetSignProcessCNGKeyByHandle, SetSignProcessPrivateKeyUI