class EncryptedField::BasePolicy
EncryptedField::BasePolicy
abstract class for creating encryption policies
Attributes
algorithm[R]
options[R]
Public Class Methods
new(algorithm, secret_key, options = {})
click to toggle source
# File lib/encrypted-field/base_policy.rb, line 12 def initialize(algorithm, secret_key, options = {}) @algorithm = algorithm @secret_key = secret_key @options = options end
Public Instance Methods
prefix_with_policy_name?()
click to toggle source
# File lib/encrypted-field/base_policy.rb, line 18 def prefix_with_policy_name? options.fetch(:prefix_with_policy_name, true) end
Private Instance Methods
create_cipher()
click to toggle source
# File lib/encrypted-field/base_policy.rb, line 56 def create_cipher OpenSSL::Cipher.new(algorithm) end
decode_iv(str)
click to toggle source
# File lib/encrypted-field/base_policy.rb, line 48 def decode_iv(str) if options.key?(:decode_iv) options[:decode_iv].call(str) else Base64.strict_decode64(str) end end
decode_payload(str)
click to toggle source
# File lib/encrypted-field/base_policy.rb, line 32 def decode_payload(str) if options.key?(:decode_payload) options[:decode_payload].call(str) else Base64.strict_decode64(str) end end
encode_iv(str)
click to toggle source
# File lib/encrypted-field/base_policy.rb, line 40 def encode_iv(str) if options.key?(:encode_iv) options[:encode_iv].call(str) else Base64.strict_encode64(str) end end
encode_payload(str)
click to toggle source
# File lib/encrypted-field/base_policy.rb, line 24 def encode_payload(str) if options.key?(:encode_payload) options[:encode_payload].call(str) else Base64.strict_encode64(str) end end
secret_key()
click to toggle source
# File lib/encrypted-field/base_policy.rb, line 60 def secret_key case @secret_key when Proc @secret_key.call when String @secret_key end end