target = "https://tools.ietf.org/rfc/rfc8446#appendix-D.3"

# D.3.  0-RTT Backward Compatibility
#
# 0-RTT data is not compatible with older servers.  An older server
# will respond to the ClientHello with an older ServerHello, but it
# will not correctly skip the 0-RTT data and will fail to complete the
# handshake.  This can cause issues when a client attempts to use
# 0-RTT, particularly against multi-server deployments.  For example, a
# deployment could deploy TLS 1.3 gradually with some servers
# implementing TLS 1.3 and some implementing TLS 1.2, or a TLS 1.3
# deployment could be downgraded to TLS 1.2.
# 
# A client that attempts to send 0-RTT data MUST fail a connection if
# it receives a ServerHello with TLS 1.2 or older.  It can then retry
# the connection with 0-RTT disabled.  To avoid a downgrade attack, the
# client SHOULD NOT disable TLS 1.3, only 0-RTT.
# 
# To avoid this error condition, multi-server deployments SHOULD ensure
# a uniform and stable deployment of TLS 1.3 without 0-RTT prior to
# enabling 0-RTT.

[[spec]]
level = "MUST"
quote = '''
A client that attempts to send 0-RTT data MUST fail a connection if
it receives a ServerHello with TLS 1.2 or older.
'''

[[spec]]
level = "SHOULD"
quote = '''
To avoid a downgrade attack, the
client SHOULD NOT disable TLS 1.3, only 0-RTT.
'''

[[spec]]
level = "SHOULD"
quote = '''
To avoid this error condition, multi-server deployments SHOULD ensure
a uniform and stable deployment of TLS 1.3 without 0-RTT prior to
enabling 0-RTT.
'''

