OpenKeyChain解决解密OpenPgpV5Data错误

项目地址

项目地址

错误信息

操作中遇到OpenPGP异常!

解决方法

经过代码排查发现CachingDataDecryptorFactory.java中的mOperatorHelpermAeadHelper没有初始化,导致解密抛出OpenPGP异常

--- a/OpenKeychain/src/main/java/org/bouncycastle/openpgp/operator/jcajce/CachingDataDecryptorFactory.java
+++ b/OpenKeychain/src/main/java/org/bouncycastle/openpgp/operator/jcajce/CachingDataDecryptorFactory.java
@@ -15,6 +15,7 @@ import java.util.Map;
 
 import org.bouncycastle.bcpg.AEADEncDataPacket;
 import org.bouncycastle.bcpg.SymmetricEncIntegrityPacket;
+import org.bouncycastle.jcajce.util.DefaultJcaJceHelper;
 import org.bouncycastle.jcajce.util.NamedJcaJceHelper;
 import org.bouncycastle.openpgp.PGPException;
 import org.bouncycastle.openpgp.PGPPublicKeyEncryptedData;
@@ -28,8 +29,8 @@ public class CachingDataDecryptorFactory implements PublicKeyDataDecryptorFactor
     private final PublicKeyDataDecryptorFactory mWrappedDecryptor;
     private final HashMap<ByteBuffer, byte[]> mSessionKeyCache;
 
-    private OperatorHelper mOperatorHelper;
-    private JceAEADUtil mAeadHelper;
+    private OperatorHelper mOperatorHelper=new OperatorHelper(new DefaultJcaJceHelper());;
+    private JceAEADUtil mAeadHelper=new JceAEADUtil(mOperatorHelper);;
 
     public CachingDataDecryptorFactory(String providerName, Map<ByteBuffer, byte[]> sessionKeyCache)
     {

发布地址

官方只提供了源码,但是并没有提供apk,打包了6.0.4.2版本,需要的朋友可以去下载