New Configure option no-<cipher> (rsa, idea, rc5, ...).

This commit is contained in:
Ulf Möller 1999-04-27 03:19:12 +00:00
parent 281c52c054
commit 79df9d6272
18 changed files with 90 additions and 25 deletions

View File

@ -20,7 +20,7 @@ my $usage="Usage: Configure [-Dxxx] [-lxxx] [-Lxxx] [-fxxx] [-Kxxx] [rsaref] [no
# rsaref use RSAref # rsaref use RSAref
# no-asm do not use assembler # no-asm do not use assembler
# 386 generate 80386 code # 386 generate 80386 code
# no-CIPHER build without specified algorithm # no-<cipher> build without specified algorithm (rsa, idea, rc5, ...)
# -D, -L, -l, -f, -K: compiler options are passed through # -D, -L, -l, -f, -K: compiler options are passed through
# #
# DES_PTR use pointer lookup vs arrays in the DES in crypto/des/des_locl.h # DES_PTR use pointer lookup vs arrays in the DES in crypto/des/des_locl.h

View File

@ -115,9 +115,11 @@ static int RSA_eay_public_encrypt(int flen, unsigned char *from,
case RSA_PKCS1_PADDING: case RSA_PKCS1_PADDING:
i=RSA_padding_add_PKCS1_type_2(buf,num,from,flen); i=RSA_padding_add_PKCS1_type_2(buf,num,from,flen);
break; break;
#ifndef NO_SHA
case RSA_PKCS1_OAEP_PADDING: case RSA_PKCS1_OAEP_PADDING:
i=RSA_padding_add_PKCS1_OAEP(buf,num,from,flen,NULL,0); i=RSA_padding_add_PKCS1_OAEP(buf,num,from,flen,NULL,0);
break; break;
#endif
case RSA_SSLV23_PADDING: case RSA_SSLV23_PADDING:
i=RSA_padding_add_SSLv23(buf,num,from,flen); i=RSA_padding_add_SSLv23(buf,num,from,flen);
break; break;
@ -299,9 +301,11 @@ static int RSA_eay_private_decrypt(int flen, unsigned char *from,
case RSA_PKCS1_PADDING: case RSA_PKCS1_PADDING:
r=RSA_padding_check_PKCS1_type_2(to,num,buf,j,num); r=RSA_padding_check_PKCS1_type_2(to,num,buf,j,num);
break; break;
#ifndef NO_SHA
case RSA_PKCS1_OAEP_PADDING: case RSA_PKCS1_OAEP_PADDING:
r=RSA_padding_check_PKCS1_OAEP(to,num,buf,j,num,NULL,0); r=RSA_padding_check_PKCS1_OAEP(to,num,buf,j,num,NULL,0);
break; break;
#endif
case RSA_SSLV23_PADDING: case RSA_SSLV23_PADDING:
r=RSA_padding_check_SSLv23(to,num,buf,j,num); r=RSA_padding_check_SSLv23(to,num,buf,j,num);
break; break;

View File

@ -4,6 +4,7 @@
/* EME_OAEP as defined in RFC 2437 (PKCS #1 v2.0) */ /* EME_OAEP as defined in RFC 2437 (PKCS #1 v2.0) */
#ifndef NO_SHA
#include <stdio.h> #include <stdio.h>
#include "cryptlib.h" #include "cryptlib.h"
#include <openssl/bn.h> #include <openssl/bn.h>
@ -156,3 +157,4 @@ int MGF1(unsigned char *mask, long len, unsigned char *seed, long seedlen)
} }
return (0); return (0);
} }
#endif

View File

@ -56,6 +56,7 @@
* [including the GNU Public Licence.] * [including the GNU Public Licence.]
*/ */
#ifndef NO_RSA
#include <stdio.h> #include <stdio.h>
#include "cryptlib.h" #include "cryptlib.h"
#include <openssl/bn.h> #include <openssl/bn.h>
@ -296,4 +297,4 @@ err:
memset(&rnd,0,sizeof(rnd)); memset(&rnd,0,sizeof(rnd));
return(outlen); return(outlen);
} }
#endif

