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

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 32
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 37
def encrypt
  @encrypted = '$1$' + password_manager.aes_encrypt(@value, phrase)
end
encrypted?() click to toggle source
# File lib/kafo/params/password.rb, line 28
def encrypted?
  @value.length > 3 && @value[0..2] == '$1$'
end
internal_value_to_s(value) click to toggle source
Calls superclass method Kafo::Param#internal_value_to_s
# File lib/kafo/params/password.rb, line 49
def internal_value_to_s(value)
  if value.nil?
    super
  elsif value.empty?
    ''.inspect
  else
    'REDACTED'
  end
end
password_manager() click to toggle source
# File lib/kafo/params/password.rb, line 41
def password_manager
  @password_manager ||= PasswordManager.new
end
phrase() click to toggle source
# File lib/kafo/params/password.rb, line 45
def phrase
  @module.configuration.app[:password]
end
setup_password() click to toggle source
# File lib/kafo/params/password.rb, line 24
def setup_password
  encrypted? ? decrypt : encrypt
end