You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by do...@apache.org on 2002/03/30 02:41:36 UTC

cvs commit: httpd-2.0/modules/ssl ssl_toolkit_compat.h ssl_util_ssl.c ssl_util_ssl.h

dougm       02/03/29 17:41:36

  Modified:    modules/ssl ssl_toolkit_compat.h ssl_util_ssl.c
                        ssl_util_ssl.h
  Log:
  enable/cleanup SSL_X509_INFO_load_{file,path} functions for use in
  proxy context
  
  Revision  Changes    Path
  1.22      +5 -0      httpd-2.0/modules/ssl/ssl_toolkit_compat.h
  
  Index: ssl_toolkit_compat.h
  ===================================================================
  RCS file: /home/cvs/httpd-2.0/modules/ssl/ssl_toolkit_compat.h,v
  retrieving revision 1.21
  retrieving revision 1.22
  diff -u -r1.21 -r1.22
  --- ssl_toolkit_compat.h	29 Mar 2002 02:59:27 -0000	1.21
  +++ ssl_toolkit_compat.h	30 Mar 2002 01:41:35 -0000	1.22
  @@ -99,6 +99,8 @@
   
   #define modssl_PEM_read_bio_X509 PEM_read_bio_X509
   
  +#define modssl_PEM_X509_INFO_read_bio PEM_X509_INFO_read_bio 
  +
   #define modssl_PEM_read_bio_PrivateKey PEM_read_bio_PrivateKey
   
   #define modssl_set_cipher_list SSL_set_cipher_list
  @@ -123,6 +125,9 @@
   
   #define modssl_PEM_read_bio_X509(b, x, cb, arg) \
      PEM_read_bio_X509(b, x, cb)
  +
  +#define modssl_PEM_X509_INFO_read_bio(b, x, cb, arg)\
  +   PEM_X509_INFO_read_bio(b, x, cb)
   
   #define modssl_PEM_read_bio_PrivateKey(b, k, cb, arg) \
      PEM_read_bio_PrivateKey(b, k, cb)
  
  
  
  1.19      +29 -23    httpd-2.0/modules/ssl/ssl_util_ssl.c
  
  Index: ssl_util_ssl.c
  ===================================================================
  RCS file: /home/cvs/httpd-2.0/modules/ssl/ssl_util_ssl.c,v
  retrieving revision 1.18
  retrieving revision 1.19
  diff -u -r1.18 -r1.19
  --- ssl_util_ssl.c	27 Mar 2002 18:19:44 -0000	1.18
  +++ ssl_util_ssl.c	30 Mar 2002 01:41:35 -0000	1.19
  @@ -416,55 +416,61 @@
   **  _________________________________________________________________
   */
   
  -#ifdef SSL_EXPERIMENTAL_PROXY
  -
  -BOOL SSL_load_CrtAndKeyInfo_file(apr_pool_t *p, STACK_OF(X509_INFO) *sk, char *filename)
  +BOOL SSL_X509_INFO_load_file(apr_pool_t *ptemp,
  +                             STACK_OF(X509_INFO) *sk,
  +                             const char *filename)
   {
       BIO *in;
   
  -    if ((in = BIO_new(BIO_s_file())) == NULL)
  +    if (!(in = BIO_new(BIO_s_file()))) {
           return FALSE;
  +    }
  +
       if (BIO_read_filename(in, filename) <= 0) {
           BIO_free(in);
           return FALSE;
       }
  +
       ERR_clear_error();
  -#if SSL_LIBRARY_VERSION < 0x00904000
  -    PEM_X509_INFO_read_bio(in, sk, NULL);
  -#else
  -    PEM_X509_INFO_read_bio(in, sk, NULL, NULL);
  -#endif
  +
  +    modssl_PEM_X509_INFO_read_bio(in, sk, NULL, NULL);
  +
       BIO_free(in);
  +
       return TRUE;
   }
   
  -BOOL SSL_load_CrtAndKeyInfo_path(apr_pool_t *p, STACK_OF(X509_INFO) *sk, char *pathname)
  +BOOL SSL_X509_INFO_load_path(apr_pool_t *ptemp,
  +                             STACK_OF(X509_INFO) *sk,
  +                             const char *pathname)
   {
  -    apr_pool_t *sp;
       apr_dir_t *dir;
       apr_finfo_t dirent;
  -    char *fullname;
  -    BOOL ok;
  +    const char *fullname;
  +    BOOL ok = FALSE;
   
  -    apr_pool_sub_make(&sp, p, NULL);
  -    if (apr_dir_open(&dir, pathname, sp)) != APR_SUCCESS) {
  -        apr_pool_destroy(sp);
  +    if (apr_dir_open(&dir, pathname, ptemp) != APR_SUCCESS) {
           return FALSE;
       }
  -    ok = FALSE;
  +
       while ((apr_dir_read(&dirent, APR_FINFO_DIRENT, dir)) == APR_SUCCESS) {
  -        fullname = apr_pstrcat(sp, pathname, "/", dirent.name, NULL);
  -        if (dirent.filetype != APR_REG)
  +        fullname = apr_pstrcat(ptemp,
  +                               pathname, "/", dirent.name,
  +                               NULL);
  +
  +        if (dirent.filetype != APR_REG) {
               continue;
  -        if (SSL_load_CrtAndKeyInfo_file(sp, sk, fullname))
  +        }
  +
  +        if (SSL_X509_INFO_load_file(ptemp, sk, fullname)) {
               ok = TRUE;
  +        }
       }
  +
       apr_dir_close(dir);
  -    apr_pool_destroy(sp);
  +
       return ok;
   }              
  -
  -#endif /* SSL_EXPERIMENTAL_PROXY */
   
   /*  _________________________________________________________________
   **
  
  
  
  1.17      +2 -4      httpd-2.0/modules/ssl/ssl_util_ssl.h
  
  Index: ssl_util_ssl.h
  ===================================================================
  RCS file: /home/cvs/httpd-2.0/modules/ssl/ssl_util_ssl.h,v
  retrieving revision 1.16
  retrieving revision 1.17
  diff -u -r1.16 -r1.17
  --- ssl_util_ssl.h	27 Mar 2002 18:20:37 -0000	1.16
  +++ ssl_util_ssl.h	30 Mar 2002 01:41:35 -0000	1.17
  @@ -99,10 +99,8 @@
   BOOL        SSL_X509_isSGC(X509 *);
   BOOL        SSL_X509_getBC(X509 *, int *, int *);
   BOOL        SSL_X509_getCN(apr_pool_t *, X509 *, char **);
  -#ifdef SSL_EXPERIMENTAL_PROXY
  -BOOL        SSL_load_CrtAndKeyInfo_file(apr_pool_t *, STACK_OF(X509_INFO) *, char *);
  -BOOL        SSL_load_CrtAndKeyInfo_path(apr_pool_t *, STACK_OF(X509_INFO) *, char *);
  -#endif /* SSL_EXPERIMENTAL_PROXY */
  +BOOL        SSL_X509_INFO_load_file(apr_pool_t *, STACK_OF(X509_INFO) *, const char *);
  +BOOL        SSL_X509_INFO_load_path(apr_pool_t *, STACK_OF(X509_INFO) *, const char *);
   int         SSL_CTX_use_certificate_chain(SSL_CTX *, char *, int, int (*)(char*,int,int,void*));
   char       *SSL_SESSION_id2sz(unsigned char *, int, char *, int);