class ActiveSupport::MessageVerifier

def verify(signed_message)

def verify(signed_message)
  raise InvalidSignature if signed_message.nil? || !signed_message.valid_encoding? || signed_message.blank?
  data, digest = signed_message.split("--")
  if data.present? && digest.present? && ActiveSupport::SecurityUtils.secure_compare(digest, generate_digest(data))
    begin
      @serializer.load(decode(data))
    rescue ArgumentError => argument_error
      raise InvalidSignature if argument_error.message =~ %r{invalid base64}
      raise
    end
  else
    raise InvalidSignature
  end
end