boringssl/ssl
David Benjamin 3c1ccc017c Document a bunch of core functions in ssl.h.
Unfortunately, these are also some of the worst APIs in the SSL stack.
I've tried to capture all the things they expose to the caller. 0 vs -1
is intentionally left unexpanded on for now. Upstream's documentation
says 0 means transport EOF, which is a nice idea but isn't true. (A lot
of random functions return 0 on error and pass it up to the caller.)
https://crbug.com/466303 tracks fixing that.

SSL_set_bio is intentionally documented to NOT be usable when they're
already configured. The function tries to behave in this case and even
with additional cases when |rbio| and/or |wbio| are unchanged, but this
is buggy. For instance, this will explode:

     SSL_set_bio(ssl, bio1, bio1);
     SSL_set_bio(ssl, bio2, SSL_get_wbio(ssl));

As will this, though it's less clear this is part of the API contract
due to SSL taking ownership.

     SSL_set_bio(ssl, bio1, bio2);
     SSL_set_bio(ssl, bio2, bio1);

It also tries to handle ssl->bbio already existing, but I doubt it quite
works. Hopefully we can drop ssl->bbio eventually. (Why is this so
complicated...)

Change-Id: I5f9f3043915bffc67e2ebd282813e04afbe076e6
Reviewed-on: https://boringssl-review.googlesource.com/5872
Reviewed-by: Adam Langley <agl@google.com>
2015-09-14 23:29:18 +00:00
..
pqueue Fix some malloc test crashs. 2015-05-21 18:00:10 +00:00
test Run go fmt over runner. 2015-09-14 22:26:06 +00:00
CMakeLists.txt Fold ssl_algs.c into ssl_lib.c. 2015-09-09 01:05:25 +00:00
custom_extensions.c Fix NULL dereference in the case of an unexpected extension from a server. 2015-08-07 18:21:20 +00:00
d1_both.c Tidy up dtls1_hm_fragment_new and fix (unreachable) memory leak. 2015-09-14 22:25:17 +00:00
d1_clnt.c Wait for CertificateStatus message to verify certificate. 2015-09-08 19:04:43 +00:00
d1_lib.c Restore the NULL-SHA ciphersuite. (Alas.) 2015-09-11 22:18:08 +00:00
d1_meth.c Remove signature algorithm configuration hooks and SSL_ctrl. 2015-08-18 22:13:20 +00:00
d1_pkt.c Don't support bidirectional shutdown over DTLS. 2015-08-31 19:08:06 +00:00
d1_srtp.c Convert the SRTP extension to the new system 2015-07-21 21:44:22 +00:00
d1_srvr.c Tidy up the ssl3_send_server_key_exchange slightly. 2015-08-28 22:53:43 +00:00
dtls_record.c Reject empty records of unexpected type. 2015-08-28 22:03:00 +00:00
internal.h Restore the NULL-SHA ciphersuite. (Alas.) 2015-09-11 22:18:08 +00:00
s3_both.c Factor out the buffering and low-level record code. 2015-08-28 22:01:02 +00:00
s3_clnt.c Wait for CertificateStatus message to verify certificate. 2015-09-08 19:04:43 +00:00
s3_enc.c Simplify handshake hash handling. 2015-08-07 01:47:21 +00:00
s3_lib.c Add cipher suite settings for TLS ≥ 1.0. 2015-09-03 22:44:36 +00:00
s3_meth.c Remove signature algorithm configuration hooks and SSL_ctrl. 2015-08-18 22:13:20 +00:00
s3_pkt.c Don't confuse TLS bidirectional shutdown on record type zero. 2015-08-31 19:08:24 +00:00
s3_srvr.c Tidy up the ssl3_send_server_key_exchange slightly. 2015-08-28 22:53:43 +00:00
ssl_aead_ctx.c Fold away SSL_CIPHER_ALGORITHM2_VARIABLE_NONCE_INCLUDED_IN_RECORD. 2015-08-07 00:57:37 +00:00
ssl_asn1.c Remove the last of SESS_CERT. 2015-08-28 22:45:59 +00:00
ssl_buffer.c Fix buffer size computation. 2015-09-01 20:18:21 +00:00
ssl_cert.c Make SSL_get_client_CA_list slightly more OpenSSL-compatible. 2015-09-11 22:30:55 +00:00
ssl_cipher.c Restore the NULL-SHA ciphersuite. (Alas.) 2015-09-11 22:18:08 +00:00
ssl_file.c Toss file-related convenience bits of ssl/ into a corner. 2015-09-08 23:34:40 +00:00
ssl_lib.c Document a bunch of core functions in ssl.h. 2015-09-14 23:29:18 +00:00
ssl_rsa.c Toss file-related convenience bits of ssl/ into a corner. 2015-09-08 23:34:40 +00:00
ssl_sess.c Toss file-related convenience bits of ssl/ into a corner. 2015-09-08 23:34:40 +00:00
ssl_stat.c Factor out the buffering and low-level record code. 2015-08-28 22:01:02 +00:00
ssl_test.cc Make SSL_get_client_CA_list slightly more OpenSSL-compatible. 2015-09-11 22:30:55 +00:00
ssl_txt.c Remove the func parameter to OPENSSL_PUT_ERROR. 2015-07-16 02:02:37 +00:00
t1_enc.c Restore the NULL-SHA ciphersuite. (Alas.) 2015-09-11 22:18:08 +00:00
t1_lib.c Add server-side support for Signed Certificate Timestamps. 2015-09-11 21:52:26 +00:00
tls_record.c Fix MSVC build. 2015-08-28 22:27:33 +00:00