提交 3c33c6f6 编写于 作者: M Matt Caswell

Remove support for SSL_OP_NETSCAPE_CA_DN_BUG.

This is an ancient bug workaround for Netscape clients. The documentation
talks about versions 3.x and 4.x beta.
Reviewed-by: NTim Hudson <tjh@openssl.org>
上级 ae632974
...@@ -169,11 +169,6 @@ will send its list of preferences to the client and the client chooses. ...@@ -169,11 +169,6 @@ will send its list of preferences to the client and the client chooses.
... ...
=item SSL_OP_NETSCAPE_CA_DN_BUG
If we accept a netscape connection, demand a client cert, have a
non-self-signed CA which does not have its CA in netscape, and the
browser has a cert, it will crash/hang. Works for 3.x and 4.xbeta
=item SSL_OP_NETSCAPE_DEMO_CIPHER_CHANGE_BUG =item SSL_OP_NETSCAPE_DEMO_CIPHER_CHANGE_BUG
......
...@@ -2109,8 +2109,6 @@ int ssl3_get_certificate_request(SSL *s) ...@@ -2109,8 +2109,6 @@ int ssl3_get_certificate_request(SSL *s)
for (nc = 0; nc < llen;) { for (nc = 0; nc < llen;) {
n2s(p, l); n2s(p, l);
if ((l + nc + 2) > llen) { if ((l + nc + 2) > llen) {
if ((s->options & SSL_OP_NETSCAPE_CA_DN_BUG))
goto cont; /* netscape bugs */
ssl3_send_alert(s, SSL3_AL_FATAL, SSL_AD_DECODE_ERROR); ssl3_send_alert(s, SSL3_AL_FATAL, SSL_AD_DECODE_ERROR);
SSLerr(SSL_F_SSL3_GET_CERTIFICATE_REQUEST, SSL_R_CA_DN_TOO_LONG); SSLerr(SSL_F_SSL3_GET_CERTIFICATE_REQUEST, SSL_R_CA_DN_TOO_LONG);
goto err; goto err;
...@@ -2119,14 +2117,9 @@ int ssl3_get_certificate_request(SSL *s) ...@@ -2119,14 +2117,9 @@ int ssl3_get_certificate_request(SSL *s)
q = p; q = p;
if ((xn = d2i_X509_NAME(NULL, &q, l)) == NULL) { if ((xn = d2i_X509_NAME(NULL, &q, l)) == NULL) {
/* If netscape tolerance is on, ignore errors */ ssl3_send_alert(s, SSL3_AL_FATAL, SSL_AD_DECODE_ERROR);
if (s->options & SSL_OP_NETSCAPE_CA_DN_BUG) SSLerr(SSL_F_SSL3_GET_CERTIFICATE_REQUEST, ERR_R_ASN1_LIB);
goto cont; goto err;
else {
ssl3_send_alert(s, SSL3_AL_FATAL, SSL_AD_DECODE_ERROR);
SSLerr(SSL_F_SSL3_GET_CERTIFICATE_REQUEST, ERR_R_ASN1_LIB);
goto err;
}
} }
if (q != (p + l)) { if (q != (p + l)) {
...@@ -2144,11 +2137,6 @@ int ssl3_get_certificate_request(SSL *s) ...@@ -2144,11 +2137,6 @@ int ssl3_get_certificate_request(SSL *s)
nc += l + 2; nc += l + 2;
} }
if (0) {
cont:
ERR_clear_error();
}
/* we should setup a certificate to return.... */ /* we should setup a certificate to return.... */
s->s3->tmp.cert_req = 1; s->s3->tmp.cert_req = 1;
s->s3->tmp.ctype_num = ctype_num; s->s3->tmp.ctype_num = ctype_num;
......
...@@ -2056,20 +2056,10 @@ int ssl3_send_certificate_request(SSL *s) ...@@ -2056,20 +2056,10 @@ int ssl3_send_certificate_request(SSL *s)
goto err; goto err;
} }
p = ssl_handshake_start(s) + n; p = ssl_handshake_start(s) + n;
if (!(s->options & SSL_OP_NETSCAPE_CA_DN_BUG)) { s2n(j, p);
s2n(j, p); i2d_X509_NAME(name, &p);
i2d_X509_NAME(name, &p); n += 2 + j;
n += 2 + j; nl += 2 + j;
nl += 2 + j;
} else {
d = p;
i2d_X509_NAME(name, &p);
j -= 2;
s2n(j, d);
j += 2;
n += j;
nl += j;
}
} }
} }
/* else no CA names */ /* else no CA names */
......
...@@ -478,7 +478,8 @@ typedef int (*custom_ext_parse_cb) (SSL *s, unsigned int ext_type, ...@@ -478,7 +478,8 @@ typedef int (*custom_ext_parse_cb) (SSL *s, unsigned int ext_type,
# define SSL_OP_PKCS1_CHECK_1 0x0 # define SSL_OP_PKCS1_CHECK_1 0x0
# define SSL_OP_PKCS1_CHECK_2 0x0 # define SSL_OP_PKCS1_CHECK_2 0x0
# define SSL_OP_NETSCAPE_CA_DN_BUG 0x20000000L /* Removed as of OpenSSL 1.1.0 */
# define SSL_OP_NETSCAPE_CA_DN_BUG 0x0
# define SSL_OP_NETSCAPE_DEMO_CIPHER_CHANGE_BUG 0x40000000L # define SSL_OP_NETSCAPE_DEMO_CIPHER_CHANGE_BUG 0x40000000L
/* /*
* Make server add server-hello extension from early version of cryptopro * Make server add server-hello extension from early version of cryptopro
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册