module Sidekiq::Crypt::Cipher

Public Class Methods

decrypt(confidential_param, initialization_vector, key_version) click to toggle source
# File lib/sidekiq-crypt/cipher.rb, line 16
def decrypt(confidential_param, initialization_vector, key_version)
  decryptor_cipher = decryption_cipher(initialization_vector, key_version)

  decryptor_cipher.update(Base64.decode64(confidential_param.to_s)) + decryptor_cipher.final
end
encrypt(confidential_param, initialization_vector) click to toggle source
# File lib/sidekiq-crypt/cipher.rb, line 10
def encrypt(confidential_param, initialization_vector)
  encryptor = encryption_cipher(initialization_vector)
  # use base64 to prevent Encoding::UndefinedConversionError
  Base64.encode64(encryptor.update(confidential_param.to_s) + encryptor.final)
end
random_iv() click to toggle source
# File lib/sidekiq-crypt/cipher.rb, line 22
def random_iv
  OpenSSL::Cipher::AES.new(256, :CBC).encrypt.random_iv
end

Private Class Methods

decryption_cipher(initialization_vector, key_version) click to toggle source
# File lib/sidekiq-crypt/cipher.rb, line 36
def decryption_cipher(initialization_vector, key_version)
  cipher = OpenSSL::Cipher::AES.new(256, :CBC).decrypt
  cipher.key = Sidekiq::Crypt.configuration.key_by_version(key_version)
  cipher.iv = initialization_vector

  cipher
end
encryption_cipher(initialization_vector) click to toggle source
# File lib/sidekiq-crypt/cipher.rb, line 28
def encryption_cipher(initialization_vector)
  cipher = OpenSSL::Cipher::AES.new(256, :CBC).encrypt
  cipher.key = Sidekiq::Crypt.configuration.current_key
  cipher.iv = initialization_vector

  cipher
end