Method: ActiveSupport::MessageEncryptor#decrypt

Defined in:
lib/active_support/message_encryptor.rb

#decrypt(encrypted_message) ⇒ Object



36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
# File 'lib/active_support/message_encryptor.rb', line 36

def decrypt(encrypted_message)
  cipher = new_cipher
  encrypted_data, iv = encrypted_message.split("--").map {|v| ActiveSupport::Base64.decode64(v)}

  cipher.decrypt
  cipher.key = @secret
  cipher.iv  = iv

  decrypted_data = cipher.update(encrypted_data)
  decrypted_data << cipher.final

  Marshal.load(decrypted_data)
rescue OpenSSLCipherError, TypeError
  raise InvalidMessage
end