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