boringssl/ssl
David Benjamin c67a3ae6ba Drop retransmits in DTLS tests.
BoringSSL currently retransmits non-deterministically on an internal timer
(rather than one supplied externally), so the tests currently fail flakily
depending on timing. Valgrind is a common source for this. We still assume an
in-order and reliable channel, but drop retransmits silently:

- Handshake messages may arrive with old sequence numbers.

- Retransmitted CCS records arrive from the previous epoch.

- We may receive a retransmitted Finished after we believe the handshake has
  completed. (Aside: even in a real implementation, only Finished is possible
  here. Even with out-of-order delivery, retransmitted or reordered messages
  earlier in the handshake come in under a different epoch.)

Note that because DTLS renego and a Finished retransmit are ambiguous at the
record layer[*], this precludes us writing tests for DTLS renego. But DTLS
renego should get removed anyway. As BoringSSL currently implements renego,
this ambiguity is also a source of complexity in the real implementation. (See
the SSL3_MT_FINISHED check in dtls1_read_bytes.)

[*] As a further fun aside, it's also complex if dispatching renego vs Finished
after handshake message reassembly. The spec doesn't directly say the sequence
number is reset across renegos, but it says "The first message each side
transmits in /each/ handshake always has message_seq = 0". This means that such
an implementation needs the handshake message reassembly logic be aware that a
Finished fragment with high sequence number is NOT an out-of-order fragment for
the next handshake.

Change-Id: I35d13560f82bcb5eeda62f4de1571d28c818cc36
Reviewed-on: https://boringssl-review.googlesource.com/2770
Reviewed-by: Adam Langley <agl@google.com>
2015-01-14 21:13:05 +00:00
..
pqueue Test insertion of duplicates in pqueue_test. 2014-11-06 01:46:57 +00:00
test Drop retransmits in DTLS tests. 2015-01-14 21:13:05 +00:00
CMakeLists.txt Remove dead code from EVP_CIPHER codepaths. 2015-01-14 21:05:41 +00:00
d1_both.c Support EVP_AEAD in DTLS. 2015-01-14 21:03:40 +00:00
d1_clnt.c Reformatting of several DTLS source files. 2014-12-13 16:28:18 -08:00
d1_lib.c Remove dead code from EVP_CIPHER codepaths. 2015-01-14 21:05:41 +00:00
d1_meth.c Implement SSL_clear with ssl_new and ssl_free. 2015-01-12 22:35:58 +00:00
d1_pkt.c Remove dead code from EVP_CIPHER codepaths. 2015-01-14 21:05:41 +00:00
d1_srtp.c Reformat d1_{srtp|srvr}.c and s3_both.c 2014-12-15 18:42:07 -08:00
d1_srvr.c Support EVP_AEAD in DTLS. 2015-01-14 21:03:40 +00:00
s3_both.c Touch up ssl3_get_message. 2014-12-17 00:16:23 +00:00
s3_clnt.c Remove SSL_SESSION::cipher_id. 2015-01-14 21:10:55 +00:00
s3_enc.c Implement SSLv3 ciphers with stateful AEADs. 2015-01-14 20:55:58 +00:00
s3_lib.c Remove dead code from EVP_CIPHER codepaths. 2015-01-14 21:05:41 +00:00
s3_meth.c Implement SSL_clear with ssl_new and ssl_free. 2015-01-12 22:35:58 +00:00
s3_pkt.c Remove dead code from EVP_CIPHER codepaths. 2015-01-14 21:05:41 +00:00
s3_srvr.c Reformat the rest of ssl/. 2014-12-18 17:43:03 -08:00
ssl_algs.c Reformat the rest of ssl/. 2014-12-18 17:43:03 -08:00
ssl_asn1.c Remove SSL_SESSION::cipher_id. 2015-01-14 21:10:55 +00:00
ssl_cert.c Add (void) to some macros to satisfy compiler. 2015-01-12 23:46:03 +00:00
ssl_ciph.c Remove dead code from EVP_CIPHER codepaths. 2015-01-14 21:05:41 +00:00
ssl_error.c Add the PRF to SSL3_ENC_METHOD. 2015-01-14 20:43:26 +00:00
ssl_lib.c Remove dead code from EVP_CIPHER codepaths. 2015-01-14 21:05:41 +00:00
ssl_locl.h Remove dead code from EVP_CIPHER codepaths. 2015-01-14 21:05:41 +00:00
ssl_rsa.c Reformat the rest of ssl/. 2014-12-18 17:43:03 -08:00
ssl_sess.c Add (void) to some macros to satisfy compiler. 2015-01-12 23:46:03 +00:00
ssl_stat.c Reformat the rest of ssl/. 2014-12-18 17:43:03 -08:00
ssl_test.c Merge SSLv23_method and DTLS_ANY_VERSION. 2014-12-13 15:22:21 -08:00
ssl_txt.c Remove SSL_SESSION::cipher_id. 2015-01-14 21:10:55 +00:00
t1_enc.c Remove dead code from EVP_CIPHER codepaths. 2015-01-14 21:05:41 +00:00
t1_lib.c Remove dead code from EVP_CIPHER codepaths. 2015-01-14 21:05:41 +00:00
t1_reneg.c Reformat the rest of ssl/. 2014-12-18 17:43:03 -08:00