Sha256: c23fc45b0de0917997d704d42cb8ccd6a437836d46079cb3192e8e3498acbc6d

Contents?: true

Size: 1.21 KB

Versions: 29

Compression:

Stored size: 1.21 KB

Contents

module Kafo
  module Params
    # 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)
    class Password < Param
      def value=(value)
        super
        if @value.nil? || @value.empty?
          @value = password_manager.password
        end
        setup_password if @value.is_a?(::String)
        @value
      end

      def value
        @encrypted
      end

      def condition_value
        "\"#{value}\""
      end

      private

      def setup_password
        encrypted? ? decrypt : encrypt
      end

      def encrypted?
        @value.length > 3 && @value[0..2] == '$1$'
      end

      def decrypt
        @encrypted = @value
        @value     = password_manager.aes_decrypt(@value[3..-1], phrase)
      end

      def encrypt
        @encrypted = '$1$' + password_manager.aes_encrypt(@value, phrase)
      end

      def password_manager
        @password_manager ||= PasswordManager.new
      end

      def phrase
        KafoConfigure.config.app[:password]
      end

    end
  end
end

Version data entries

29 entries across 29 versions & 1 rubygems

Version Path
kafo-0.6.3 lib/kafo/params/password.rb
kafo-0.6.2 lib/kafo/params/password.rb
kafo-0.6.1 lib/kafo/params/password.rb
kafo-0.6.0 lib/kafo/params/password.rb
kafo-0.5.5 lib/kafo/params/password.rb
kafo-0.5.4 lib/kafo/params/password.rb
kafo-0.5.3 lib/kafo/params/password.rb
kafo-0.3.17 lib/kafo/params/password.rb
kafo-0.5.2 lib/kafo/params/password.rb
kafo-0.5.1 lib/kafo/params/password.rb
kafo-0.5.0 lib/kafo/params/password.rb
kafo-0.4.0 lib/kafo/params/password.rb
kafo-0.3.16 lib/kafo/params/password.rb
kafo-0.3.15 lib/kafo/params/password.rb
kafo-0.3.14 lib/kafo/params/password.rb
kafo-0.3.13 lib/kafo/params/password.rb
kafo-0.3.12 lib/kafo/params/password.rb
kafo-0.3.11 lib/kafo/params/password.rb
kafo-0.3.10 lib/kafo/params/password.rb
kafo-0.3.9 lib/kafo/params/password.rb