在Ruby中解密Chef加密的数据库

时间:2014-12-17 18:50:51

标签: ruby encryption chef

我已经能够使用这里编写的Ruby代码Data bag encryption encrypts on Chef server, but how to encrypt local copy?作为加密我的数据包的基础,而不必使用非常棒的刀具。然而,我的问题出现在解密这些加密数据库时,因为此处编写的代码Data bag encryption encrypts on Chef server, but how to encrypt local copy?似乎无法正常工作。

我已成功将加密的数据库作为json下载,将其转换为哈希,加载我的对称密钥(用于Chef加密和解密)并使用以下方法创建数据库:

databag_item = Chef::EncryptedDataBagItem.new raw_file_down, secret

如果我要检查这个databag_item的类,Ruby告诉我它是一个Chef::EncryptedDataBagItem对象。但是,当我尝试将其写入文件

IO.write tmp_item_file, Chef::JSONCompat.to_json_pretty( databag_item.to_hash )

我收到以下错误:

Chef::EncryptedDataBagItem::DecryptionFailure: Error decrypting databag value: 'wrong final block length'.

提供的密钥很可能不正确。当我删除.to_hash选项并执行此操作时:

IO.write tmp_item_file, Chef::JSONCompat.to_json_pretty( databag_item)

我收到233或41这些方法都没有产生解密数据包。有人可以帮忙吗?

BTW我是Chef的新用户

0 个答案:

没有答案