Add OSSL_QUIC methods to headers and manual pages

Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Paul Dale <pauli@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/18307)
This commit is contained in:
Tomas Mraz
2022-06-03 12:07:17 +10:00
committed by Pauli
parent 30b013291a
commit 770ea54b58
6 changed files with 110 additions and 0 deletions
+1
View File
@@ -1257,6 +1257,7 @@ errors:
include/openssl/tls1.h
include/openssl/dtls1.h
include/openssl/srtp.h
include/openssl/quic.h
include/openssl/sslerr_legacy.h );
my @cryptoheaders_tmpl =
qw( include/internal/dso.h
+6
View File
@@ -1675,6 +1675,10 @@ DEPEND[html/man3/OSSL_PROVIDER.html]=man3/OSSL_PROVIDER.pod
GENERATE[html/man3/OSSL_PROVIDER.html]=man3/OSSL_PROVIDER.pod
DEPEND[man/man3/OSSL_PROVIDER.3]=man3/OSSL_PROVIDER.pod
GENERATE[man/man3/OSSL_PROVIDER.3]=man3/OSSL_PROVIDER.pod
DEPEND[html/man3/OSSL_QUIC_client_method.html]=man3/OSSL_QUIC_client_method.pod
GENERATE[html/man3/OSSL_QUIC_client_method.html]=man3/OSSL_QUIC_client_method.pod
DEPEND[man/man3/OSSL_QUIC_client_method.3]=man3/OSSL_QUIC_client_method.pod
GENERATE[man/man3/OSSL_QUIC_client_method.3]=man3/OSSL_QUIC_client_method.pod
DEPEND[html/man3/OSSL_SELF_TEST_new.html]=man3/OSSL_SELF_TEST_new.pod
GENERATE[html/man3/OSSL_SELF_TEST_new.html]=man3/OSSL_SELF_TEST_new.pod
DEPEND[man/man3/OSSL_SELF_TEST_new.3]=man3/OSSL_SELF_TEST_new.pod
@@ -3154,6 +3158,7 @@ html/man3/OSSL_PARAM_allocate_from_text.html \
html/man3/OSSL_PARAM_dup.html \
html/man3/OSSL_PARAM_int.html \
html/man3/OSSL_PROVIDER.html \
html/man3/OSSL_QUIC_client_method.html \
html/man3/OSSL_SELF_TEST_new.html \
html/man3/OSSL_SELF_TEST_set_callback.html \
html/man3/OSSL_STORE_INFO.html \
@@ -3750,6 +3755,7 @@ man/man3/OSSL_PARAM_allocate_from_text.3 \
man/man3/OSSL_PARAM_dup.3 \
man/man3/OSSL_PARAM_int.3 \
man/man3/OSSL_PROVIDER.3 \
man/man3/OSSL_QUIC_client_method.3 \
man/man3/OSSL_SELF_TEST_new.3 \
man/man3/OSSL_SELF_TEST_set_callback.3 \
man/man3/OSSL_STORE_INFO.3 \
+56
View File
@@ -0,0 +1,56 @@
=pod
=head1 NAME
OSSL_QUIC_client_method, OSSL_QUIC_client_thread_method,
OSSL_QUIC_server_method
- Provide SSL_METHOD objects for QUIC enabled functions
=head1 SYNOPSIS
#include <openssl/quic.h>
const SSL_METHOD *OSSL_QUIC_client_method(void);
const SSL_METHOD *OSSL_QUIC_client_thread_method(void);
const SSL_METHOD *OSSL_QUIC_server_method(void);
=head1 DESCRIPTION
The OSSL_QUIC_client_method(), OSSL_QUIC_client_thread_method(), and
OSSL_QUIC_server_method() functions provide methods for the
L<SSL_CTX_new_ex(3)> function to provide QUIC protocol support.
The OSSL_QUIC_client_thread_method() uses threads to allow for a blocking
mode of operation and avoid the need to return control to the
OpenSSL library for processing time based events.
The OSSL_QUIC_client_method() does not use threads and depends on
nonblocking mode of operation and the application periodically calling SSL
functions.
The OSSL_QUIC_server_method() is currently experimental and unsupported.
It is provided for testing purposes. It does not provide a QUIC server
implementation compliant with the QUIC specification.
=head1 RETURN VALUES
These functions return pointers to the constant method objects.
=head1 SEE ALSO
L<SSL_CTX_new_ex(3)>
=head1 HISTORY
OSSL_QUIC_client_method(), OSSL_QUIC_client_thread_method(), and
OSSL_QUIC_server_method() were added in OpenSSL 3.1.
=head1 COPYRIGHT
Copyright 2022 The OpenSSL Project Authors. All Rights Reserved.
Licensed under the Apache License 2.0 (the "License"). You may not use
this file except in compliance with the License. You can obtain a copy
in the file LICENSE in the source distribution or at
L<https://www.openssl.org/source/license.html>.
=cut
+43
View File
@@ -0,0 +1,43 @@
/*
* Copyright 2022 The OpenSSL Project Authors. All Rights Reserved.
*
* Licensed under the Apache License 2.0 (the "License"). You may not use
* this file except in compliance with the License. You can obtain a copy
* in the file LICENSE in the source distribution or at
* https://www.openssl.org/source/license.html
*/
#ifndef OPENSSL_QUIC_H
# define OPENSSL_QUIC_H
# pragma once
# include <openssl/macros.h>
# include <openssl/ssl.h>
# ifndef OPENSSL_NO_QUIC
# ifdef __cplusplus
extern "C" {
# endif
/*
* Method used for non-thread-assisted QUIC client operation.
*/
__owur const SSL_METHOD *OSSL_QUIC_client_method(void);
/*
* Method used for thread-assisted QUIC client operation.
*/
__owur const SSL_METHOD *OSSL_QUIC_client_thread_method(void);
/*
* This method does not implement full server operation,
* is used for testing, and is subject to change in later
* releases.
*/
__owur const SSL_METHOD *OSSL_QUIC_server_method(void);
# ifdef __cplusplus
}
# endif
# endif /* OPENSSL_NO_QUIC */
#endif
+1
View File
@@ -945,6 +945,7 @@ uint32_t SSL_get_recv_max_early_data(const SSL *s);
# include <openssl/tls1.h> /* This is mostly sslv3 with a few tweaks */
# include <openssl/dtls1.h> /* Datagram TLS */
# include <openssl/srtp.h> /* Support for the use_srtp extension */
# include <openssl/quic.h>
#ifdef __cplusplus
extern "C" {
+3
View File
@@ -521,3 +521,6 @@ SSL_set0_tmp_dh_pkey 521 3_0_0 EXIST::FUNCTION:
SSL_CTX_set0_tmp_dh_pkey 522 3_0_0 EXIST::FUNCTION:
SSL_group_to_name 523 3_0_0 EXIST::FUNCTION:
SSL_client_hello_get_extension_order ? 3_1_0 EXIST::FUNCTION:
OSSL_QUIC_client_method ? 3_1_0 EXIST::FUNCTION:QUIC
OSSL_QUIC_client_thread_method ? 3_1_0 EXIST::FUNCTION:QUIC
OSSL_QUIC_server_method ? 3_1_0 EXIST::FUNCTION:QUIC