Diff for /libraries/libldap/tls_o.c between versions 1.5.2.9 and 1.18

version 1.5.2.9, 2009/10/30 17:48:17 version 1.18, 2010/12/06 10:31:59
Line 1 Line 1
 /* tls_o.c - Handle tls/ssl using OpenSSL */  /* tls_o.c - Handle tls/ssl using OpenSSL */
 /* $OpenLDAP$ */  /* $OpenLDAP: pkg/ldap/libraries/libldap/tls_o.c,v 1.17 2010/04/13 20:17:57 kurt Exp $ */
 /* This work is part of OpenLDAP Software <http://www.openldap.org/>.  /* This work is part of OpenLDAP Software <http://www.openldap.org/>.
  *   *
  * Copyright 2008-2009 The OpenLDAP Foundation.   * Copyright 2008-2010 The OpenLDAP Foundation.
  * All rights reserved.   * All rights reserved.
  *   *
  * Redistribution and use in source and binary forms, with or without   * Redistribution and use in source and binary forms, with or without
Line 37 Line 37
 #include "ldap-int.h"  #include "ldap-int.h"
 #include "ldap-tls.h"  #include "ldap-tls.h"
   
 #ifdef LDAP_R_COMPILE  
 #include <ldap_pvt_thread.h>  
 #endif  
   
 #ifdef HAVE_OPENSSL_SSL_H  #ifdef HAVE_OPENSSL_SSL_H
 #include <openssl/ssl.h>  #include <openssl/ssl.h>
 #include <openssl/x509v3.h>  #include <openssl/x509v3.h>
Line 1079  tlso_tmp_rsa_cb( SSL *ssl, int is_export Line 1075  tlso_tmp_rsa_cb( SSL *ssl, int is_export
         RSA *tmp_rsa;          RSA *tmp_rsa;
         /* FIXME:  Pregenerate the key on startup */          /* FIXME:  Pregenerate the key on startup */
         /* FIXME:  Who frees the key? */          /* FIXME:  Who frees the key? */
 #if OPENSSL_VERSION_NUMBER > 0x00908000  #if OPENSSL_VERSION_NUMBER >= 0x00908000
         BIGNUM *bn = BN_new();          BIGNUM *bn = BN_new();
           tmp_rsa = NULL;
         if ( bn ) {          if ( bn ) {
                 if ( BN_set_word( bn, RSA_F4 )) {                  if ( BN_set_word( bn, RSA_F4 )) {
                         tmp_rsa = RSA_new();                          tmp_rsa = RSA_new();
Line 1090  tlso_tmp_rsa_cb( SSL *ssl, int is_export Line 1087  tlso_tmp_rsa_cb( SSL *ssl, int is_export
                         }                          }
                 }                  }
                 BN_free( bn );                  BN_free( bn );
         } else {  
                 tmp_rsa = NULL;  
         }          }
 #else  #else
         tmp_rsa = RSA_generate_key( key_length, RSA_F4, NULL, NULL );          tmp_rsa = RSA_generate_key( key_length, RSA_F4, NULL, NULL );
Line 1101  tlso_tmp_rsa_cb( SSL *ssl, int is_export Line 1096  tlso_tmp_rsa_cb( SSL *ssl, int is_export
                 Debug( LDAP_DEBUG_ANY,                  Debug( LDAP_DEBUG_ANY,
                         "TLS: Failed to generate temporary %d-bit %s RSA key\n",                          "TLS: Failed to generate temporary %d-bit %s RSA key\n",
                         key_length, is_export ? "export" : "domestic", 0 );                          key_length, is_export ? "export" : "domestic", 0 );
                 return NULL;  
         }          }
         return tmp_rsa;          return tmp_rsa;
 }  }
Line 1216  tlso_tmp_dh_cb( SSL *ssl, int is_export, Line 1210  tlso_tmp_dh_cb( SSL *ssl, int is_export,
         int i;          int i;
   
         /* Do we have params of this length already? */          /* Do we have params of this length already? */
 #ifdef LDAP_R_COMPILE          LDAP_MUTEX_LOCK( &tlso_dh_mutex );
         ldap_pvt_thread_mutex_lock( &tlso_dh_mutex );  
 #endif  
         for ( p = tlso_dhparams; p; p=p->next ) {          for ( p = tlso_dhparams; p; p=p->next ) {
                 if ( p->keylength == key_length ) {                  if ( p->keylength == key_length ) {
 #ifdef LDAP_R_COMPILE                          LDAP_MUTEX_UNLOCK( &tlso_dh_mutex );
                         ldap_pvt_thread_mutex_unlock( &tlso_dh_mutex );  
 #endif  
                         return p->param;                          return p->param;
                 }                  }
         }          }
Line 1256  tlso_tmp_dh_cb( SSL *ssl, int is_export, Line 1246  tlso_tmp_dh_cb( SSL *ssl, int is_export,
                 }                  }
         }          }
   
 #ifdef LDAP_R_COMPILE          LDAP_MUTEX_UNLOCK( &tlso_dh_mutex );
         ldap_pvt_thread_mutex_unlock( &tlso_dh_mutex );  
 #endif  
         return dh;          return dh;
 }  }
   

Removed from v.1.5.2.9  
changed lines
  Added in v.1.18


______________
© Copyright 1998-2020, OpenLDAP Foundation, info@OpenLDAP.org