1

我在 c# 中创建了一个自签名证书,其私钥是用RSACryptoServiceProvider1024 字节创建的。

我已经用公钥加密了一个字节数组。

然后我将证书导入到 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(RSACoreEn‌​gine.java:181)
com.android.org.bouncycastle.crypto.engines.RSABlindedEngine.processBlock(RSABli‌​ndedEngine.java:109)
com.android.org.bouncycastle.jcajce.provider.asymmetric.rsa.CipherSpi.engineDoFi‌​nal(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.j‌​ava:55)
android.os.Binder.execTransact(Binder.java:351)
dalvik.system.NativeStart.run(Native Method)

知道错误的原因是什么吗?我一直在寻找几个小时,但还没有找到问题。

4

0 回答 0