# frozen_string_literal: true
module Encryption

  # Added a re-usable encryption routine, shouldn't be an issue!
  def self.encrypt_sensitive_value(val = "")
     aes = OpenSSL::Cipher.new(cipher_type)
     aes.encrypt
     aes.key = key[0..31]
     aes.iv = iv[0..15] if iv != nil
     new_val = aes.update("#{val}") + aes.final
     Base64.strict_encode64(new_val).encode("utf-8")
  end

  def self.decrypt_sensitive_value(val = "")
     aes = OpenSSL::Cipher.new(cipher_type)
     aes.decrypt
     aes.key = key[0..31]
     aes.iv = iv[0.15] if iv != nil
     decoded = Base64.strict_decode64("#{val}")
     aes.update("#{decoded}") + aes.final
  end

  # Should be able to just re-use the same key we already have!
  def self.key
    raise "Key Missing. Add one in initializers/key.rb" if !(KEY)
    KEY
  end

  def self.iv
    RG_IV
  end

  def self.cipher_type
    "aes-256-cbc"
  end

end
