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