Используйте ключ / сертификат на Ukey для подписи данных - PullRequest
0 голосов
/ 11 июня 2018

Я хочу получить сертификат от ukey и подписать данные.Теперь я могу получить его и преуспел в консольной прикладной программе.Но когда я делаю его в качестве элемента управления OCX для Internet Explorer, он не работает.

Когда я использую следующую функцию:

CryptAcquireContext(&hProvder, NULL, my_provder_name, PROV_RSA_FULL, 0)

, происходит сбой, возвращая nte_bad_keyset.

Когда я использую CRYPT_NEWKEYSET или CRYPT_MACHINE_KEYSET вместо 0, подпись данных не выполняется.

Как создать подпись с помощью ukey?

1 Ответ

0 голосов
/ 04 июля 2018

CryptAcquireContext (& hProvder, NULL, my_provder_name, PROV_RSA_FULL, 0);

Вы хотите получить csp, который может быть полезен для подписи вашего файла. В настольном приложении вы можете использовать функцию с этими параметрамикак в этом случае. Но в браузере вы не можете.мы хотим получить контейнер ключей по умолчанию, связанный с текущим пользователем.Однако при создании сертификатов они могут быть помещены в контейнер ключей, отличный от стандартного, поэтому контейнер по умолчанию не существует.Зачем?Проблема, кажется, проистекает из второго параметра.Итак, мы должны указать имя контейнера ключа в качестве второго параметра.Например: CryptAcquireContext (& hProvder, имя_ контейнера, my_provder_name, PROV_RSA_FULL, 0);

...