Method: Wechat.decrypt

Defined in:
lib/wechat.rb

.decrypt(encrypted_data, session_key, ivector) ⇒ Object



38
39
40
41
42
43
44
45
46
47
48
# File 'lib/wechat.rb', line 38

def self.decrypt(encrypted_data, session_key, ivector)
  cipher = OpenSSL::Cipher.new('AES-128-CBC')
  cipher.decrypt

  cipher.key     = Base64.decode64(session_key)
  cipher.iv      = Base64.decode64(ivector)
  decrypted_data = Base64.decode64(encrypted_data)
  JSON.parse(cipher.update(decrypted_data) + cipher.final)
rescue StandardError => e
  { errcode: 41003, errmsg: e.message }
end