Lines Matching refs:L
17 L<OSSL_QUIC_client_method(3)> or L<OSSL_QUIC_client_thread_method(3)> with
18 L<SSL_CTX_new(3)>.
23 stream associated with it. Calls to L<SSL_read(3)> and
24 L<SSL_write(3)> on the QUIC connection SSL object read and write from that
26 perspective depends on whether L<SSL_read(3)> or L<SSL_write(3)> is called
71 connection SSL object; L<SSL_read(3)> and L<SSL_write(3)> calls to the QUIC
80 mode, if a client application calls L<SSL_read(3)> first before any call to
81 L<SSL_write(3)> on the connection, it is assumed that the application protocol
82 is using a server-initiated stream, and the L<SSL_read(3)> call will not
85 application calls L<SSL_write(3)> before any call to L<SSL_read(3)> on the
94 L<SSL_new_stream(3)> and L<SSL_accept_stream(3)>; note that the default incoming
95 stream policy will need to be changed using L<SSL_set_incoming_stream_policy(3)>
96 in order to use L<SSL_accept_stream(3)> in this case. However, applications
100 Calling L<SSL_new_stream(3)> or L<SSL_accept_stream(3)> before a default stream
108 and attempts to call L<SSL_read(3)> and L<SSL_write(3)> on the QUIC connection
109 SSL object fail. Instead, an application calls L<SSL_new_stream(3)> or
110 L<SSL_accept_stream(3)> to create individual stream SSL objects for sending and
111 receiving application data using L<SSL_read(3)> and L<SSL_write(3)>.
113 To use multi-stream mode, call L<SSL_set_default_stream_mode(3)> with an
121 such as L<SSL_write(3)> or L<SSL_get_stream_id(3)> will fail.
125 Most SSL APIs, such as L<SSL_read(3)> and L<SSL_write(3)>, function as they do
133 Since QUIC uses UDP, L<SSL_set_bio(3)>, L<SSL_set0_rbio(3)> and
134 L<SSL_set0_wbio(3)> function as before, but must now receive a BIO with datagram
142 L<BIO_s_datagram(3)>, recommended for most applications, replaces
143 L<BIO_s_socket(3)> and provides a UDP socket.
147 L<BIO_s_dgram_pair(3)> provides BIO pair-like functionality but with datagram
153 L<BIO_s_dgram_mem(3)> provides a simple memory BIO-like interface but with
154 datagram semantics. Unlike L<BIO_s_dgram_pair(3)>, it is unidirectional.
159 L<BIO_sendmmsg(3)> and L<BIO_recvmmsg(3)> APIs must be supported.
165 L<SSL_set_fd(3)>, L<SSL_set_rfd(3)> and L<SSL_set_wfd(3)> traditionally
166 instantiate a L<BIO_s_socket(3)>. For QUIC, these functions instead instantiate
167 a L<BIO_s_datagram(3)>. This is equivalent to instantiating a
168 L<BIO_s_datagram(3)> and using L<SSL_set0_rbio(3)> and L<SSL_set0_wbio(3)>.
172 Traditionally, whether the application-level I/O APIs (such as L<SSL_read(3)>
173 and L<SSL_write(3)> operated in a blocking fashion was directly correlated with
176 application-level blocking mode using L<SSL_set_blocking_mode(3)>. See
177 L<SSL_set_blocking_mode(3)> for details.
183 I/O functions such as L<SSL_read(3)> and L<SSL_write(3)>, but the underlying
184 network BIO provided to QUIC (such as a L<BIO_s_datagram(3)>) must be configured
186 L<SSL_set_blocking_mode(3)>.
190 L<BIO_new_ssl_connect(3)> has been changed to automatically use a
191 L<BIO_s_datagram(3)> when used with QUIC, therefore applications which use this
196 L<BIO_new_buffer_ssl_connect(3)> cannot be used with QUIC and applications must
197 change to use L<BIO_new_ssl_connect(3)> instead.
201 L<SSL_shutdown(3)> has significant changes in relation to how QUIC connections
206 is available for such applications. For details, see L<SSL_shutdown(3)>.
210 L<SSL_want(3)>, L<SSL_want_read(3)> and L<SSL_want_write(3)> no longer reflect
221 incoming network datagrams, use the new function L<SSL_net_read_desired(3)>;
224 L<SSL_net_write_desired(3)>. Only applications which wish to manage their own event
232 L<SSL_set_alpn_protos(3)>.
237 B<SSL_METHOD> used, rather than by calls to L<SSL_set_connect_state(3)> or
238 L<SSL_set_accept_state(3)>. It is not necessary to call either of
239 L<SSL_set_connect_state(3)> or L<SSL_set_accept_state(3)> before connecting, but
245 The L<SSL_set_min_proto_version(3)> and L<SSL_set_max_proto_version(3)> APIs are
265 Record Padding and Fragmentation (L<SSL_set_block_padding(3)>, etc.)
269 L<SSL_stateless(3)> support
312 Readahead (L<SSL_set_read_ahead(3)>, etc.)
327 An application wishing to use QUIC must use L<OSSL_QUIC_client_method(3)> or
328 L<OSSL_QUIC_client_thread_method(3)> as its SSL method. For more information
340 Your application uses L<BIO_s_socket(3)> to construct a BIO which is passed to
343 Changes needed: Change your application to use L<BIO_s_datagram(3)> instead when
345 not need to use L<SSL_set1_initial_peer_addr(3)> to set the initial peer
350 Your application uses L<BIO_new_ssl_connect(3)> to
360 L<BIO_f_buffer(3)>, for example using L<BIO_push(3)>.
362 Changes needed: Disable the usage of L<BIO_f_buffer(3)> when using QUIC. Usage
373 L<BIO_s_dgram_pair(3)> instead, which has the necessary datagram semantics. You
375 and to use datagram semantics when interacting with the L<BIO_s_dgram_pair(3)>
384 semantics. L<BIO_sendmmsg(3)> and L<BIO_recvmmsg(3)> must be implemented. These
386 L<BIO_get_rpoll_descriptor(3)> and L<BIO_get_wpoll_descriptor(3)> methods if
400 L<SSL_set_blocking_mode(3)> API. The default mode is blocking. If an application
402 it must add a call to L<SSL_set_blocking_mode(3)> to disable blocking mode.
407 that it calls an I/O function on the SSL object (for example, L<SSL_read(3)> or
408 L<SSL_write(3)>), or the new function L<SSL_handle_events(3)>, regularly. If the
413 Most applications will service the SSL object by calling L<SSL_read(3)> or
414 L<SSL_write(3)> regularly. If an application does not do this, it should ensure
415 that L<SSL_handle_events(3)> is called regularly.
417 L<SSL_get_event_timeout(3)> can be used to determine when
418 L<SSL_handle_events(3)> must next be called.
421 (such as L<BIO_s_datagram(3)>), the application can use
422 L<SSL_get_rpoll_descriptor(3)>, L<SSL_get_wpoll_descriptor(3)> to obtain
423 resources which can be used to determine when L<SSL_handle_events(3)> should be
432 Ensure that your usage of L<SSL_want(3)>, L<SSL_want_read(3)> and
433 L<SSL_want_write(3)> reflects the API changes described in B<CHANGES TO EXISTING
440 Evaluate your application's use of L<SSL_shutdown(3)> in light of the changes
443 L<SSL_shutdown_ex(3)> API instead. See B<QUIC-SPECIFIC APIS> for details.
457 level (configured using L<SSL_set_blocking_mode(3)>).
465 a network socket (e.g. via L<BIO_s_datagram(3)>) or whether it intends to buffer
466 transmitted and received datagrams via a L<BIO_s_dgram_pair(3)> or custom BIO.
479 L<https://github.com/openssl/openssl/tree/master/doc/designs/ddd>.
483 QUIC-specific functionality. For example, L<SSL_stream_conclude(3)> can be used
484 to indicate the end of the sending part of a stream, and L<SSL_shutdown_ex(3)>
489 by calling L<SSL_set_default_stream_mode(3)>; see the MODES OF OPERATION section
501 =item L<SSL_get_event_timeout(3)>
504 L<SSL_handle_events(3)> (or another I/O function such as L<SSL_read(3)> or
505 L<SSL_write(3)>), if ever.
507 This can also be used with DTLS and supersedes L<DTLSv1_get_timeout(3)> for new
510 =item L<SSL_handle_events(3)>
516 functions on an SSL object, such as L<SSL_read(3)> and L<SSL_write(3)>
520 This can also be used with DTLS and supersedes L<DTLSv1_handle_timeout(3)> for
529 =item L<SSL_set_blocking_mode(3)>, L<SSL_get_blocking_mode(3)>
532 determines whether calls to functions such as L<SSL_read(3)> and L<SSL_write(3)>
535 =item L<SSL_get_rpoll_descriptor(3)>, L<SSL_get_wpoll_descriptor(3)>
540 supports polling, L<SSL_get_rpoll_descriptor(3)> outputs an OS resource which
542 a call to L<SSL_handle_events(3)>. L<SSL_get_wpoll_descriptor(3)> works in an
546 L<SSL_net_read_desired(3)> and L<SSL_net_write_desired(3)> return 1, respectively.
548 =item L<SSL_net_read_desired(3)>, L<SSL_net_write_desired(3)>
551 conjunction with L<SSL_get_rpoll_descriptor(3)> and
552 L<SSL_get_wpoll_descriptor(3)> respectively. They determine whether the
555 =item L<SSL_set1_initial_peer_addr(3)>
560 autodetected in some cases. See L<SSL_set1_initial_peer_addr(3)> for details.
562 =item L<SSL_shutdown_ex(3)>
564 This augments L<SSL_shutdown(3)> by allowing an application error code to be
568 =item L<SSL_stream_conclude(3)>
574 =item L<SSL_stream_reset(3)>
579 =item L<SSL_get_stream_write_state(3)> and L<SSL_get_stream_read_state(3)>
584 =item L<SSL_get_stream_write_error_code(3)> and L<SSL_get_stream_read_error_code(3)>
590 =item L<SSL_get_conn_close_info(3)>
595 =item L<SSL_get0_connection(3)>
599 =item L<SSL_is_connection(3)>
603 =item L<SSL_get_stream_type(3)>
608 =item L<SSL_get_stream_id(3)>
613 =item L<SSL_new_stream(3)>
618 =item L<SSL_accept_stream(3)>
624 =item L<SSL_get_accept_stream_queue_len(3)>
628 =item L<SSL_set_incoming_stream_policy(3)>
632 or allow them to be handled using L<SSL_accept_stream(3)>.
634 =item L<SSL_set_default_stream_mode(3)>
646 =item L<BIO_s_dgram_pair(3)>
651 =item L<BIO_get_rpoll_descriptor(3)>, L<BIO_get_wpoll_descriptor(3)>
654 is used to implement the corresponding SSL APIs L<SSL_get_rpoll_descriptor(3)>
655 and L<SSL_get_wpoll_descriptor(3)>.
657 =item L<BIO_sendmmsg(3)>, L<BIO_recvmmsg(3)>
660 semantics. It is implemented by L<BIO_s_datagram(3)> and L<BIO_s_dgram_pair(3)>.
663 =item L<BIO_dgram_set_no_trunc(3)>, L<BIO_dgram_get_no_trunc(3)>
665 By default, L<BIO_s_dgram_pair(3)> has semantics comparable to those of Berkeley
670 =item L<BIO_dgram_set_caps(3)>, L<BIO_dgram_get_caps(3)>
673 L<BIO_s_dgram_pair(3)> to indicate its capabilities to the other end of a
674 L<BIO_s_dgram_pair(3)>. In particular, this allows an application to inform the
679 =item L<BIO_dgram_get_local_addr_cap(3)>, L<BIO_dgram_set_local_addr_enable(3)>,
680 L<BIO_dgram_get_local_addr_enable(3)>
688 =item L<BIO_err_is_non_fatal(3)>
690 This is used to determine if an error while calling L<BIO_sendmmsg(3)> or
691 L<BIO_recvmmsg(3)> is ephemeral in nature, such as "would block" errors.
698 L<OSSL_QUIC_client_thread_method(3)>. In this mode, a background thread is
701 I/O function such as L<SSL_read(3)> or L<SSL_write(3)> is called by the
726 L<BIO_get_rpoll_descriptor(3)> for details. Broadly, a B<BIO_POLL_DESCRIPTOR> is
741 the SSL object using L<SSL_set0_rbio(3)> and L<SSL_set0_wbio(3)>. This could be
742 a BIO abstracting a network socket such as L<BIO_s_datagram(3)>, or a BIO
743 abstracting some kind of memory buffer such as L<BIO_s_dgram_pair(3)>. Use of a
749 L<SSL_set_blocking_mode(3)>.
754 using L<SSL_set1_initial_peer_addr(3)>, and trigger the connection process by
755 calling L<SSL_connect(3)>.
760 a L<BIO_s_datagram(3)>, or a custom BIO which implements
761 L<BIO_get_rpoll_descriptor(3)> and L<BIO_get_wpoll_descriptor(3)>), it should
768 The application should call L<SSL_get_rpoll_descriptor(3)> and
769 L<SSL_get_wpoll_descriptor(3)> to identify OS resources which can be used for
774 It should call L<SSL_net_read_desired(3)> and L<SSL_net_write_desired(3)> to determine
777 L<SSL_get_event_timeout(3)> to determine if any timeout event will become
788 The poll descriptor returned by L<SSL_get_rpoll_descriptor(3)> becomes readable
789 (if L<SSL_net_read_desired(3)> returned 1);
793 The poll descriptor returned by L<SSL_get_wpoll_descriptor(3)> becomes writable
794 (if L<SSL_net_write_desired(3)> returned 1);
798 The timeout returned by L<SSL_get_event_timeout(3)> (if any) expires.
802 Once any of these events occurs, L<SSL_handle_events(3)> should be called.
809 the case of L<BIO_s_dgram_pair(3)>), the application is responsible for managing
810 and synchronising network I/O. It should call L<SSL_handle_events(3)> after it
811 writes data to a L<BIO_s_dgram_pair(3)> or otherwise takes action so that the
812 QUIC implementation can read new datagrams via a call to L<BIO_recvmmsg(3)> on
814 call to L<BIO_sendmmsg(3)> and the application is responsible for ensuring these
817 The application must call L<SSL_get_event_timeout(3)> after every call to
818 L<SSL_handle_events(3)> (or another I/O function on the SSL object), and ensure
819 that a call to L<SSL_handle_events(3)> is performed after the specified timeout
826 L<SSL_handle_events(3)>, L<SSL_get_event_timeout(3)>,
827 L<SSL_net_read_desired(3)>, L<SSL_net_write_desired(3)>,
828 L<SSL_get_rpoll_descriptor(3)>, L<SSL_get_wpoll_descriptor(3)>,
829 L<SSL_set_blocking_mode(3)>, L<SSL_shutdown_ex(3)>,
830 L<SSL_set1_initial_peer_addr(3)>, L<SSL_stream_conclude(3)>,
831 L<SSL_stream_reset(3)>, L<SSL_get_stream_read_state(3)>,
832 L<SSL_get_stream_read_error_code(3)>, L<SSL_get_conn_close_info(3)>,
833 L<SSL_get0_connection(3)>, L<SSL_get_stream_type(3)>, L<SSL_get_stream_id(3)>,
834 L<SSL_new_stream(3)>, L<SSL_accept_stream(3)>,
835 L<SSL_set_incoming_stream_policy(3)>, L<SSL_set_default_stream_mode(3)>
844 L<https://www.openssl.org/source/license.html>.