Module: InlineEncryption::Base

Included in:
InlineEncryption
Defined in:
lib/inline_encryption/base.rb

Overview

Base module including core functionality

Instance Method Summary collapse

Instance Method Details

#configInlineEncryption::Config

Returns the configuration instance.

Returns:



65
66
67
# File 'lib/inline_encryption/base.rb', line 65

def config
  @config ||= Config.new
end

#decrypt(data, fail_text = nil) ⇒ String

Returns decrypted target.

Parameters:

  • data (String)

    decryption target

  • fail_text (String) (defaults to: nil)

    text to be returned in the case of a decryption failure

Returns:

  • (String)

    decrypted target



54
55
56
57
58
59
60
61
62
# File 'lib/inline_encryption/base.rb', line 54

def decrypt(data, fail_text = nil)
  config.check_required_variables

  begin
    decrypt!(data)
  rescue DecryptionFailureError
    fail_text.nil? ? data : fail_text.to_s
  end
end

#decrypt!(data) ⇒ String

Returns decrypted target.

Parameters:

  • data (String)

    decryption target

Returns:

  • (String)

    decrypted target

Raises:



38
39
40
41
42
43
44
45
46
47
48
49
# File 'lib/inline_encryption/base.rb', line 38

def decrypt!(data)
  config.check_required_variables
  raise MisconfigurationError, I18n.t('error.pub_key_decrypt') unless config.real_key.private?

  begin
    converted = Base64.decode64(data)
    config.real_key.private_decrypt(converted)
  rescue StandardError
    err = DecryptionFailureError.exception I18n.t('encrypted', data: data)
    raise err
  end
end

#encrypt(data, fail_text = nil) ⇒ String

Returns encrypted target, or fail_text on error (default data).

Parameters:

  • data (String)

    encryption target

Returns:

  • (String)

    encrypted target, or fail_text on error (default data)



25
26
27
28
29
30
31
32
33
# File 'lib/inline_encryption/base.rb', line 25

def encrypt(data, fail_text = nil)
  config.check_required_variables

  begin
    encrypt!(data)
  rescue EncryptionFailureError
    fail_text.nil? ? data : fail_text.to_s
  end
end

#encrypt!(data) ⇒ String

Returns encrypted target.

Parameters:

  • data (String)

    encryption target

Returns:

  • (String)

    encrypted target

Raises:



11
12
13
14
15
16
17
18
19
20
21
# File 'lib/inline_encryption/base.rb', line 11

def encrypt!(data)
  config.check_required_variables

  begin
    encrypted = config.real_key.public_encrypt(data)
    Base64.encode64(encrypted)
  rescue StandardError
    err = EncryptionFailureError.exception I18n.t('target', data: data)
    raise err
  end
end