Class: EncryptedField::Encoder

Inherits:
Object
  • Object
show all
Defined in:
lib/encrypted-field/encoder.rb

Overview

EncryptedField::Encoder prepends the policy name to the encrypted string

Class Attribute Summary collapse

Instance Method Summary collapse

Class Attribute Details

.encoderObject



9
10
11
# File 'lib/encrypted-field/encoder.rb', line 9

def encoder
  @encoder ||= Encoder.new
end

Instance Method Details

#decrypt(encrypted_str_with_policy_name, fallback_policy_name = nil) ⇒ Object



24
25
26
27
28
29
30
31
32
33
34
35
# File 'lib/encrypted-field/encoder.rb', line 24

def decrypt(encrypted_str_with_policy_name, fallback_policy_name = nil)
  policy_name, encrypted_str = encrypted_str_with_policy_name.split(policy_separator, 2)
  policy_name =
    if policy?(policy_name) || fallback_policy_name.nil?
      policy_name
    else
      encrypted_str = encrypted_str_with_policy_name
      fallback_policy_name
    end

  get_policy(policy_name).decrypt(encrypted_str)
end

#encrypt(str, policy_name) ⇒ Object



14
15
16
17
18
19
20
21
22
# File 'lib/encrypted-field/encoder.rb', line 14

def encrypt(str, policy_name)
  policy = get_policy(policy_name)

  if policy.prefix_with_policy_name?
    policy_name.dup << policy_separator << policy.encrypt(str)
  else
    policy.encrypt(str)
  end
end