Надувной замок PGPObjectFactory nextObject возвращает ноль - PullRequest
0 голосов
/ 09 октября 2019

Я пытаюсь расшифровать и зашифровать сообщение с помощью открытого и закрытого ключей RSA.

Когда я пытаюсь прочитать PGPObjectFactory.nextObject(), я получаю null ниже - мой код.

  Security.addProvider(new BouncyCastleProvider());
        InputStream in = PGPUtil.getDecoderStream(new ByteArrayInputStream(encryptedString.getBytes()));
        JcaPGPObjectFactory pgpFact;
        PGPObjectFactory pgpF = new PGPObjectFactory(in, new JcaKeyFingerprintCalculator());

        Object o = pgpF.nextObject(); // I get this null
        PGPEncryptedDataList encList;

        if(o instanceof PGPEncryptedDataList)
        {
            encList = (PGPEncryptedDataList) o;
        }else {

            encList = (PGPEncryptedDataList) pgpF.nextObject();
        }

        Iterator<PGPPublicKeyEncryptedData> itt = encList.getEncryptedDataObjects(); 

тот же код работает в java 1.8, но при запуске в Java 1.7 он даетэтот вопрос,

Я использую все надувные кастели 1.63

ПОЖАЛУЙСТА, помогите СПАСИБО

1 Ответ

0 голосов
/ 16 октября 2019

на тот случай, если у кого-то возникнет проблема, хотя все перепробовал все равно не работает.

для моего случая, его bit size, как по умолчанию, разрешает только 256, так как размер моего бита ключа 2048, он возвращает null

, чтобы исправить это, пожалуйста, добавьте policy.jar и us-export.jar в вашем $JRE_HOME/lib/secuirty/ для java8 вам не нужно добавлять.

Если вы хотите проверить, разрешает ли ваш java ваш размер бита, вы можете проверить, выполнив следующие действия.

System.out.println( javax.crypto.Cipher.getMaxAllowedKeyLength("AES"));

...