Recent changes from 0.9.7-stable.

This commit is contained in:
Richard Levitte 2003-09-08 16:49:37 +00:00
parent 64a014a6d2
commit f61bc950c1
7 changed files with 29 additions and 9 deletions

14
CHANGES
View File

@ -4,6 +4,15 @@
Changes between 0.9.7b and 0.9.7c [xx XXX 2003] Changes between 0.9.7b and 0.9.7c [xx XXX 2003]
*) New -ignore_err option in ocsp application to stop the server
exiting on the first error in a request.
[Steve Henson]
*) In ssl3_accept() (ssl/s3_srvr.c) only accept a client certificate
if the server requested one: as stated in TLS 1.0 and SSL 3.0
specifications.
[Steve Henson]
*) In ssl3_get_client_hello() (ssl/s3_srvr.c), tolerate additional *) In ssl3_get_client_hello() (ssl/s3_srvr.c), tolerate additional
extra data after the compression methods not only for TLS 1.0 extra data after the compression methods not only for TLS 1.0
but also for SSL 3.0 (as required by the specification). but also for SSL 3.0 (as required by the specification).
@ -1973,6 +1982,11 @@ des-cbc 3624.96k 5258.21k 5530.91k 5624.30k 5628.26k
Changes between 0.9.6j and 0.9.6k [xx XXX 2003] Changes between 0.9.6j and 0.9.6k [xx XXX 2003]
*) In ssl3_accept() (ssl/s3_srvr.c) only accept a client certificate
if the server requested one: as stated in TLS 1.0 and SSL 3.0
specifications.
[Steve Henson]
*) In ssl3_get_client_hello() (ssl/s3_srvr.c), tolerate additional *) In ssl3_get_client_hello() (ssl/s3_srvr.c), tolerate additional
extra data after the compression methods not only for TLS 1.0 extra data after the compression methods not only for TLS 1.0
but also for SSL 3.0 (as required by the specification). but also for SSL 3.0 (as required by the specification).

View File

@ -136,6 +136,7 @@ int MAIN(int argc, char **argv)
int accept_count = -1; int accept_count = -1;
int badarg = 0; int badarg = 0;
int i; int i;
int ignore_err = 0;
STACK *reqnames = NULL; STACK *reqnames = NULL;
STACK_OF(OCSP_CERTID) *ids = NULL; STACK_OF(OCSP_CERTID) *ids = NULL;
@ -195,6 +196,8 @@ int MAIN(int argc, char **argv)
} }
else badarg = 1; else badarg = 1;
} }
else if (!strcmp(*args, "-ignore_err"))
ignore_err = 1;
else if (!strcmp(*args, "-noverify")) else if (!strcmp(*args, "-noverify"))
noverify = 1; noverify = 1;
else if (!strcmp(*args, "-nonce")) else if (!strcmp(*args, "-nonce"))
@ -809,6 +812,8 @@ int MAIN(int argc, char **argv)
{ {
BIO_printf(out, "Responder Error: %s (%ld)\n", BIO_printf(out, "Responder Error: %s (%ld)\n",
OCSP_response_status_str(i), i); OCSP_response_status_str(i), i);
if (ignore_err)
goto redo_accept;
ret = 0; ret = 0;
goto end; goto end;
} }

View File

@ -163,7 +163,7 @@ static void lock_dbg_cb(int mode, int type, const char *file, int line)
goto err; goto err;
} }
if (type < 0 || type > CRYPTO_NUM_LOCKS) if (type < 0 || type >= CRYPTO_NUM_LOCKS)
{ {
errstr = "type out of bounds"; errstr = "type out of bounds";
goto err; goto err;

View File

@ -296,7 +296,7 @@ static int in_utf8(unsigned long value, void *arg)
static int out_utf8(unsigned long value, void *arg) static int out_utf8(unsigned long value, void *arg)
{ {
long *outlen; int *outlen;
outlen = arg; outlen = arg;
*outlen += UTF8_putc(NULL, -1, value); *outlen += UTF8_putc(NULL, -1, value);
return 1; return 1;

View File

@ -431,10 +431,11 @@ int ssl3_accept(SSL *s)
if (ret == 2) if (ret == 2)
s->state = SSL3_ST_SR_CLNT_HELLO_C; s->state = SSL3_ST_SR_CLNT_HELLO_C;
else { else {
/* could be sent for a DH cert, even if we if (s->s3->tmp.cert_request)
* have not asked for it :-) */ {
ret=ssl3_get_client_certificate(s); ret=ssl3_get_client_certificate(s);
if (ret <= 0) goto end; if (ret <= 0) goto end;
}
s->init_num=0; s->init_num=0;
s->state=SSL3_ST_SR_KEY_EXCH_A; s->state=SSL3_ST_SR_KEY_EXCH_A;
} }

View File

@ -79,11 +79,11 @@ SSL_SESSION *SSL_get1_session(SSL *ssl)
/* Need to lock this all up rather than just use CRYPTO_add so that /* Need to lock this all up rather than just use CRYPTO_add so that
* somebody doesn't free ssl->session between when we check it's * somebody doesn't free ssl->session between when we check it's
* non-null and when we up the reference count. */ * non-null and when we up the reference count. */
CRYPTO_r_lock(CRYPTO_LOCK_SSL_SESSION); CRYPTO_w_lock(CRYPTO_LOCK_SSL_SESSION);
sess = ssl->session; sess = ssl->session;
if(sess) if(sess)
sess->references++; sess->references++;
CRYPTO_r_unlock(CRYPTO_LOCK_SSL_SESSION); CRYPTO_w_unlock(CRYPTO_LOCK_SSL_SESSION);
return(sess); return(sess);
} }

View File

@ -290,7 +290,7 @@ static void lock_dbg_cb(int mode, int type, const char *file, int line)
goto err; goto err;
} }
if (type < 0 || type > CRYPTO_NUM_LOCKS) if (type < 0 || type >= CRYPTO_NUM_LOCKS)
{ {
errstr = "type out of bounds"; errstr = "type out of bounds";
goto err; goto err;