class Kafo::Params::Password

A password paramater is stored encrypted in answer file using AES 256 in CBC mode

we use a passphrase that is stored in kafo.yaml for encryption encrypted password is prefixed with $1$ (for historical reasons, no connection to Modular Crypt Format)

Public Instance Methods

condition_value() click to toggle source
# File lib/kafo/params/password.rb, line 22
def condition_value
  %Q{"#{value}"}
end
dump_default() click to toggle source
# File lib/kafo/params/password.rb, line 26
def dump_default
  %Q{"#{super}"}
end
value() click to toggle source
# File lib/kafo/params/password.rb, line 18
def value
  @encrypted
end
value=(value) click to toggle source
Calls superclass method Kafo::Param#value=
# File lib/kafo/params/password.rb, line 9
def value=(value)
  super
  if @value.nil? || @value.empty?
    @value = password_manager.password
  end
  setup_password if @value.is_a?(::String)
  @value
end

Private Instance Methods

decrypt() click to toggle source
# File lib/kafo/params/password.rb, line 40
def decrypt
  @encrypted = @value
  @value     = password_manager.aes_decrypt(@value[3..-1], phrase)
end
encrypt() click to toggle source
# File lib/kafo/params/password.rb, line 45
def encrypt
  @encrypted = '$1$' + password_manager.aes_encrypt(@value, phrase)
end
encrypted?() click to toggle source
# File lib/kafo/params/password.rb, line 36
def encrypted?
  @value.length > 3 && @value[0..2] == '$1$'
end
password_manager() click to toggle source
# File lib/kafo/params/password.rb, line 49
def password_manager
  @password_manager ||= PasswordManager.new
end
phrase() click to toggle source
# File lib/kafo/params/password.rb, line 53
def phrase
  @module.configuration.app[:password]
end
setup_password() click to toggle source
# File lib/kafo/params/password.rb, line 32
def setup_password
  encrypted? ? decrypt : encrypt
end