summaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
authorNikos Mavrogiannopoulos <nmav@gnutls.org>2016-04-19 22:50:52 +0200
committerNikos Mavrogiannopoulos <nmav@gnutls.org>2016-04-19 23:07:33 +0200
commit76cf37e993184b7758dd98f150c9eb08a4d54ada (patch)
tree09665270583e325d514e4cf954620c2046e00e50 /doc
parent8de6e09f7d0f3f84e462371289023f2ce6c95553 (diff)
downloadgnutls-76cf37e993184b7758dd98f150c9eb08a4d54ada.tar.gz
doc: updated documentation on false start
Diffstat (limited to 'doc')
-rw-r--r--doc/cha-intro-tls.texi22
1 files changed, 15 insertions, 7 deletions
diff --git a/doc/cha-intro-tls.texi b/doc/cha-intro-tls.texi
index 842939a628..2c55b5675f 100644
--- a/doc/cha-intro-tls.texi
+++ b/doc/cha-intro-tls.texi
@@ -652,17 +652,25 @@ to request an early return of the @funcref{gnutls_handshake} function. After tha
return the application is expected to transfer any data to be piggybacked on the last handshake
message.
-After handshake's early termination, the application is expected to call
-@funcref{gnutls_record_recv} on any received data as soon, to ensure that handshake
-completes timely. That is, especially relevant for applications which set an explicit
-time limit for the handshake process via @funcref{gnutls_handshake_set_timeout}.
+After handshake's early termination, the application is expected to transmit
+data using @funcref{gnutls_record_send}, and call @funcref{gnutls_record_recv} on
+any received data as soon, to ensure that handshake completes timely. That is, especially
+relevant for applications which set an explicit time limit for the handshake process
+via @funcref{gnutls_handshake_set_timeout}.
Note however, that the API ensures that the early return will not happen
-if the false start requirements are not satisfied. That is on ciphersuites which are not
-whitelisted for false start (see @xcite{draft-ietf-tls-falsestart-01}), the handshake
+if the false start requirements are not satisfied. That is, on ciphersuites which are not
+whitelisted for false start or on insufficient key sizes, the handshake
process will complete properly (i.e., no early return). To verify that false start was used you
may use @funcref{gnutls_session_get_flags} and check for the @acronym{GNUTLS_SFLAGS_FALSE_START}
-flag.
+flag. For GnuTLS the false start is whitelisted for the following
+key exchange methods (see @xcite{draft-ietf-tls-falsestart-01} for rationale)
+@itemize
+@item DHE
+@item ECDHE
+@end itemize
+but only when the negotiated parameters exceed @code{GNUTLS_SEC_PARAM_HIGH}
+--see @ref{tab:key-sizes}, and when under (D)TLS 1.2 or later.
@node Application Layer Protocol Negotiation (ALPN)
@subsection Application Layer Protocol Negotiation (ALPN)