boringssl/ssl
David Benjamin 2c66e079ab Don't send the access_denied alert innappropriately.
access_denied is only used to indicate client cert errors and Chrome
maps it to ERR_SSL_BAD_CLIENT_AUTH_CERT accordingly:

   access_denied
      A valid certificate was received, but when access control was
      applied, the sender decided not to proceed with negotiation.  This
      message is always fatal.

We don't appear to be the cause of Chrome's recent
ERR_SSL_BAD_CLIENT_AUTH_CERT spike, but we should send these correctly
nonetheless.

If the early callback fails, handshake_failure seems the most
appropriate ("I was unable to find suitable parameters"). There isn't
really an alert that matches DoS, but internal_error seems okay?

   internal_error
      An internal error unrelated to the peer or the correctness of the
      protocol (such as a memory allocation failure) makes it impossible
      to continue.  This message is always fatal.

There's nothing wrong, per se, with your ClientHello, but I just can't
deal with it right now. Please go away.

Change-Id: Icd1c998c09dc42daa4b309c1a4a0f136b85eb69d
Reviewed-on: https://boringssl-review.googlesource.com/11084
Commit-Queue: David Benjamin <davidben@google.com>
Commit-Queue: Adam Langley <agl@google.com>
Reviewed-by: Adam Langley <agl@google.com>
CQ-Verified: CQ bot account: commit-bot@chromium.org <commit-bot@chromium.org>
2016-09-16 20:12:09 +00:00
..
test Don't send the access_denied alert innappropriately. 2016-09-16 20:12:09 +00:00
CMakeLists.txt Add TLS 1.3 1-RTT. 2016-07-18 09:54:46 +00:00
custom_extensions.c Use C99 for size_t loops. 2016-09-12 19:44:24 +00:00
d1_both.c Use C99 for size_t loops. 2016-09-12 19:44:24 +00:00
d1_lib.c Remove RC4 from TLS for real. 2016-09-16 03:06:36 +00:00
d1_pkt.c Move post-handshake message handling out of read_app_data. 2016-07-29 21:05:49 +00:00
d1_srtp.c Make kSRTPProfiles static. 2016-05-13 14:12:22 +00:00
dtls_method.c Switch finish_handshake to release_current_message. 2016-07-28 22:59:18 +00:00
dtls_record.c Fix the alias checks in dtls_record.c. 2016-06-09 21:11:22 +00:00
handshake_client.c Revert of Determining certificate_auth and key_exchange based on SSL. 2016-09-12 22:54:08 +00:00
handshake_server.c Don't send the access_denied alert innappropriately. 2016-09-16 20:12:09 +00:00
internal.h Remove RC4 from TLS for real. 2016-09-16 03:06:36 +00:00
s3_both.c Add tests for trailing data in handshake messages. 2016-09-12 21:00:50 +00:00
s3_enc.c Splitting SSL session state. 2016-07-29 21:22:46 +00:00
s3_lib.c Use C99 for size_t loops. 2016-09-12 19:44:24 +00:00
s3_pkt.c Stop pretending to ssl_clear_bad_session. 2016-08-03 21:07:36 +00:00
ssl_aead_ctx.c Use C99 for size_t loops. 2016-09-12 19:44:24 +00:00
ssl_asn1.c Use C99 for size_t loops. 2016-09-12 19:44:24 +00:00
ssl_buffer.c Add SSL_is_dtls. 2016-08-02 20:43:58 +00:00
ssl_cert.c Use C99 for size_t loops. 2016-09-12 19:44:24 +00:00
ssl_cipher.c Remove RC4 from TLS for real. 2016-09-16 03:06:36 +00:00
ssl_ecdh.c Use C99 for size_t loops. 2016-09-12 19:44:24 +00:00
ssl_file.c Banish SSL_add_dir_cert_subjects_to_stack and OPENSSL_DIR_CTX to decrepit. 2016-04-27 18:40:25 +00:00
ssl_lib.c Remove RC4 from TLS for real. 2016-09-16 03:06:36 +00:00
ssl_rsa.c Fix a number of sigalg scope issues. 2016-08-24 00:24:34 +00:00
ssl_session.c Only allow SSL_set_session before the handshake. 2016-09-12 19:16:46 +00:00
ssl_stat.c Factor out the client_cert_cb code. 2016-07-20 09:25:52 +00:00
ssl_test.cc Remove RC4 from TLS for real. 2016-09-16 03:06:36 +00:00
t1_enc.c Splitting SSL session state. 2016-07-29 21:22:46 +00:00
t1_lib.c Revert of Determining certificate_auth and key_exchange based on SSL. 2016-09-12 22:54:08 +00:00
tls13_both.c Implement BORINGSSL_UNSAFE_FUZZER_MODE for TLS 1.3. 2016-08-19 19:11:34 +00:00
tls13_client.c Revert of Determining certificate_auth and key_exchange based on SSL. 2016-09-12 22:54:08 +00:00
tls13_enc.c const-correct a variable. 2016-09-06 18:19:37 +00:00
tls13_server.c Don't send the access_denied alert innappropriately. 2016-09-16 20:12:09 +00:00
tls_method.c Add TLS_{client,server}_method. 2016-08-05 18:59:32 +00:00
tls_record.c Use C99 for size_t loops. 2016-09-12 19:44:24 +00:00