diff --git a/lib/redmine/ciphering.rb b/lib/redmine/ciphering.rb index 8efe37c29..2fb2dca86 100644 --- a/lib/redmine/ciphering.rb +++ b/lib/redmine/ciphering.rb @@ -17,10 +17,10 @@ module Redmine module Ciphering - def self.included(base) + def self.included(base) base.extend ClassMethods end - + class << self def encrypt_text(text) if cipher_key.blank? @@ -36,7 +36,7 @@ module Redmine "aes-256-cbc:" + [e, iv].map {|v| Base64.encode64(v).strip}.join('--') end end - + def decrypt_text(text) if text && match = text.match(/\Aaes-256-cbc:(.+)\Z/) text = match[1] @@ -51,13 +51,13 @@ module Redmine text end end - + def cipher_key key = Redmine::Configuration['database_cipher_key'].to_s key.blank? ? nil : Digest::SHA256.hexdigest(key) end end - + module ClassMethods def encrypt_all(attribute) transaction do @@ -68,7 +68,7 @@ module Redmine end end ? true : false end - + def decrypt_all(attribute) transaction do all.each do |object| @@ -79,14 +79,14 @@ module Redmine end end ? true : false end - + private - + # Returns the value of the given ciphered attribute def read_ciphered_attribute(attribute) Redmine::Ciphering.decrypt_text(read_attribute(attribute)) end - + # Sets the value of the given ciphered attribute def write_ciphered_attribute(attribute, value) write_attribute(attribute, Redmine::Ciphering.encrypt_text(value))