On the svn-auth-x509 branch: Make the x509 cert parser return properly
typed and structured results instead of a hash of strings. It shouldn't
be a library function's job to decide how a client implementation wants
to display the data.

* subversion/include/svn_x509.h:
   Include apr_tables.h, apr_time.h and svn_checksum.h.
  (SVN_X509_CERTINFO_KEY_SUBJECT,
   SVN_X509_CERTINFO_KEY_ISSUER,
   SVN_X509_CERTINFO_KEY_VALID_FROM,
   SVN_X509_CERTINFO_KEY_VALID_TO,
   SVN_X509_CERTINFO_KEY_SHA1_DIGEST,
   SVN_X509_CERTINFO_KEY_HOSTNAMES): Removed.
  (svn_x509_certinfo_t): New, forward declaration.
  (svn_x509_parse_cert): Update prototype and docstring.
  (svn_x509_certinfo_dup,
   svn_x509_certinfo_get_subject,
   svn_x509_certinfo_get_issuer,
   svn_x509_certinfo_get_valid_from,
   svn_x509_certinfo_get_valid_to,
   svn_x509_certinfo_get_digest,
   svn_x509_certinfo_get_hostnames): New accessor prototypes.

* subversion/libsvn_subr/x509.h
  (svn_x509_certinfo_t): Define here.

* subversion/libsvn_subr/x509info.c: New file.
  (svn_x509_certinfo_dup,
   svn_x509_certinfo_get_subject,
   svn_x509_certinfo_get_issuer,
   svn_x509_certinfo_get_valid_from,
   svn_x509_certinfo_get_valid_to,
   svn_x509_certinfo_get_digest,
   svn_x509_certinfo_get_hostnames): Implement here.

* subversion/libsvn_subr/x509parse.c
  (x509parse_get_hostnames): Return an array of strings instead of a stringbuf.
  (svn_x509_parse_cert): Update to return an svn_x509_certinfo_t.

* subversion/svn/auth-cmd.c: Include svn_time.h.
  (show_cert): Use the new svn_x509_certinfo_t accessors.

* subversion/tests/libsvn_subr/x509-test.c: Do not include svn_hash.h.
  (compare_dates): Adjust to the fact that the dates received from
   the certinfo structure are time values, not strings.
  (compare_hostnames): New.
  (compare_results): Use the new svn_x509_certinfo_t accessors.
  (test_x509_parse_cert): Expect an svn_x509_certinfo_t.


git-svn-id: https://svn.apache.org/repos/asf/subversion/branches/svn-auth-x509@1613766 13f79535-47bb-0310-9956-ffa450edef68