Sha256: 282d5dd0a39db33b4dde66784b267b0adfa516507053e8bad0f92181ab6be809
Contents?: true
Size: 831 Bytes
Versions: 1
Compression:
Stored size: 831 Bytes
Contents
class ChefKeepass class User attr_accessor :username def initialize(data_bag, username) @username = username @data_bag = data_bag end def decrypt_password # use the private client_key file to create a decryptor private_key = open(Chef::Config[:client_key]).read private_key = OpenSSL::PKey::RSA.new(private_key) keys = Chef::DataBagItem.load(@data_bag, "#{username}_keys") unless keys[Chef::Config[:node_name]] throw "Password for #{username} is not encrypted for you! Rebuild the password data bag" end node_key = Base64.decode64(keys[Chef::Config[:node_name]]) shared_secret = private_key.private_decrypt(node_key) cred = Chef::EncryptedDataBagItem.load(@data_bag, @username, shared_secret) cred["password"] end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
chef-keepass-0.2.1 | lib/chef-keepass/user.rb |