Get rid of redundant multiplications in bn_div_words.
[openssl.git] / ssl / s2_lib.c
index 43c7cab3edef4dc122c59f57ae0167f4796eed25..ff804d8e0d1b0b66b578feead844914f74dc19d4 100644 (file)
  * [including the GNU Public Licence.]
  */
 
+#ifndef NO_RSA
 #include <stdio.h>
-#include "rsa.h"
-#include "objects.h"
+#include <openssl/rsa.h>
+#include <openssl/objects.h>
+#include <openssl/md5.h>
 #include "ssl_locl.h"
 
-#ifndef NOPROTO
 static long ssl2_default_timeout(void );
-#else
-static long ssl2_default_timeout();
-#endif
-
 const char *ssl2_version_str="SSLv2" OPENSSL_VERSION_PTEXT;
 
 #define SSL2_NUM_CIPHERS (sizeof(ssl2_ciphers)/sizeof(SSL_CIPHER))
 
-SSL_CIPHER ssl2_ciphers[]={
+OPENSSL_GLOBAL SSL_CIPHER ssl2_ciphers[]={
 /* NULL_WITH_MD5 v3 */
 #if 0
        {
@@ -316,7 +313,7 @@ SSL_CIPHER *ssl2_get_cipher_by_char(const unsigned char *p)
 
        if (init)
                {
-               init=0;
+               CRYPTO_w_lock(CRYPTO_LOCK_SSL);
 
                for (i=0; i<SSL2_NUM_CIPHERS; i++)
                        sorted[i]= &(ssl2_ciphers[i]);
@@ -324,6 +321,9 @@ SSL_CIPHER *ssl2_get_cipher_by_char(const unsigned char *p)
                qsort(  (char *)sorted,
                        SSL2_NUM_CIPHERS,sizeof(SSL_CIPHER *),
                        FP_ICC ssl_cipher_ptr_id_cmp);
+
+               CRYPTO_w_unlock(CRYPTO_LOCK_SSL);
+               init=0;
                }
 
        id=0x02000000L|((unsigned long)p[0]<<16L)|
@@ -361,6 +361,11 @@ void ssl2_generate_key_material(SSL *s)
        unsigned char *km;
        unsigned char c='0';
 
+#ifdef CHARSET_EBCDIC
+       c = os_toascii['0']; /* Must be an ASCII '0', not EBCDIC '0',
+                               see SSLv2 docu */
+#endif
+
        km=s->s2->key_material;
        for (i=0; i<s->s2->key_material_length; i+=MD5_DIGEST_LENGTH)
                {
@@ -390,7 +395,7 @@ void ssl2_return_error(SSL *s, int err)
 
 void ssl2_write_error(SSL *s)
        {
-       char buf[3];
+       unsigned char buf[3];
        int i,error;
 
        buf[0]=SSL2_MT_ERROR;
@@ -416,4 +421,4 @@ int ssl2_shutdown(SSL *s)
        s->shutdown=(SSL_SENT_SHUTDOWN|SSL_RECEIVED_SHUTDOWN);
        return(1);
        }
-
+#endif