我生成一个公共/私人密钥对使用Java。由于我想将密钥添加到我的代码(不是文件)我使用使用私有密钥从本地代码与openssl
byte[] priv = private_key.getEncoded()
将其作为字节数组。 要返回从字节数组私钥我使用
PKCS8EncodedKeySpec privateKeySpec = new PKCS8EncodedKeySpec(priv);
解密工作正常。 但是现在我想在使用openssl的c应用程序中使用该密钥。 所以我复制字节数组从java到c作为char []。 但我不能够这样的char []转换成私有密钥通过RSA_public_decrypt使用它进行解密(...) 我试图
RSA *r = d2i_RSAPrivateKey(NULL,&priv, len);
但这总是返回NULL指针
任何人都可以请给我一个关于如何在c语言中做到这一点的提示?
编辑:同时我检查从OpenSSL的错误代码,它说
error:0D0680A8:lib(13):func(104):reason(168)
但我不知道磨这些错误代码的事情。在网上搜索并没有帮助。
非常感谢提前。 Greetings,-chris-
不要忘记通过callint''RSA_free'''释放'''RSA *'''! – 2015-06-29 16:08:51