Форум КриптоПро
»
Средства криптографической защиты информации
»
КриптоПро JCP, JavaTLS
»
Дешифрация с помощью EnvelopedSignature, ошибка - NoSuchProviderException: Crypto
Статус: Участник
Группы: Участники
Зарегистрирован: 09.11.2020(UTC) Сообщений: 18
|
Здравствуйте. Имеется строка в Base64, при раскодирование получается байтовое представление, зашифрованный по ГОСТ 28147-89. Код для расшифровки: Код:
public class JCPProvider{
public MyProvider() throws Exception {
addProvider("ru.CryptoPro.JCP.JCP");
addProvider("ru.CryptoPro.reprov.RevCheck");
CAdESUtility.initJCPAlgorithms();
JCPXMLDSigInit.init();
System.setProperty("com.sun.security.enableCRLDP", "true");
System.setProperty("com.ibm.security.enableCRLDP", "true");
System.setProperty("ru.CryptoPro.reprov.enableAIAcaIssuers", "true");
}
public String decrypt(byte[] content, X509Certificate cert, PrivateKey privateKey) throws Exception {
EnvelopedSignature signature = new EnvelopedSignature(new ByteArrayInputStream(content));
signature.addKeyAgreeRecipient();
ByteArrayOutputStream decryptedByteDataStream = new ByteArrayOutputStream();
signature.decrypt(cert, privateKey, decryptedByteDataStream);
byte[] decryptedData = decryptedByteDataStream.toByteArray();
decryptedByteDataStream.flush();
decryptedByteDataStream.close();
return new String(decryptedData);
}
}
Получаю ошибку: Код:Caused by: ru.CryptoPro.CAdES.exception.EnvelopedException: Input cipher initiation failed
at ru.CryptoPro.CAdES.pc_1.pc_1.cl_0.<init>(Unknown Source)
at ru.CryptoPro.CAdES.pc_1.pc_1.cl_1.getRecipientOperator(Unknown Source)
at org.bouncycastle.cms.KeyTransRecipientInformation.getRecipientOperator(Unknown Source)
at org.bouncycastle.cms.RecipientInformation.getContentStream(Unknown Source)
at org.bouncycastle.cms.RecipientInformation.getContent(Unknown Source)
... 118 common frames omitted
Caused by: java.security.NoSuchProviderException: No such provider: Crypto
at java.base/javax.crypto.Cipher.getInstance(Cipher.java:622)
... 123 common frames omitted
Что я делаю не так?
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 4,006  Откуда: Крипто-Про Сказал(а) «Спасибо»: 21 раз Поблагодарили: 715 раз в 675 постах
|
Здравствуйте. Как сказано в ошибке, нет провайдера Crypto, не добавили его. Обычно добавляется так: Security.addProvider(new CryptoProvider()); |
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 09.11.2020(UTC) Сообщений: 18
|
А откуда взять этот класс - CryptoProvider?
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 4,006  Откуда: Крипто-Про Сказал(а) «Спасибо»: 21 раз Поблагодарили: 715 раз в 675 постах
|
Среда, где вы пишете код, должна предложить импорт класса CryptoProvider, если модуль JCryptoP.jar (в нем класс) подключён к проекту. |
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 09.11.2020(UTC) Сообщений: 18
|
|
|
|
|
Форум КриптоПро
»
Средства криптографической защиты информации
»
КриптоПро JCP, JavaTLS
»
Дешифрация с помощью EnvelopedSignature, ошибка - NoSuchProviderException: Crypto
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close