You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by st...@apache.org on 2014/06/19 13:59:44 UTC

svn commit: r1603846 - in /subversion/branches/svn-auth-x509/subversion/libsvn_subr: x509.h x509parse.c

Author: stsp
Date: Thu Jun 19 11:59:44 2014
New Revision: 1603846

URL: http://svn.apache.org/r1603846
Log:
On the svn-auth-x590 branch, tweak the name and declaration of the cert
parsing function.

* subversion/libsvn_subr/x509.h,
  subversion/libsvn_subr/x509parse.c
  (x509parse_crt): Rename to...
  (svn_x509_parse_cert): ... this. Pass in APR pools and start using them.

Modified:
    subversion/branches/svn-auth-x509/subversion/libsvn_subr/x509.h
    subversion/branches/svn-auth-x509/subversion/libsvn_subr/x509parse.c

Modified: subversion/branches/svn-auth-x509/subversion/libsvn_subr/x509.h
URL: http://svn.apache.org/viewvc/subversion/branches/svn-auth-x509/subversion/libsvn_subr/x509.h?rev=1603846&r1=1603845&r2=1603846&view=diff
==============================================================================
--- subversion/branches/svn-auth-x509/subversion/libsvn_subr/x509.h (original)
+++ subversion/branches/svn-auth-x509/subversion/libsvn_subr/x509.h Thu Jun 19 11:59:44 2014
@@ -174,17 +174,13 @@ typedef struct _x509_cert {
 extern "C" {
 #endif
 
-  /**
-   * \brief          Parse one or more certificates and add them
-   *                 to the chained list
-   *
-   * \param chain    points to the start of the chain
-   * \param buf      buffer holding the certificate data
-   * \param buflen   size of the buffer
-   *
-   * \return         0 if successful, or a specific X509 error code
-   */
-  int x509parse_crt(x509_cert * chain, const unsigned char *buf, int buflen);
+  /* Parse x509 DER certificate data from BUF (with length BUFLEN),
+   * returning a structured representation in *CERT, allocated in RESULT_POOL. */
+  int svn_x509_parse_cert(x509_cert **cert,
+                          const unsigned char *buf,
+                          int buflen,
+                          apr_pool_t *result_pool,
+                          apr_pool_t *scratch_pool);
 
 #ifdef __cplusplus
 }

Modified: subversion/branches/svn-auth-x509/subversion/libsvn_subr/x509parse.c
URL: http://svn.apache.org/viewvc/subversion/branches/svn-auth-x509/subversion/libsvn_subr/x509parse.c?rev=1603846&r1=1603845&r2=1603846&view=diff
==============================================================================
--- subversion/branches/svn-auth-x509/subversion/libsvn_subr/x509parse.c (original)
+++ subversion/branches/svn-auth-x509/subversion/libsvn_subr/x509parse.c Thu Jun 19 11:59:44 2014
@@ -44,6 +44,8 @@
  *  http://www.itu.int/ITU-T/studygroups/com17/languages/X.690-0207.pdf
  */
 
+#include <apr_pools.h>
+
 #include "x509.h"
 
 #include <string.h>
@@ -417,14 +419,19 @@ static int x509_get_uid(unsigned char **
 /*
  * Parse one certificate.
  */
-static int _x509parse_crt_1(x509_cert * chain, unsigned char *buf, int buflen)
+int
+svn_x509_parse_cert(x509_cert **cert,
+                    const unsigned char *buf,
+                    int buflen,
+                    apr_pool_t *result_pool,
+                    apr_pool_t *scratch_pool)
 {
   int ret, len;
   unsigned char *p;
   const unsigned char *end;
   x509_cert *crt;
 
-  crt = chain;
+  crt = apr_pcalloc(result_pool, sizeof(*crt));
 
   /*
    * Copy the raw DER data.