我在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)
有关错误原因的概念是什么?我一直在寻找几个小时,但还没有发现问题。