class ActiveSupport::MessageVerifier

def extract_encoded(signed)

def extract_encoded(signed)
  if signed.nil? || !signed.valid_encoding?
    throw :invalid_message_format, "invalid message string"
  end
  if separator_index = separator_index_for(signed)
    encoded = signed[0, separator_index]
    digest = signed[separator_index + SEPARATOR_LENGTH, digest_length_in_hex]
  end
  unless digest_matches_data?(digest, encoded)
    throw :invalid_message_format, "mismatched digest"
  end
  encoded
end