Class: Underlock::Encryptor

Inherits:
Object
  • Object
show all
Defined in:
lib/underlock/encryptor.rb

Instance Method Summary collapse

Instance Method Details

#decrypt(encrypted_entity) ⇒ Object



17
18
19
20
21
22
23
# File 'lib/underlock/encryptor.rb', line 17

def decrypt(encrypted_entity)
  decode_cipher = Underlock::Base.config.cipher.dup
  decode_cipher.decrypt
  decode_cipher.key = private_decrypt(encrypted_entity.key)
  decode_cipher.iv = private_decrypt(encrypted_entity.iv)
  decode_cipher.update(base64_decode(encrypted_entity.value)[0])
end

#encrypt(value) ⇒ Object



4
5
6
7
8
9
10
11
12
13
14
15
# File 'lib/underlock/encryptor.rb', line 4

def encrypt(value)
  cipher = Underlock::Base.config.cipher.dup
  cipher.encrypt
  key = cipher.random_key
  iv  = cipher.random_iv

  encrypted_value = base64_encode(cipher.update(value))
  encrypted_key = public_encrypt(key)
  encrypted_iv  = public_encrypt(iv)

  EncryptedEntity.new(value: encrypted_value, key: encrypted_key, iv: encrypted_iv)
end