View File

@ -59,6 +59,7 @@
#ifndef HEADER_RSAREF_H #ifndef HEADER_RSAREF_H
#define HEADER_RSAREF_H #define HEADER_RSAREF_H
#ifndef NO_RSA
#include <openssl/rsa.h> #include <openssl/rsa.h>
/* RSAeuro */ /* RSAeuro */
@ -128,6 +129,7 @@ int R_RandomFinal(RSARandomState *rnd);
void ERR_load_RSAREF_strings(void ); void ERR_load_RSAREF_strings(void );
RSA_METHOD *RSA_PKCS1_RSAref(void ); RSA_METHOD *RSA_PKCS1_RSAref(void );
#endif
/* BEGIN ERROR CODES */ /* BEGIN ERROR CODES */
/* The following lines are auto generated by the script mkerr.pl. Any changes /* The following lines are auto generated by the script mkerr.pl. Any changes

View File

@ -68,9 +68,11 @@ static int ssl23_client_hello(SSL *s);
static int ssl23_get_server_hello(SSL *s); static int ssl23_get_server_hello(SSL *s);
static SSL_METHOD *ssl23_get_client_method(int ver) static SSL_METHOD *ssl23_get_client_method(int ver)
{ {
#ifndef NO_RSA
if (ver == SSL2_VERSION) if (ver == SSL2_VERSION)
return(SSLv2_client_method()); return(SSLv2_client_method());
else if (ver == SSL3_VERSION) #endif
if (ver == SSL3_VERSION)
return(SSLv3_client_method()); return(SSLv3_client_method());
else if (ver == TLS1_VERSION) else if (ver == TLS1_VERSION)
return(TLSv1_client_method()); return(TLSv1_client_method());
@ -320,6 +322,9 @@ static int ssl23_get_server_hello(SSL *s)
if ((p[0] & 0x80) && (p[2] == SSL2_MT_SERVER_HELLO) && if ((p[0] & 0x80) && (p[2] == SSL2_MT_SERVER_HELLO) &&
(p[5] == 0x00) && (p[6] == 0x02)) (p[5] == 0x00) && (p[6] == 0x02))
{ {
#ifdef NO_RSA
goto err;
#else
/* we are talking sslv2 */ /* we are talking sslv2 */
/* we need to clean up the SSLv3 setup and put in the /* we need to clean up the SSLv3 setup and put in the
* sslv2 stuff. */ * sslv2 stuff. */
@ -375,6 +380,7 @@ static int ssl23_get_server_hello(SSL *s)
s->method=SSLv2_client_method(); s->method=SSLv2_client_method();
s->handshake_func=s->method->ssl_connect; s->handshake_func=s->method->ssl_connect;
#endif
} }
else if ((p[0] == SSL3_RT_HANDSHAKE) && else if ((p[0] == SSL3_RT_HANDSHAKE) &&
(p[1] == SSL3_VERSION_MAJOR) && (p[1] == SSL3_VERSION_MAJOR) &&

View File

@ -67,9 +67,11 @@ static SSL_METHOD *ssl23_get_server_method(int ver);
int ssl23_get_client_hello(SSL *s); int ssl23_get_client_hello(SSL *s);
static SSL_METHOD *ssl23_get_server_method(int ver) static SSL_METHOD *ssl23_get_server_method(int ver)
{ {
#ifndef NO_RSA
if (ver == SSL2_VERSION) if (ver == SSL2_VERSION)
return(SSLv2_server_method()); return(SSLv2_server_method());
else if (ver == SSL3_VERSION) #endif
if (ver == SSL3_VERSION)
return(SSLv3_server_method()); return(SSLv3_server_method());
else if (ver == TLS1_VERSION) else if (ver == TLS1_VERSION)
return(TLSv1_server_method()); return(TLSv1_server_method());
@ -404,6 +406,9 @@ next_bit:
if (type == 1) if (type == 1)
{ {
#ifdef NO_RSA
goto err;
#else
/* we are talking sslv2 */ /* we are talking sslv2 */
/* we need to clean up the SSLv3/TLSv1 setup and put in the /* we need to clean up the SSLv3/TLSv1 setup and put in the
* sslv2 stuff. */ * sslv2 stuff. */
@ -442,6 +447,7 @@ next_bit:
s->method=SSLv2_server_method(); s->method=SSLv2_server_method();
s->handshake_func=s->method->ssl_accept; s->handshake_func=s->method->ssl_accept;
#endif
} }
if ((type == 2) || (type == 3)) if ((type == 2) || (type == 3))

View File

@ -56,6 +56,7 @@
* [including the GNU Public Licence.] * [including the GNU Public Licence.]
*/ */
#ifndef NO_RSA
#include <stdio.h> #include <stdio.h>
#include <openssl/rand.h> #include <openssl/rand.h>
#include <openssl/buffer.h> #include <openssl/buffer.h>
@ -963,4 +964,4 @@ end:
EVP_PKEY_free(pkey); EVP_PKEY_free(pkey);
return(i); return(i);
} }
#endif

View File

@ -56,6 +56,7 @@
* [including the GNU Public Licence.] * [including the GNU Public Licence.]
*/ */
#ifndef NO_RSA
#include <stdio.h> #include <stdio.h>
#include <openssl/rsa.h> #include <openssl/rsa.h>
#include <openssl/objects.h> #include <openssl/objects.h>
@ -414,4 +415,4 @@ int ssl2_shutdown(SSL *s)
s->shutdown=(SSL_SENT_SHUTDOWN|SSL_RECEIVED_SHUTDOWN); s->shutdown=(SSL_SENT_SHUTDOWN|SSL_RECEIVED_SHUTDOWN);
return(1); return(1);
} }
#endif

