Java bouncy castle PGPObjectFactory下一个对象返回null

Java bouncy castle PGPObjectFactory下一个对象返回null,java,rsa,bouncycastle,Java,Rsa,Bouncycastle,我正在尝试用RSA公钥和私钥对消息进行解密和加密 当我尝试读取PGPObjectFactory.nextObject()时,我得到null 下面是我的代码 Security.addProvider(new BouncyCastleProvider()); InputStream in = PGPUtil.getDecoderStream(new ByteArrayInputStream(encryptedString.getBytes())); JcaPGPO

我正在尝试用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(); 
Security.addProvider(新的BouncyCastleProvider());
InputStream in=PGPUtil.getDecoderStream(新的ByteArrayInputStream(encryptedString.getBytes());
JcaPGPObjectFactory pgpFact;
PGPObjectFactory pgpF=新的PGPObjectFactory(在中,新的JcaKeyFingerprintCalculator());
对象o=pgpF.nextObject();//我得到这个空值
PGPencryptedatalist;
if(o PGPEncryptedDataList的实例)
{
encList=(pgPencryptedatalist)o;
}否则{
encList=(pgpencryptedatalist)pgpF.nextObject();
}
迭代器itt=encList.getEncryptedDataObjects();
同样的代码在
Java1.8
中运行,但在Java1.7中运行时,它给出了这个问题

我使用的是所有bouncy castel
1.63

请帮忙
谢谢

以防有人遇到问题,尽管尝试了所有方法仍然无法奏效

对于我的情况,默认情况下,它的
位大小
只允许
256
,因为我的关键位大小是
2048
它返回的
null

要解决此问题,请在您的
$JRE_HOME/lib/secuirty/
中添加
policy.jar
us export.jar
,以便
java8
无需添加

如果您想检查您的java是否允许您的位大小,您可以通过以下方式进行检查


System.out.println(javax.crypto.Cipher.getMaxAllowedKeyLength(“AES”)

在我的例子中,位大小是
2147483647
。和
java8
。但仍然是空的。有什么想法吗?你能发布stacktrace和来源吗?对不起,我发现了我的问题。由于pgp版本行后没有空格,所以我将变为null。PGP结构问题。如果我在空白处放一个空格,它就工作了