Module: Rubber::Encryption
Instance Method Summary collapse
- #cipher_algorithm ⇒ Object
- #cipher_digest ⇒ Object
- #decrypt(encoded_encrypted_data, secret) ⇒ Object
- #encrypt(payload, secret) ⇒ Object
- #generate_encrypt_key ⇒ Object
Instance Method Details
#cipher_algorithm ⇒ Object
7 8 9 |
# File 'lib/rubber/encryption.rb', line 7 def cipher_algorithm OpenSSL::Cipher.new("AES-256-CBC") end |
#cipher_digest ⇒ Object
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_key ⇒ Object
15 16 17 |
# File 'lib/rubber/encryption.rb', line 15 def generate_encrypt_key OpenSSL::Digest.hexdigest('md5', rand.to_s) end |