Module: Rubber::Encryption

Extended by:
Encryption
Included in:
Encryption
Defined in:
lib/rubber/encryption.rb

Instance Method Summary collapse

Instance Method Details

#cipher_algorithmObject



7
8
9
# File 'lib/rubber/encryption.rb', line 7

def cipher_algorithm
  OpenSSL::Cipher.new("AES-256-CBC")
end

#cipher_digestObject



11
12
13
# File 'lib/rubber/encryption.rb', line 11

def cipher_digest
  OpenSSL::Digest.new("SHA256")
end

#decrypt(encoded_encrypted_data, secret) ⇒ Object



31
32
33
34
35
36
37
38
39
40
41
# File 'lib/rubber/encryption.rb', line 31

def decrypt(encoded_encrypted_data, secret)
  cipher = cipher_algorithm

  cipher.decrypt
  cipher.pkcs5_keyivgen(cipher_digest.hexdigest(secret))
  
  encrypted_data = Base64.decode64(encoded_encrypted_data)
  payload = cipher.update(encrypted_data) + cipher.final
  
  return payload
end

#encrypt(payload, secret) ⇒ Object



19
20
21
22
23
24
25
26
27
28
29
# File 'lib/rubber/encryption.rb', line 19

def encrypt(payload, secret)
  cipher = cipher_algorithm

  cipher.encrypt
  cipher.pkcs5_keyivgen(cipher_digest.hexdigest(secret))
  
  encrypted_data = cipher.update(payload) + cipher.final
  encoded_encrypted_data = Base64.encode64(encrypted_data)
  
  return encoded_encrypted_data
end

#generate_encrypt_keyObject



15
16
17
# File 'lib/rubber/encryption.rb', line 15

def generate_encrypt_key
  OpenSSL::Digest.hexdigest('md5', rand.to_s)
end