2013-05-07 90 views
0

Openssl的CMS加密我有需要紅寶石加密數據的一大塊的任務。加密應按照以下方式進行。紅寶石

  1. 生成一個隨機密鑰。
  2. 加密與生成的隨機密鑰,並在加密AES_256_CBC數據。
  3. 加密與收到的公鑰的隨機密鑰。
  4. 信封所有這些信息使用CMS並將其發送給收件人。

我可以使用OpenSSL ruby​​庫使用下面提供的文檔執行AES加密和RSA加密。 http://www.ruby-doc.org/stdlib-1.9.3/libdoc/openssl/rdoc/OpenSSL.html

但是沒有關於如何在ruby中使用OpenSSL CMS的文檔。

問題2:

當我運行openssl命令行工具。它給出的錯誤是CMS不是有效的命令。 OpenSSL版本是「OpenSSL 0.9.8y 2013年2月5日」。 我是否需要安裝任何額外的軟件包才能獲得CMS支持?

+2

在OpenSSL 1.0.0中增加了完整的CMS支持,我不認爲它支持0.9.8系列。不幸的是,即使你針對新的OpenSSL編譯Ruby,我也不相信它對CMS_ *方法有約束力。如果你需要使用Ruby(並且控制這個方程的兩邊),你可以考慮使用PKCS7簽名(PKCS7 v1.5是CMS的前身) – 2013-05-07 22:17:24

+0

謝謝Paul Kehrer。收件人使用Java和BouncyCastle,我無法控制收件人端代碼。 – Htaras 2013-05-08 11:06:44

回答

0

我自己沒有處理過這個問題,但我使用backup gem,它提供了你想要的。 看看這個項目,看看如果你真的需要自己實現,也可以使用寶石。如果你需要實現自己,你總是可以看看代碼,看看它是如何完成的。