3
这感觉就像它应该是死的简单,但我没有任何运气。如何使用OpenPGP和Ruby对数据进行非对称加密?
这种情况是这样的:我有一个公共* .asc密钥文件。我想使用这个文件(不是我的个人密钥环)来加密服务器上的数据,以便我可以用密钥在本地解密它。
从命令行我可以实现这个使用gpg
,但我宁愿使用一个Ruby库,不仅仅是CLI的包装(也就是说,提供绑定到C库)。我看过GPGME和OpenPGP的宝石,一直没有弄清楚如何使用它们。文档(尤其是OpenPGP)相当稀少。
这里,例如,是我一直在使用GPGME试过了,没有任何的运气:
key = GPGME::Data.new(File.open(path_to_file))
data = GPGME::Data.new("I want to encrypt this string.")
# Raises GPGME::Error::InvalidValue
GPGME::Ctx.new do |ctx|
e = ctx.encrypt(key, data)
end
有没有人经历过这个了吗?这当然不会那么复杂?
我不熟悉GPGME,但如果你尝试'它的工作原理GPGME :: Key.import(File.open(文件路径)) '?如果它仍然失败,如果你Base64解码.asc然后再试一次? – emboss 2012-07-18 19:13:14
你能证明你如何从命令行执行此操作吗?典型的使用要求首先将收件人公钥导入到钥匙环中... – PinnyM 2012-07-18 19:44:45