跨平台非对称加密和解密

时间:2013-06-05 17:10:02

标签: c# android private-key encryption-asymmetric

我在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(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)

有关错误原因的概念是什么?我一直在寻找几个小时,但还没有发现问题。

0 个答案:

没有答案