Sha256: 46c8e5858c07bbb23ec577b6700307346ca76f103f860cefa9a7b41039bf4c31

Contents?: true

Size: 1.06 KB

Versions: 2

Compression:

Stored size: 1.06 KB

Contents

# mymodule/lib/puppet/functions/gpg_decrypt.rb
Puppet::Functions.create_function(:'gpg_decrypt') do
  # Decrypts a file with GnuPG.
  # @param [String] file The file to decrypt.
  # @param [String] gpghome The path to the GnuPG home directory containing the credentials.
  # @param [String] password_file The password file to use for decryption.
  # @return [String] Returns a string of decrypted contents.
  # @example Decrypting a file.
  # gpg_encrypt('/path/to/encrypted_data.txt', '/home/alice/.gnupg', '/path/to/password.txt') => 'decrypted'
  dispatch :gpg_decrypt do
    required_param 'String', :file
    required_param 'String', :gpghome
    required_param 'String', :password_file
    return_type 'String'
  end

  def gpg_decrypt(file, gpghome, password_file)
    begin
      require 'rapid-vaults'
    rescue LoadError
      raise 'Rapid Vaults is required to be installed on the puppet master to use this custom function!'
    end

    ENV['GNUPGHOME'] = gpghome

    RapidVaults::API.main(action: :decrypt, algorithm: :gpgme, file: file, pw: password_file)
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
rapid-vaults-1.1.2 lib/rapid-vaults/bindings/puppet_gpg_decrypt.rb
rapid-vaults-1.1.1 lib/rapid-vaults/integrations/puppet_gpg_decrypt.rb