@@ -63,22 +63,25 @@ SSL_quic_max_handshake_flight_len() returns the maximum number of bytes
6363that may be received at the given encryption level. This function should be
6464used to limit buffering in the QUIC implementation.
6565
66- See https://tools.ietf.org/html/draft-ietf-quic-transport-16 #section-4. 4.
66+ See https://tools.ietf.org/html/draft-ietf-quic-transport-27 #section-4.
6767
6868SSL_quic_read_level() returns the current read encryption level.
6969
7070SSL_quic_write_level() returns the current write encryption level.
7171
72- SSL_provide_quic_data() provides data from QUIC at a particular encryption
73- level B<level>. It is an error to call this function outside of the handshake
74- or with an encryption level other than the current read level. It returns one
75- on success and zero on error.
72+ SSL_provide_quic_data() is used to provide data from QUIC CRYPTO frames to the
73+ state machine, at a particular encryption level B<level>. It is an error to
74+ call this function outside of the handshake or with an encryption level other
75+ than the current read level. The application must buffer and consolidate any
76+ frames with less than four bytes of content. It returns one on success and
77+ zero on error.
7678
7779SSL_process_quic_post_handshake() processes any data that QUIC has provided
7880after the handshake has completed. This includes NewSessionTicket messages
7981sent by the server.
8082
81- SSL_is_quic() indicates whether a connection uses QUIC.
83+ SSL_is_quic() indicates whether a connection uses QUIC. A given B<SSL>
84+ or B<SSL_CTX> can only be used with QUIC or TLS, but not both.
8285
8386=head1 NOTES
8487
@@ -89,11 +92,11 @@ functions allow a QUIC implementation to serve as the underlying transport as
8992described in draft-ietf-quic-tls.
9093
9194When configured for QUIC, SSL_do_handshake() will drive the handshake as
92- before, but it will not use the configured B<BIO>. It will call functions on
93- B<SSL_QUIC_METHOD> to configure secrets and send data. If data is needed from
94- the peer, it will return B<SSL_ERROR_WANT_READ>. When received, the caller
95- should call SSL_provide_quic_data() and then SSL_do_handshake() to continue
96- the handshake. After the handshake is complete, the caller should call
95+ before, but it will not use the configured B<BIO>. It will call functions from
96+ the configured B<SSL_QUIC_METHOD> to configure secrets and send data. If data
97+ is needed from the peer, it will return B<SSL_ERROR_WANT_READ>. When received,
98+ the caller should call SSL_provide_quic_data() and then SSL_do_handshake() to
99+ continue the handshake. After the handshake is complete, the caller should call
97100SSL_provide_quic_data() for any post-handshake data, followed by
98101SSL_process_quic_post_handshake() to process it. It is an error to call
99102SSL_read()/SSL_read_ex() and SSL_write()/SSL_write_ex() in QUIC.
@@ -105,19 +108,20 @@ pass the active write level to add_handshake_data() when writing data. Callers
105108can use SSL_quic_write_level() to query the active write level when
106109generating their own errors.
107110
108- See https://tools.ietf.org/html/draft-ietf-quic-tls-15 #section-4.1 for more
111+ See https://tools.ietf.org/html/draft-ietf-quic-tls-27 #section-4.1 for more
109112details.
110113
111114To avoid DoS attacks, the QUIC implementation must limit the amount of data
112115being queued up. The implementation can call
113116SSL_quic_max_handshake_flight_len() to get the maximum buffer length at each
114117encryption level.
115118
116- draft-ietf-quic-tls defines a new TLS extension quic_transport_parameters
119+ draft-ietf-quic-tls defines a new TLS extension " quic_transport_parameters"
117120used by QUIC for each endpoint to unilaterally declare its supported
118- transport parameters. draft-ietf-quic-transport (section 7.4) defines the
119- contents of that extension (a TransportParameters struct) and describes how
120- to handle it and its semantic meaning.
121+ transport parameters. The contents of the extension are specified in
122+ https://tools.ietf.org/html/draft-ietf-quic-transport-27#section-18 (as
123+ a sequence of tag/length/value parameters) along with the interpretation of the
124+ various parameters and the rules for their processing.
121125
122126OpenSSL handles this extension as an opaque byte string. The caller is
123127responsible for serializing and parsing it.
@@ -205,10 +209,11 @@ SSL_process_quic_post_handshake()
205209return 1 on success, and 0 on error.
206210
207211SSL_quic_read_level() and SSL_quic_write_level() return the current
208- encryption level as B<OSSL_ENCRYPTION_LEVEL> (B<enum ssl_encryption_level_t>).
212+ encryption level as an B<OSSL_ENCRYPTION_LEVEL>
213+ (B<enum ssl_encryption_level_t>).
209214
210- SSL_quic_max_handshake_flight_len() returns the maximum length of a flight
211- for a given encryption level.
215+ SSL_quic_max_handshake_flight_len() returns the maximum length in bytes of a
216+ flight for a given encryption level.
212217
213218SSL_is_quic() returns 1 if QUIC is being used, 0 if not.
214219
0 commit comments