View File

@ -56,6 +56,7 @@
* [including the GNU Public Licence.] * [including the GNU Public Licence.]
*/ */
#ifndef NO_RSA
#include <stdio.h> #include <stdio.h>
#include <openssl/objects.h> #include <openssl/objects.h>
#include "ssl_locl.h" #include "ssl_locl.h"
@ -85,4 +86,4 @@ SSL_METHOD *SSLv2_method(void)
} }
return(&SSLv2_data); return(&SSLv2_data);
} }
#endif

View File

@ -56,6 +56,7 @@
* [including the GNU Public Licence.] * [including the GNU Public Licence.]
*/ */
#ifndef NO_RSA
#include <stdio.h> #include <stdio.h>
#include <openssl/bio.h> #include <openssl/bio.h>
#include <openssl/rand.h> #include <openssl/rand.h>
@ -940,4 +941,4 @@ static int ssl_rsa_private_decrypt(CERT *c, int len, unsigned char *from,
SSLerr(SSL_F_SSL_RSA_PRIVATE_DECRYPT,ERR_R_RSA_LIB); SSLerr(SSL_F_SSL_RSA_PRIVATE_DECRYPT,ERR_R_RSA_LIB);
return(i); return(i);
} }
#endif

View File

@ -828,7 +828,9 @@ static int ssl3_get_key_exchange(SSL *s)
int al,i,j,param_len,ok; int al,i,j,param_len,ok;
long n,alg; long n,alg;
EVP_PKEY *pkey=NULL; EVP_PKEY *pkey=NULL;
#ifndef NO_RSA
RSA *rsa=NULL; RSA *rsa=NULL;
#endif
#ifndef NO_DH #ifndef NO_DH
DH *dh=NULL; DH *dh=NULL;
#endif #endif
@ -1287,10 +1289,13 @@ static int ssl3_get_server_done(SSL *s)
static int ssl3_send_client_key_exchange(SSL *s) static int ssl3_send_client_key_exchange(SSL *s)
{ {
unsigned char *p,*q,*d; unsigned char *p,*d;
int n; int n;
unsigned long l; unsigned long l;
#ifndef NO_RSA
unsigned char *q;
EVP_PKEY *pkey=NULL; EVP_PKEY *pkey=NULL;
#endif
if (s->state == SSL3_ST_CW_KEY_EXCH_A) if (s->state == SSL3_ST_CW_KEY_EXCH_A)
{ {
@ -1440,7 +1445,9 @@ static int ssl3_send_client_verify(SSL *s)
unsigned char *p,*d; unsigned char *p,*d;
unsigned char data[MD5_DIGEST_LENGTH+SHA_DIGEST_LENGTH]; unsigned char data[MD5_DIGEST_LENGTH+SHA_DIGEST_LENGTH];
EVP_PKEY *pkey; EVP_PKEY *pkey;
#ifndef NO_RSA
int i=0; int i=0;
#endif
unsigned long n; unsigned long n;
#ifndef NO_DSA #ifndef NO_DSA
int j; int j;
@ -1590,8 +1597,12 @@ static int ssl3_check_cert_and_algorithm(SSL *s)
long algs; long algs;
EVP_PKEY *pkey=NULL; EVP_PKEY *pkey=NULL;
CERT *c; CERT *c;
#ifndef NO_RSA
RSA *rsa; RSA *rsa;
#endif
#ifndef NO_DH
DH *dh; DH *dh;
#endif
c=s->session->cert; c=s->session->cert;
@ -1607,8 +1618,12 @@ static int ssl3_check_cert_and_algorithm(SSL *s)
if (algs & (SSL_aDH|SSL_aNULL)) if (algs & (SSL_aDH|SSL_aNULL))
return(1); return(1);
#ifndef NO_RSA
rsa=s->session->cert->rsa_tmp; rsa=s->session->cert->rsa_tmp;
#endif
#ifndef NO_DH
dh=s->session->cert->dh_tmp; dh=s->session->cert->dh_tmp;
#endif
/* This is the passed certificate */ /* This is the passed certificate */
@ -1631,15 +1646,16 @@ static int ssl3_check_cert_and_algorithm(SSL *s)
goto f_err; goto f_err;
} }
#endif #endif
#ifndef NO_RSA
if ((algs & SSL_kRSA) && if ((algs & SSL_kRSA) &&
!(has_bits(i,EVP_PK_RSA|EVP_PKT_ENC) || (rsa != NULL))) !(has_bits(i,EVP_PK_RSA|EVP_PKT_ENC) || (rsa != NULL)))
{ {
SSLerr(SSL_F_SSL3_CHECK_CERT_AND_ALGORITHM,SSL_R_MISSING_RSA_ENCRYPTING_CERT); SSLerr(SSL_F_SSL3_CHECK_CERT_AND_ALGORITHM,SSL_R_MISSING_RSA_ENCRYPTING_CERT);
goto f_err; goto f_err;
} }
#endif
#ifndef NO_DH #ifndef NO_DH
else if ((algs & SSL_kEDH) && if ((algs & SSL_kEDH) &&
!(has_bits(i,EVP_PK_DH|EVP_PKT_EXCH) || (dh != NULL))) !(has_bits(i,EVP_PK_DH|EVP_PKT_EXCH) || (dh != NULL)))
{ {
SSLerr(SSL_F_SSL3_CHECK_CERT_AND_ALGORITHM,SSL_R_MISSING_DH_KEY); SSLerr(SSL_F_SSL3_CHECK_CERT_AND_ALGORITHM,SSL_R_MISSING_DH_KEY);

View File

@ -1183,8 +1183,10 @@ static int ssl3_get_client_key_exchange(SSL *s)
long n; long n;
unsigned long l; unsigned long l;
unsigned char *p; unsigned char *p;
#ifndef NO_RSA
RSA *rsa=NULL; RSA *rsa=NULL;
EVP_PKEY *pkey=NULL; EVP_PKEY *pkey=NULL;
#endif
#ifndef NO_DH #ifndef NO_DH
BIGNUM *pub=NULL; BIGNUM *pub=NULL;
DH *dh_srvr; DH *dh_srvr;

View File

@ -852,7 +852,9 @@ int SSL_get_verify_mode(SSL *s);
int (*SSL_get_verify_callback(SSL *s))(int,X509_STORE_CTX *); int (*SSL_get_verify_callback(SSL *s))(int,X509_STORE_CTX *);
void SSL_set_verify(SSL *s, int mode, void SSL_set_verify(SSL *s, int mode,
int (*callback)(int ok,X509_STORE_CTX *ctx)); int (*callback)(int ok,X509_STORE_CTX *ctx));
#ifndef NO_RSA
int SSL_use_RSAPrivateKey(SSL *ssl, RSA *rsa); int SSL_use_RSAPrivateKey(SSL *ssl, RSA *rsa);
#endif
int SSL_use_RSAPrivateKey_ASN1(SSL *ssl, unsigned char *d, long len); int SSL_use_RSAPrivateKey_ASN1(SSL *ssl, unsigned char *d, long len);
int SSL_use_PrivateKey(SSL *ssl, EVP_PKEY *pkey); int SSL_use_PrivateKey(SSL *ssl, EVP_PKEY *pkey);
int SSL_use_PrivateKey_ASN1(int pk,SSL *ssl, unsigned char *d, long len); int SSL_use_PrivateKey_ASN1(int pk,SSL *ssl, unsigned char *d, long len);
@ -912,7 +914,9 @@ int (*SSL_CTX_get_verify_callback(SSL_CTX *ctx))(int,X509_STORE_CTX *);
void SSL_CTX_set_verify(SSL_CTX *ctx,int mode, void SSL_CTX_set_verify(SSL_CTX *ctx,int mode,
int (*callback)(int, X509_STORE_CTX *)); int (*callback)(int, X509_STORE_CTX *));
void SSL_CTX_set_cert_verify_cb(SSL_CTX *ctx, int (*cb)(),char *arg); void SSL_CTX_set_cert_verify_cb(SSL_CTX *ctx, int (*cb)(),char *arg);
#ifndef NO_RSA
int SSL_CTX_use_RSAPrivateKey(SSL_CTX *ctx, RSA *rsa); int SSL_CTX_use_RSAPrivateKey(SSL_CTX *ctx, RSA *rsa);
#endif
int SSL_CTX_use_RSAPrivateKey_ASN1(SSL_CTX *ctx, unsigned char *d, long len); int SSL_CTX_use_RSAPrivateKey_ASN1(SSL_CTX *ctx, unsigned char *d, long len);
int SSL_CTX_use_PrivateKey(SSL_CTX *ctx, EVP_PKEY *pkey); int SSL_CTX_use_PrivateKey(SSL_CTX *ctx, EVP_PKEY *pkey);
int SSL_CTX_use_PrivateKey_ASN1(int pk,SSL_CTX *ctx, int SSL_CTX_use_PrivateKey_ASN1(int pk,SSL_CTX *ctx,
@ -1046,17 +1050,21 @@ int SSL_get_ex_data_X509_STORE_CTX_idx(void );
SSL_CTX_ctrl(ctx,SSL_CTRL_SET_READ_AHEAD,0,NULL) SSL_CTX_ctrl(ctx,SSL_CTRL_SET_READ_AHEAD,0,NULL)
/* NB: the keylength is only applicable when export is true */ /* NB: the keylength is only applicable when export is true */
#ifndef NO_RSA
void SSL_CTX_set_tmp_rsa_callback(SSL_CTX *ctx, void SSL_CTX_set_tmp_rsa_callback(SSL_CTX *ctx,
RSA *(*cb)(SSL *ssl,int export, RSA *(*cb)(SSL *ssl,int export,
int keylength)); int keylength));
void SSL_CTX_set_tmp_dh_callback(SSL_CTX *ctx,
DH *(*dh)(SSL *ssl,int export,int keylength));
void SSL_set_tmp_rsa_callback(SSL *ssl, void SSL_set_tmp_rsa_callback(SSL *ssl,
RSA *(*cb)(SSL *ssl,int export, RSA *(*cb)(SSL *ssl,int export,
int keylength)); int keylength));
#endif
#ifndef NO_DH
void SSL_CTX_set_tmp_dh_callback(SSL_CTX *ctx,
DH *(*dh)(SSL *ssl,int export,int keylength));
void SSL_set_tmp_dh_callback(SSL *ssl, void SSL_set_tmp_dh_callback(SSL *ssl,
DH *(*dh)(SSL *ssl,int export,int keylength)); DH *(*dh)(SSL *ssl,int export,int keylength));
#endif
#ifdef HEADER_COMP_H #ifdef HEADER_COMP_H
int SSL_COMP_add_compression_method(int id,COMP_METHOD *cm); int SSL_COMP_add_compression_method(int id,COMP_METHOD *cm);

View File

@ -322,8 +322,9 @@ typedef struct ssl3_ctx_st
/* used to hold the new cipher we are going to use */ /* used to hold the new cipher we are going to use */
SSL_CIPHER *new_cipher; SSL_CIPHER *new_cipher;
#ifndef NO_DH
DH *dh; DH *dh;
#endif
/* used when SSL_ST_FLUSH_DATA is entered */ /* used when SSL_ST_FLUSH_DATA is entered */
int next_state; int next_state;

View File

@ -1762,9 +1762,17 @@ int SSL_want(SSL *s)
* \param cb the callback * \param cb the callback
*/ */
#ifndef NO_RSA
void SSL_CTX_set_tmp_rsa_callback(SSL_CTX *ctx,RSA *(*cb)(SSL *ssl,int export, void SSL_CTX_set_tmp_rsa_callback(SSL_CTX *ctx,RSA *(*cb)(SSL *ssl,int export,
int keylength)) int keylength))
{ SSL_CTX_ctrl(ctx,SSL_CTRL_SET_TMP_RSA_CB,0,(char *)cb); } { SSL_CTX_ctrl(ctx,SSL_CTRL_SET_TMP_RSA_CB,0,(char *)cb); }
#endif
#ifndef NO_RSA
void SSL_set_tmp_rsa_callback(SSL *ssl,RSA *(*cb)(SSL *ssl,int export,
int keylength))
{ SSL_ctrl(ssl,SSL_CTRL_SET_TMP_RSA_CB,0,(char *)cb); }
#endif
#ifdef DOXYGEN #ifdef DOXYGEN
/*! /*!
@ -1787,17 +1795,15 @@ RSA *cb(SSL *ssl,int export,int keylength)
* \param dh the callback * \param dh the callback
*/ */
#ifndef NO_DH
void SSL_CTX_set_tmp_dh_callback(SSL_CTX *ctx,DH *(*dh)(SSL *ssl,int export, void SSL_CTX_set_tmp_dh_callback(SSL_CTX *ctx,DH *(*dh)(SSL *ssl,int export,
int keylength)) int keylength))
{ SSL_CTX_ctrl(ctx,SSL_CTRL_SET_TMP_DH_CB,0,(char *)dh); } { SSL_CTX_ctrl(ctx,SSL_CTRL_SET_TMP_DH_CB,0,(char *)dh); }
void SSL_set_tmp_rsa_callback(SSL *ssl,RSA *(*cb)(SSL *ssl,int export,
int keylength))
{ SSL_ctrl(ssl,SSL_CTRL_SET_TMP_RSA_CB,0,(char *)cb); }
void SSL_set_tmp_dh_callback(SSL *ssl,DH *(*dh)(SSL *ssl,int export, void SSL_set_tmp_dh_callback(SSL *ssl,DH *(*dh)(SSL *ssl,int export,
int keylength)) int keylength))
{ SSL_ctrl(ssl,SSL_CTRL_SET_TMP_DH_CB,0,(char *)dh); } { SSL_ctrl(ssl,SSL_CTRL_SET_TMP_DH_CB,0,(char *)dh); }
#endif
#if defined(_WINDLL) && defined(WIN16) #if defined(_WINDLL) && defined(WIN16)
#include "../crypto/bio/bss_file.c" #include "../crypto/bio/bss_file.c"

View File

@ -273,15 +273,18 @@ typedef struct cert_st
int valid; int valid;
unsigned long mask; unsigned long mask;
unsigned long export_mask; unsigned long export_mask;
#ifndef NO_RSA
RSA *rsa_tmp; RSA *rsa_tmp;
RSA *(*rsa_tmp_cb)(SSL *ssl,int export,int keysize);
#endif
#ifndef NO_DH
DH *dh_tmp; DH *dh_tmp;
/* FIXME: Although rsa_tmp and dh_tmp are properties of the cert, /* FIXME: Although rsa_tmp and dh_tmp are properties of the cert,
callbacks probably aren't, and besides only the context default callbacks probably aren't, and besides only the context default
cert's callbacks are actually used. Too close to a release to fix cert's callbacks are actually used. Too close to a release to fix
this now - Ben 6 Mar 1999 */ this now - Ben 6 Mar 1999 */
RSA *(*rsa_tmp_cb)(SSL *ssl,int export,int keysize);
DH *(*dh_tmp_cb)(SSL *ssl,int export,int keysize); DH *(*dh_tmp_cb)(SSL *ssl,int export,int keysize);
#endif
CERT_PKEY pkeys[SSL_PKEY_NUM]; CERT_PKEY pkeys[SSL_PKEY_NUM];
STACK_OF(X509) *cert_chain; STACK_OF(X509) *cert_chain;

View File

@ -70,12 +70,18 @@
#include "../crypto/bio/bss_file.c" #include "../crypto/bio/bss_file.c"
#endif #endif
#if defined(NO_RSA) && !defined(NO_SSL2)
#define NO_SSL2
#endif
#define TEST_SERVER_CERT "../apps/server.pem" #define TEST_SERVER_CERT "../apps/server.pem"
#define TEST_CLIENT_CERT "../apps/client.pem" #define TEST_CLIENT_CERT "../apps/client.pem"
int MS_CALLBACK verify_callback(int ok, X509_STORE_CTX *ctx); int MS_CALLBACK verify_callback(int ok, X509_STORE_CTX *ctx);
#ifndef NO_RSA
static RSA MS_CALLBACK *tmp_rsa_cb(SSL *s, int export,int keylength); static RSA MS_CALLBACK *tmp_rsa_cb(SSL *s, int export,int keylength);
#ifndef NO_DSA #endif
#ifndef NO_DH
static DH *get_dh512(void); static DH *get_dh512(void);
#endif #endif
BIO *bio_err=NULL; BIO *bio_err=NULL;
@ -710,6 +716,7 @@ static DH *get_dh512(void)
} }
#endif #endif
#ifndef NO_RSA
static RSA MS_CALLBACK *tmp_rsa_cb(SSL *s, int export, int keylength) static RSA MS_CALLBACK *tmp_rsa_cb(SSL *s, int export, int keylength)
{ {
static RSA *rsa_tmp=NULL; static RSA *rsa_tmp=NULL;
@ -718,13 +725,10 @@ static RSA MS_CALLBACK *tmp_rsa_cb(SSL *s, int export, int keylength)
{ {
BIO_printf(bio_err,"Generating temp (%d bit) RSA key...",keylength); BIO_printf(bio_err,"Generating temp (%d bit) RSA key...",keylength);
BIO_flush(bio_err); BIO_flush(bio_err);
#ifndef NO_RSA
rsa_tmp=RSA_generate_key(keylength,RSA_F4,NULL,NULL); rsa_tmp=RSA_generate_key(keylength,RSA_F4,NULL,NULL);
#endif
BIO_printf(bio_err,"\n"); BIO_printf(bio_err,"\n");
BIO_flush(bio_err); BIO_flush(bio_err);
} }
return(rsa_tmp); return(rsa_tmp);
} }
#endif