Статус: Новичок
Группы: Участники
Зарегистрирован: 17.04.2022(UTC) Сообщений: 2  Откуда: Новосибирск Сказал(а) «Спасибо»: 1 раз
|
Добрый день! При попытке создать запрос на сертификат, для созданного средствами JCSP контейнера, возникает ошибка: Цитата: Caused by: java.security.InvalidKeyException: Алгоритм ключа не соответствует алгоритму подписи. at ru.CryptoPro.JCSP.Sign.CryptoProSign.engineInitSign(Unknown Source) at java.base/java.security.Signature.initSign(Signature.java:546) at ru.CryptoPro.JCPRequest.GostCertificateRequest.sign(Unknown Source) at ru.CryptoPro.JCPRequest.GostCertificateRequest.encodeAndSign(Unknown Source) at ru.CryptoPro.JCPRequest.GostCertificateRequest.encodeAndSign(Unknown Source) at ru.test.GenerateKeyPair.generate(GenerateKeyPair.java:64)(строка request.encodeAndSign(keyPair.getPrivate()))
Хотя всё сделано согласно документации Код: KeyPairGenerator kg = KeyPairGenerator.getInstance(JCP.GOST_EL_2012_256_NAME, JCSP.PROVIDER_NAME);
KeyStoreConfig keyStoreConfig = KeyStoreConfig.getInstance();
String containerName = "testContainer1";
String container = keyStoreConfig.getHDImage().makeContainerName(containerName);
NameAlgIdSpec nameParams = new NameAlgIdSpec(container);
kg.initialize(nameParams);
KeyPair keyPair = kg.generateKeyPair();
GostCertificateRequest request = new GostCertificateRequest(JCSP.PROVIDER_NAME);
request.setKeyUsage(KeyUsage.SIGN_DEFAULT);
request.setPublicKeyInfo(keyPair.getPublic());
request.setSubjectInfo(new X500Name("Иванов Иван Иванович", "IT отдел", "ООО Рога и Копыта", "Новосибирск", "Новосибирская область", "RU"));
request.encodeAndSign(keyPair.getPrivate());
byte[] encoded = request.getEncoded();
Замена строки Код:request.setKeyUsage(KeyUsage.SIGN_DEFAULT);
на строку Код:request.init(JCP.GOST_EL_2012_256_NAME);
не помогает, к тому же метод init описан в документации как устаревший. Прошу помочь понять, что я делаю не так.
|
|
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 4,078  Откуда: Крипто-Про Сказал(а) «Спасибо»: 22 раз Поблагодарили: 744 раз в 701 постах
|
Добрый день. Попробуйте передать алгоритм подписи так: Код:request.encodeAndSign(keyPair.getPrivate(), JCP.GOST_SIGN_2012_256_NAME);
|
|
 1 пользователь поблагодарил Евгений Афанасьев за этот пост.
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close