Описание:
Обновление до BouncyCastle 1.76 вызывает ошибку «CMSException: ключ развертывания исключения: невозможно инициализировать параметры алгоритма: LunaIvParameters: неподдерживаемый метод engineInit» при расшифровке RSAES-OAEPНедавно я обновил свой проект с версии BouncyCastle 1.68 до 1.76 и столкнулся с проблемой расшифровки RSAES-OAEP. Всякий раз, когда я пытаюсь расшифровать данные с помощью алгоритма RSAES-OAEP, я получаю следующую ошибку:
makefile
Копировать код
org.bouncycastle.cms.CMSException: исключение ключ развертывания: невозможно инициализировать параметры алгоритма: LunaIvParameters: неподдерживаемый метод engineInit
Эта ошибка возникает конкретно в методе дешифрования и, похоже, связана с обновлением версий BouncyCastle.
I' Я не уверен, почему эта ошибка возникает после обновления. Может ли кто-нибудь подсказать, что может быть причиной этой проблемы и как ее решить?
try {
while (it.hasNext()) {
try {
RecipientInformation recipient = it.next();
if (ui.getEncryptionType().equalsIgnoreCase("RSAOAEP")) {
decryptedStream = recipient.getContentStream(new JceKeyTransEnvelopedRecipient(privateKey)
.setAlgorithmMapping(PKCSObjectIdentifiers.id_RSAES_OAEP,
"RSA/GCM/OAEPWithSHA256AndMGF1Padding")
.setProvider("LunaProvider")
.setContentProvider("BC")).getContentStream();
}
break;
} catch (Exception e) {
// Exception handling
}
}
if (decryptedStream == null) {
throw new Exception("Content Failed to decrypt with PrivateKey 1");
}
Ниже используется для шифрования
public AlgorithmIdentifier rsaesOaepIdentifier() {
AlgorithmIdentifier hash = new AlgorithmIdentifier(NISTObjectIdentifiers.id_sha256, DERNull.INSTANCE);
AlgorithmIdentifier mask = new AlgorithmIdentifier(PKCSObjectIdentifiers.id_mgf1, hash);
AlgorithmIdentifier pSource = new AlgorithmIdentifier(PKCSObjectIdentifiers.id_pSpecified, new DEROctetString(new byte[0]));
return new AlgorithmIdentifier(PKCSObjectIdentifiers.id_RSAES_OAEP, new RSAESOAEPparams(hash, mask, pSource));
}
Подробнее здесь: https://stackoverflow.com/questions/785 ... ing-key-ca