module Sekrets::Blowfish
Public Instance Methods
cipher(mode, key, data)
click to toggle source
# File lib/sekrets.rb, line 318 def cipher(mode, key, data) cipher = begin ::OpenSSL::Cipher.new('bf-cbc').send(mode) rescue StandardError => error raise if( @openssl_is_already_monkey_patched or (error.class.name != "OpenSSL::Cipher::CipherError") or (not defined?(::OpenSSL::Provider)) ) @openssl_is_already_monkey_patched = true ::OpenSSL::Provider.load("legacy") ::OpenSSL::Cipher.new('bf-cbc').send(mode) end cipher.key = ::Digest::SHA256.digest(key.to_s).slice(0, 16) cipher.update(data) << cipher.final end
cycle(key, data)
click to toggle source
# File lib/sekrets.rb, line 347 def cycle(key, data) decrypt(key, encrypt(key, data)) end
decrypt(key, text)
click to toggle source
# File lib/sekrets.rb, line 343 def decrypt(key, text) cipher(:decrypt, key, text) end
encrypt(key, data)
click to toggle source
# File lib/sekrets.rb, line 339 def encrypt(key, data) cipher(:encrypt, key, data) end
recrypt(old_key, new_key, data)
click to toggle source
# File lib/sekrets.rb, line 351 def recrypt(old_key, new_key, data) encrypt(new_key, decrypt(old_key, data)) end