Форум КриптоПро
»
Средства криптографической защиты информации
»
Встраивание
»
При запросе на сертификат не создается ключ, ошибка The keyset is not defined
Статус: Новичок
Группы: Участники
Зарегистрирован: 27.02.2013(UTC) Сообщений: 5
Сказал(а) «Спасибо»: 1 раз
|
Здравствуйте. Взял вот этот пример, пытаюсь его сделать без браузера на Delphi. Предполагаю создать новый ключ и на нем сделать запрос на сертификат. Но ключ не создается, пишет ошибку "The keyset is not defined". В чем может быть дело? Код.
var fac: IWebClassFactory; pkey: IX509PrivateKey; CertificateRequestPkcs10: IX509CertificateRequestPkcs10; DistinguishedName: IX500DistinguishedName; KeyUsageExtension: IX509ExtensionKeyUsage; Enroll: IX509Enrollment; certReq: WideString; begin try CoInitializeEx(nil, 2);
fac := CoWebClassFactory.Create;
pkey := fac.CreateObject('X509Enrollment.CX509PrivateKey') as IX509PrivateKey;
pKey.ProviderName := 'Crypto-Pro GOST R 34.10-2001'; pKey.ProviderType := 75; pKey.KeySpec := XCN_AT_KEYEXCHANGE; pkey.Existing := false; pkey.ContainerName := 'a'; //pkey.ContainerNamePrefix := 'abc'; pkey.KeyProtection := XCN_NCRYPT_UI_NO_PROTECTION_FLAG; pkey.ExportPolicy := XCN_NCRYPT_ALLOW_EXPORT_FLAG; pkey.Length := 256;
CertificateRequestPkcs10 := fac.CreateObject( 'X509Enrollment.CX509CertificateRequestPkcs10') as IX509CertificateRequestPkcs10; CertificateRequestPkcs10.InitializeFromPrivateKey(ContextUser, PKey, '');
DistinguishedName := fac.CreateObject( 'X509Enrollment.CX500DistinguishedName') as IX500DistinguishedName; DistinguishedName.Encode('CN="TestName"', 0); CertificateRequestPkcs10.Subject := DistinguishedName;
KeyUsageExtension := fac.CreateObject( 'X509Enrollment.CX509ExtensionKeyUsage') as IX509ExtensionKeyUsage; KeyUsageExtension.InitializeEncode( CERT_KEY_ENCIPHERMENT_KEY_USAGE OR CERT_DATA_ENCIPHERMENT_KEY_USAGE OR CERT_DIGITAL_SIGNATURE_KEY_USAGE OR CERT_NON_REPUDIATION_KEY_USAGE ); CertificateRequestPkcs10.X509Extensions.Add(KeyUsageExtension);
Enroll := fac.CreateObject('X509Enrollment.CX509Enrollment') as IX509Enrollment; Enroll.InitializeFromRequest(CertificateRequestPkcs10);
---> здесь происходит ошибка. certReq := Enroll.CreateRequest(XCN_CRYPT_STRING_BASE64HEADER); writeln(certReq);
writeln('OK'); sleep(1000); except on E: Exception do begin writeln('Error: ' + e.message); writeln('Press ENTER to continue...'); readln; writeln; end; end;
Если поставить пустое имя контейнера, выходит ошибка "The parameter is incorrect". Если вызвать метод Create у ключа, пишет Not implemented. Отредактировано пользователем 25 января 2018 г. 10:28:30(UTC)
| Причина: Не указана
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 27.02.2013(UTC) Сообщений: 5
Сказал(а) «Спасибо»: 1 раз
|
Если поставить пустое имя контейнера, выходит ошибка "The parameter is incorrect"
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 12.08.2013(UTC) Сообщений: 834 Откуда: Москва Сказал «Спасибо»: 5 раз Поблагодарили: 215 раз в 174 постах
|
Автор: getsystemtick Если поставить пустое имя контейнера, выходит ошибка "The parameter is incorrect" Добрый день. Попробуйте поменять имя провайдера на "Crypto-Pro GOST R 34.10-2001 Cryptographic Service Provider" |
|
1 пользователь поблагодарил Grey за этот пост.
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 27.02.2013(UTC) Сообщений: 5
Сказал(а) «Спасибо»: 1 раз
|
Автор: Grey Автор: getsystemtick Если поставить пустое имя контейнера, выходит ошибка "The parameter is incorrect" Добрый день. Попробуйте поменять имя провайдера на "Crypto-Pro GOST R 34.10-2001 Cryptographic Service Provider" Спасибо, помогло!
|
|
|
|
Форум КриптоПро
»
Средства криптографической защиты информации
»
Встраивание
»
При запросе на сертификат не создается ключ, ошибка The keyset is not defined
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close