我生成一個公共/私人密鑰對使用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