В настоящее время мы проходили миграцию с Java 1.8 в Java 11. Во время миграции мы сталкиваемся ниже дешифтируя проблему сообщения PGP в одном из приложений. с Bouncycastle
На этой строке кода
clear = pbe.getDataStream (b);
< /code>
Я попробовал некоторый механизм заполнения, как упомянуто на нескольких веб -сайте. Это не тренировалось. < /P>
Полный класс приведен ниже. Приносим извинения в случае проблемы кодирования/опечатки. Не в состоянии вставить здесь фактический код из -за ограничения доступа. Я сделал изображение, чтобы текстовать и вставить код здесь. Исправлены в самых ошибках. Также этот код отлично работает для версии Java 1.8, но когда мы мигрировали на Java 11, мы сталкиваемся с этой проблемой. < /P>
public class TestDecrypt {
private static final Logger LOGGER = LogManager.getLogger(DecryptFileService.class);
public TestDecrypt() {
}:
//
public static string decryptContent(String input, String publicKey, String keystoreFile, String keystoreCred, String fileName) {
System.out.println("read :"+input );
LOGGER.info(" [Starting Decryption for {}]", fileName);
String output = "";
try {
InputStream in PGPUtil.getDecoderStream(new ByteArrayInputStream(input.getBytes()));
System.out.println("read :"+in );
Throwable var7 = null;
try {
File publicKeyObject = new File(publicKey);
File privateKeyObject = new File(keystoreFile);
PGPBean pgpBean = new PGPBean (publicKeyObject, privateKeyObject, keystoreCred);
Security.addProvider (new BouncyCastleProvider());
PGPObjectFactory pgpF = new JcaPGPObjectFactory (in)
object a = pgpF.nextObject();
PGPEncryptedDataList enc;
if (o instanceof PGPEncryptedDataList) {
enç =
} else {
}
(PGPEncryptedDataList)o;
enc = (PGPEncryptedDataList) pgpF.nextObject();
Iterator it = enc.getEncryptedDataObjects(); PGPPrivateKey skey = null;
PGPPublicKey EncryptedData pbe;
for (pbe = null; skey null; skey == null && it.hasNext(); sKey =
pgpBean.getPgp PrivateKey()) {
}
pbe = (PGPPublicKeyEncryptedData)it.next();
if (skey == null) {
} .
throw new IllegalArgumentException("Secret key for message not found.");
PublicKeyDataDecryptorFactory b = (new Jde PublicKeyDataDecryptor FactoryBuilder()).setProvider ("BC").setContentProvider ("BC").build(skey); InputStream clear = pbe.getDataStream (b);
LOGGER.info("dd :"+clear.toString());
PGPObjectFactory plainFact = new JcaPGPObjectFactory (clear);
Object message = plainFact.nextObject();
if (message instanceof PGPCompressedData) {
}
PGPCompressedData cData = (PGPCompressedData) message;
PGPObjectFactory pgpFact = new JcaPGPObjectFactory (cData.getDataStream());
message = pgpFact.nextObject();
if (!(message instanceof PGPLiteralData)) {
if (message instanceof PGPOne PassSignatureList) {
}
throw new PGPException ("Encrypted message contains a signed message - not literal data. ");
throw new PGPException ("Message is not a simple encrypted file - type unknown.");
}
PGPLiteralData 1d = (PGPLiteralData) message;
InputStream unc = 1d.getInputStream();
output = (string) ((Stream) (new BufferedReader (new InputStreamReader (unc))).1ines().parallel()).collect (Collectors. joining ("\n")); if (pbe.isIntegrityProtected() && !pbe.verify()) {
}
throw new PGPException ("Message failed integrity check");
LOGGER.info("[Completed Decryption for ()] ". fileName):
}catch(
Throwable var31)
{
var7 = var31;
throw var31;
}finally
{
if (in != null) {
if (var7 != null) {
try {
in.close();
} catch (Throwable var 30) { var7.addSuppressed (var 30);
}
} else {
}
in.close();
}
}}catch(
Exception var 33)
{
LOGGER.error ("[Exception occurred while decrypting {}]", fileName); LOGGER.error("Exception has been caught : ", var33);
output = "FAILURE";
}return output;
}
'''
Подробнее здесь: https://stackoverflow.com/questions/794 ... uncycastle
Ошибка дешифрования RSA: ввод слишком большой для шифра RSA с Bouncycycastle ⇐ JAVA
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Ошибка дешифрования RSA: ввод слишком большой для шифра RSA с Bouncycycastle
Anonymous » » в форуме JAVA - 0 Ответы
- 15 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Ошибка дешифрования RSA: ввод слишком большой для шифра RSA с Bouncycycastle
Anonymous » » в форуме JAVA - 0 Ответы
- 22 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Дешифруя с помощью шифра потока с использованием той же клавиши шифра потока
Anonymous » » в форуме Python - 0 Ответы
- 20 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Почему мой код дешифрования RSA вызывает исключение «ошибка переполнения»
Anonymous » » в форуме Python - 0 Ответы
- 17 Просмотры
-
Последнее сообщение Anonymous
-