Class: Devise::Encryptable::Encryptors::Aes256

Inherits:
Base
  • Object
show all
Defined in:
lib/devise_encryptable_aes/aes256.rb

Overview

Add AES encryption support for Devise

Class Method Summary collapse

Class Method Details

.compare(encrypted_password, password, pepper) ⇒ Object



26
27
28
29
30
# File 'lib/devise_encryptable_aes/aes256.rb', line 26

def compare(encrypted_password, password, pepper)
  return false if encrypted_password.blank?

  decrypt(encrypted_password, pepper) == password
end

.decrypt(encrypted_password, pepper) ⇒ Object



22
23
24
# File 'lib/devise_encryptable_aes/aes256.rb', line 22

def decrypt(encrypted_password, pepper)
  ::AES.decrypt(encrypted_password, pepper)
end

.digest(password, _stretches, salt, pepper) ⇒ Object



12
13
14
15
16
# File 'lib/devise_encryptable_aes/aes256.rb', line 12

def digest(password, _stretches, salt, pepper)
  ::AES.encrypt(password, pepper, { iv: salt }) if password
rescue StandardError
  nil
end

.salt(_stretches) ⇒ Object



18
19
20
# File 'lib/devise_encryptable_aes/aes256.rb', line 18

def salt(_stretches)
  ::AES.iv(:base_64)
end