mirror of
https://github.com/openssl/openssl.git
synced 2025-01-30 14:01:55 +08:00
0647719d80
SSLv2 is no longer supported in 1.1.0, however we *do* still accept an SSLv2 style ClientHello, as long as we then subsequently negotiate a protocol version >= SSLv3. The record format for SSLv2 style ClientHellos is quite different to SSLv3+. We only accept this format in the first record of an initial ClientHello. Previously we checked this by confirming s->first_packet is set and s->server is true. However, this really only tells us that we are dealing with an initial ClientHello, not that it is the first record (s->first_packet is badly named...it really means this is the first message). To check this is the first record of the initial ClientHello we should also check that we've not received any data yet (s->init_num == 0), and that we've not had any empty records. GitHub Issue #1298 Reviewed-by: Emilia Käsper <emilia@openssl.org> |
||
---|---|---|
.. | ||
record | ||
statem | ||
bio_ssl.c | ||
build.info | ||
d1_lib.c | ||
d1_msg.c | ||
d1_srtp.c | ||
methods.c | ||
packet_locl.h | ||
pqueue.c | ||
s3_cbc.c | ||
s3_enc.c | ||
s3_lib.c | ||
s3_msg.c | ||
ssl_asn1.c | ||
ssl_cert.c | ||
ssl_ciph.c | ||
ssl_conf.c | ||
ssl_err.c | ||
ssl_init.c | ||
ssl_lib.c | ||
ssl_locl.h | ||
ssl_mcnf.c | ||
ssl_rsa.c | ||
ssl_sess.c | ||
ssl_stat.c | ||
ssl_txt.c | ||
ssl_utst.c | ||
t1_enc.c | ||
t1_ext.c | ||
t1_lib.c | ||
t1_reneg.c | ||
t1_trce.c | ||
tls_srp.c |