2015-06-24 84 views
2

我正在嘗試使用libtomcrypt來做RSA-2048位加密。我目前的目標是從文件中導入公鑰。使用OpenSSL與命令生成此文件:如何使用libtomcrypt導入RSA公鑰?

$ openssl rsa -in private.pem -outform PEM -pubout -out public.pem 

所以我相信我的公鑰是PKCS#1填充和OpenSSL的PEM格式。

我相信我需要使用的函數是rsa_import(),但是需要一個in緩衝區,一個長度並輸出一個rsa_key指針。只是要清楚,我相信什麼,我需要做的是如下:

  1. 讀入public.pem的內容呈送到緩衝區
  2. 折騰出頁眉和遏制「開始公開密鑰」頁腳等等。
  3. 解碼來自base64的數據。
  4. 將生成的數據傳遞給rsa_import。

這是正確的嗎?誰可以使用libtomcrypt來達到這個目的?謝謝。

回答

2

因此,深入研究rsa_import()的源代碼後,我很快發現它期望密鑰採用DER格式。由於我公司已獲得私鑰,我剛纔用這個OpenSSL的命令DER文件:

openssl rsa -in private.pem -outform DER -pubout -out public.der 

值得注意的是用於-outform的說法,現在DER而不是PEM。之後,我只是將文件內容讀入char緩衝區,然後將其作爲rsa_import的主參數傳遞。之後,rsa_import使密鑰沒有問題,我可以從那裏加密/解密。

+0

您是否保留了出現在問題中的4個步驟? – Alex