module Encryptor

A simple wrapper for the standard OpenSSL library

Public Instance Methods

decrypt(*args, &block) click to toggle source

Decrypts a :value with a specified :key and :iv.

Optionally accepts :salt, :auth_data, :algorithm, :hmac_iterations, and :insecure_mode options.

Example

decrypted_value = Encryptor.decrypt(value: 'some encrypted string', key: 'some secret key', iv: 'some unique value', salt: 'another unique value')
# or
decrypted_value = Encryptor.decrypt('some encrypted string', key: 'some secret key', iv: 'some unique value', salt: 'another unique value')
# File lib/encryptor.rb, line 48
def decrypt(*args, &block)
  crypt :decrypt, *args, &block
end
default_options() click to toggle source

The default options to use when calling the encrypt and decrypt methods

Defaults to { algorithm: 'aes-256-gcm',

auth_data: '',
insecure_mode: false,
hmac_iterations: 2000,
v2_gcm_iv: false }

Run 'openssl list-cipher-commands' in your terminal to view a list all cipher algorithms that are supported on your platform

# File lib/encryptor.rb, line 18
def default_options
  @default_options ||= { algorithm: 'aes-256-gcm',
                         auth_data: '',
                         insecure_mode: false,
                         hmac_iterations: 2000,
                         v2_gcm_iv: false }
end
encrypt(*args, &block) click to toggle source

Encrypts a :value with a specified :key and :iv.

Optionally accepts :salt, :auth_data, :algorithm, :hmac_iterations, and :insecure_mode options.

Example

encrypted_value = Encryptor.encrypt(value: 'some string to encrypt', key: 'some secret key', iv: 'some unique value', salt: 'another unique value')
# or
encrypted_value = Encryptor.encrypt('some string to encrypt', key: 'some secret key', iv: 'some unique value', salt: 'another unique value')
# File lib/encryptor.rb, line 35
def encrypt(*args, &block)
  crypt :encrypt, *args, &block
end

Protected Instance Methods

encryption?(cipher_method) click to toggle source
# File lib/encryptor.rb, line 103
def encryption?(cipher_method)
  cipher_method == :encrypt
end
extract_auth_tag(value) click to toggle source
# File lib/encryptor.rb, line 111
def extract_auth_tag(value)
  value[-16..-1]
end
extract_cipher_text(value) click to toggle source
# File lib/encryptor.rb, line 107
def extract_cipher_text(value)
  value[0..-17]
end