Module: Pousse::Crypt
- Defined in:
- lib/pousse/crypt.rb
Class Method Summary collapse
Class Method Details
.decrypt(data, key, iv) ⇒ Object
9 10 11 12 13 14 15 16 17 18 |
# File 'lib/pousse/crypt.rb', line 9 def self.decrypt(data, key, iv) aes = OpenSSL::Cipher::Cipher.new('aes-256-cbc') aes.decrypt aes.reset aes.key = Digest::SHA256.digest(key) aes.iv = Base64.strict_decode64(iv) data = Base64.strict_decode64(data) return aes.update(data) + aes.final end |
.encrypt(data, key, iv = nil) ⇒ Object
20 21 22 23 24 25 26 27 28 29 30 31 |
# File 'lib/pousse/crypt.rb', line 20 def self.encrypt(data, key, iv = nil) aes = OpenSSL::Cipher::Cipher.new('aes-256-cbc') iv ||= aes.random_iv aes.encrypt aes.reset aes.key = Digest::SHA256.digest(key) aes.iv = iv encrypted_data = aes.update(data) + aes.final res = Base64.strict_encode64( encrypted_data ) return [res, Base64.strict_encode64(iv)] end |