Openssl CMS 在 ruby 中加密
Posted
技术标签:
【中文标题】Openssl CMS 在 ruby 中加密【英文标题】:Openssl CMS encrypt in ruby 【发布时间】:2013-05-07 14:23:04 【问题描述】:我有一个任务需要在 ruby 中加密大量数据。加密应该如下进行。
-
生成随机密钥。
使用生成的随机密钥和 AES_256_CBC 加密对数据进行加密。
用收据的公钥加密随机密钥。
使用 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 5 Feb 2013”。 我是否需要安装任何额外的软件包才能获得 CMS 支持?
【问题讨论】:
在 OpenSSL 1.0.0 中添加了完整的 CMS 支持,我认为它没有被向后移植到 0.9.8 系列。不幸的是,即使您针对较新的 OpenSSL 编译 Ruby,我也不相信它具有 CMS_* 方法的绑定。如果您需要使用 Ruby(并控制此等式的两边),您可以考虑使用 PKCS7 签名(PKCS7 v1.5 是 CMS 的前身) 感谢 Paul Kehrer。收件人正在使用 Java 和 BouncyCastle,我无法控制收件人端代码。 【参考方案1】:我自己没有处理过这个问题,但我使用了backup gem,它提供了你想要的东西。 看看这个项目,看看你是否真的需要自己实现或者你可以使用 gem。如果您需要自己实现,您可以随时查看代码并了解它是如何完成的。
【讨论】:
以上是关于Openssl CMS 在 ruby 中加密的主要内容,如果未能解决你的问题,请参考以下文章