Sha256: efa89258ff3579ce855133392c3002b6b66be8b0dfd76f6d03228a40e5033bf0
Contents?: true
Size: 812 Bytes
Versions: 4
Compression:
Stored size: 812 Bytes
Contents
require 'openssl' require 'base64' require 'openssl/cipher' require 'openssl/digest' module Pousse module Crypt 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 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 end end
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
pousse-0.0.6 | lib/pousse/crypt.rb |
pousse-0.0.5 | lib/pousse/crypt.rb |
pousse-0.0.4 | lib/pousse/crypt.rb |
pousse-0.0.3 | lib/pousse/crypt.rb |