我在 c# 中创建了一个自签名证书,其私钥是用RSACryptoServiceProvider
1024 字节创建的。
我已经用公钥加密了一个字节数组。
然后我将证书导入到 Android 设备中。
我尝试使用我的证书私钥在 Android 中解密我的字节数组。我在Android中的代码:
{
Cipher cipher = Cipher.getInstance("RSA");
cipher.init(Cipher.DECRYPT_MODE, privateKey);
byte[] decryptedBytes = cipher.doFinal(encryptedByte);
}
在最后一行我得到这个错误:"java.lang.IllegalStateException"
。
以下是异常详细信息:
Java.lang.NullPointerException java.math.BigInteger.remainder(BigInteger.java:919) com.android.org.bouncycastle.crypto.engines.RSACoreEngine.processBlock(RSACoreEngine.java:181)
com.android.org.bouncycastle.crypto.engines.RSABlindedEngine.processBlock(RSABlindedEngine.java:109)
com.android.org.bouncycastle.jcajce.provider.asymmetric.rsa.CipherSpi.engineDoFinal(CipherSpi.java:472)
javax.crypto.Cipher.doFinal(Cipher.java:1111)
all4r.and.dc.Document.decrypt(Document.java:65)
all4r.and.dc.Decrypt$3$1.onSelection(Decrypt.java:101)
all4r.and.utils.Certificate$1.alias(Certificate.java:42)
android.security.KeyChain$AliasResponse.alias(KeyChain.java:284)
android.security.IKeyChainAliasCallback$Stub.onTransact(IKeyChainAliasCallback.java:55)
android.os.Binder.execTransact(Binder.java:351)
dalvik.system.NativeStart.run(Native Method)
知道错误的原因是什么吗?我一直在寻找几个小时,但还没有找到问题。