boringssl/include/openssl
David Benjamin 8c6fe45c2f Replace s->first_packet with a s->s3->have_version bit.
first_packet is a temporary connection-global flag set for the duration of some
call and then queried from other code. This kind of logic is too difficult to
reason through. It also incorrectly treats renegotiate ClientHellos as
pre-version-negotiation records. This eliminates the need to query
enc_write_ctx (which wasn't EVP_AEAD-aware anyway).

Instead, take a leaf from Go TLS's book and add a have_version bit. This is
placed on s->s3 as it is connection state; s->s3 automatically gets reset on
SSL_clear while s doesn't.

This new flag will also be used to determine whether to do the V2ClientHello
sniff when the version-locked methods merge into SSLv23_method. It will also
replace needing to condition s->method against a dummy DTLS_ANY_VERSION value
to determine whether DTLS version negotiation has happened yet.

Change-Id: I5c8bc6258b182ba4ab175a48a84eab6d3a001333
Reviewed-on: https://boringssl-review.googlesource.com/2442
Reviewed-by: Adam Langley <agl@google.com>
2014-12-02 19:35:27 +00:00
..
aead.h Convert all zero-argument functions to '(void)' 2014-08-21 01:06:07 +00:00
aes.h Add visibility rules. 2014-07-31 22:03:11 +00:00
asn1_mac.h Add visibility rules. 2014-07-31 22:03:11 +00:00
asn1.h unifdef OPENSSL_NO_BIO. 2014-12-02 19:27:19 +00:00
asn1t.h Fix Windows shared library build. 2014-10-01 02:01:53 +00:00
base64.h Introduce EVP_DecodeBase64. 2014-08-25 23:00:28 +00:00
base.h Move the X509_NAME typedef into x509.h. 2014-10-28 22:38:38 +00:00
bio.h Cleanup of setting external buffer 2014-11-24 17:46:00 +00:00
bn.h Fix BN_sub documentation. 2014-08-27 17:41:08 +00:00
buf.h Add visibility rules. 2014-07-31 22:03:11 +00:00
bytestring.h Extended master secret support. 2014-10-24 21:19:44 +00:00
chacha.h Move public headers to include/openssl/ 2014-07-14 22:42:18 +00:00
cipher.h Add deprecated functions for tcpdump. 2014-09-26 22:10:45 +00:00
conf.h Convert all zero-argument functions to '(void)' 2014-08-21 01:06:07 +00:00
cpu.h Convert all zero-argument functions to '(void)' 2014-08-21 01:06:07 +00:00
crypto.h Add a CRYPTO_library_init and static-initializer-less build option. 2014-09-12 00:10:53 +00:00
des.h Add visibility rules. 2014-07-31 22:03:11 +00:00
dh.h Windows build fixes. 2014-08-11 22:10:02 +00:00
digest.h Add digest_test with tests for all existing EVP_MDs. 2014-11-06 01:49:03 +00:00
dsa.h Add misc functions for easier porting. 2014-09-18 22:38:11 +00:00
dtls1.h Keep retransmit window size architecture-independent. 2014-11-10 22:44:56 +00:00
ec_key.h Add visibility rules. 2014-07-31 22:03:11 +00:00
ec.h Compare r and s sizes to the order, not the degree. 2014-11-10 23:02:41 +00:00
ecdh.h Add visibility rules. 2014-07-31 22:03:11 +00:00
ecdsa.h Add visibility rules. 2014-07-31 22:03:11 +00:00
engine.h Add generic OPERATION_NOT_SUPPORTED error code. 2014-10-09 23:55:39 +00:00
err.h Remove ERR_LIB_PKCS12. 2014-10-31 18:25:06 +00:00
evp.h Add malloc failure tests. 2014-11-19 01:24:46 +00:00
ex_data.h Add visibility rules. 2014-07-31 22:03:11 +00:00
hmac.h Add visibility rules. 2014-07-31 22:03:11 +00:00
lhash_macros.h Move public headers to include/openssl/ 2014-07-14 22:42:18 +00:00
lhash.h Add visibility rules. 2014-07-31 22:03:11 +00:00
md4.h Add digest_test with tests for all existing EVP_MDs. 2014-11-06 01:49:03 +00:00
md5.h Readd MD4. 2014-08-26 21:51:48 +00:00
mem.h Add visibility rules. 2014-07-31 22:03:11 +00:00
modes.h Add visibility rules. 2014-07-31 22:03:11 +00:00
obj_mac.h Move public headers to include/openssl/ 2014-07-14 22:42:18 +00:00
obj.h Clarify a comment. 2014-08-14 09:42:46 -07:00
objects.h Move public headers to include/openssl/ 2014-07-14 22:42:18 +00:00
opensslfeatures.h Readd MD4. 2014-08-26 21:51:48 +00:00
opensslv.h Move public headers to include/openssl/ 2014-07-14 22:42:18 +00:00
ossl_typ.h Move public headers to include/openssl/ 2014-07-14 22:42:18 +00:00
pem.h unifdef OPENSSL_NO_BIO. 2014-12-02 19:27:19 +00:00
pkcs7.h Move public headers to include/openssl/ 2014-07-14 22:42:18 +00:00
pkcs8.h Provide compatibility functions for PKCS#12 parsing. 2014-09-20 00:10:03 +00:00
pkcs12.h Move public headers to include/openssl/ 2014-07-14 22:42:18 +00:00
poly1305.h Move public headers to include/openssl/ 2014-07-14 22:42:18 +00:00
pqueue.h Export pqueue functions. 2014-09-03 21:38:19 +00:00
rand.h Convert all zero-argument functions to '(void)' 2014-08-21 01:06:07 +00:00
rc4.h Add visibility rules. 2014-07-31 22:03:11 +00:00
rsa.h Add EVP_PKEY_supports_digest. 2014-11-18 22:18:36 +00:00
safe_stack.h Move public headers to include/openssl/ 2014-07-14 22:42:18 +00:00
sha.h Fix SHA*_Final documentation. 2014-10-06 23:51:50 +00:00
srtp.h Add less dangerous versions of SRTP functions. 2014-10-27 21:58:09 +00:00
ssl2.h Move public headers to include/openssl/ 2014-07-14 22:42:18 +00:00
ssl3.h Replace s->first_packet with a s->s3->have_version bit. 2014-12-02 19:35:27 +00:00
ssl23.h Clean up s23_srvr.c. 2014-08-12 21:10:56 +00:00
ssl.h Replace s->first_packet with a s->s3->have_version bit. 2014-12-02 19:35:27 +00:00
stack_macros.h Mark all SSL_CIPHERs as const. 2014-08-18 17:55:05 +00:00
stack.h Mark all SSL_CIPHERs as const. 2014-08-18 17:55:05 +00:00
thread.h Also export some deprecated functions. 2014-08-01 10:33:29 -07:00
time_support.h Move public headers to include/openssl/ 2014-07-14 22:42:18 +00:00
tls1.h Remove SSL_set_session_secret_cb (EAP-FAST) 2014-11-21 21:51:10 +00:00
type_check.h Move public headers to include/openssl/ 2014-07-14 22:42:18 +00:00
x509_vfy.h Add visibility rules. 2014-07-31 22:03:11 +00:00
x509.h unifdef OPENSSL_NO_BIO. 2014-12-02 19:27:19 +00:00
x509v3.h Fix Windows shared library build. 2014-10-01 02:01:53 +00:00