diff options
author | Hugo Landau <hlandau@openssl.org> | 2024-02-15 08:55:24 +0000 |
---|---|---|
committer | Hugo Landau <hlandau@openssl.org> | 2024-03-07 23:48:49 +0000 |
commit | 02f5ab77854647e4f34cdd340d57bb071afb997d (patch) | |
tree | f5d1415e5780d33102ed531cad6552f2a424231f /include | |
parent | 74fd6823884e27c18ec3fe7bd99b9bc02e6f31f3 (diff) | |
download | openssl-02f5ab77854647e4f34cdd340d57bb071afb997d.tar.gz |
QUIC: Make QUIC transport error codes public
Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Tim Hudson <tjh@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/23598)
Diffstat (limited to 'include')
-rw-r--r-- | include/internal/quic_error.h | 43 | ||||
-rw-r--r-- | include/openssl/quic.h | 29 |
2 files changed, 38 insertions, 34 deletions
diff --git a/include/internal/quic_error.h b/include/internal/quic_error.h index ae195a5f88..29f5e424f4 100644 --- a/include/internal/quic_error.h +++ b/include/internal/quic_error.h @@ -11,43 +11,18 @@ # define OSSL_QUIC_ERROR_H # include <openssl/ssl.h> +# include <openssl/quic.h> # ifndef OPENSSL_NO_QUIC -/* RFC 9000 Section 20.1 */ -# define QUIC_ERR_NO_ERROR 0x00 -# define QUIC_ERR_INTERNAL_ERROR 0x01 -# define QUIC_ERR_CONNECTION_REFUSED 0x02 -# define QUIC_ERR_FLOW_CONTROL_ERROR 0x03 -# define QUIC_ERR_STREAM_LIMIT_ERROR 0x04 -# define QUIC_ERR_STREAM_STATE_ERROR 0x05 -# define QUIC_ERR_FINAL_SIZE_ERROR 0x06 -# define QUIC_ERR_FRAME_ENCODING_ERROR 0x07 -# define QUIC_ERR_TRANSPORT_PARAMETER_ERROR 0x08 -# define QUIC_ERR_CONNECTION_ID_LIMIT_ERROR 0x09 -# define QUIC_ERR_PROTOCOL_VIOLATION 0x0A -# define QUIC_ERR_INVALID_TOKEN 0x0B -# define QUIC_ERR_APPLICATION_ERROR 0x0C -# define QUIC_ERR_CRYPTO_BUFFER_EXCEEDED 0x0D -# define QUIC_ERR_KEY_UPDATE_ERROR 0x0E -# define QUIC_ERR_AEAD_LIMIT_REACHED 0x0F -# define QUIC_ERR_NO_VIABLE_PATH 0x10 - -/* Inclusive range for handshake-specific errors. */ -# define QUIC_ERR_CRYPTO_ERR_BEGIN 0x0100 -# define QUIC_ERR_CRYPTO_ERR_END 0x01FF - -# define QUIC_ERR_CRYPTO_ERR(X) \ - (QUIC_ERR_CRYPTO_ERR_BEGIN + (X)) - -# define QUIC_ERR_CRYPTO_UNEXPECTED_MESSAGE \ - QUIC_ERR_CRYPTO_ERR(SSL3_AD_UNEXPECTED_MESSAGE) - -# define QUIC_ERR_CRYPTO_MISSING_EXT \ - QUIC_ERR_CRYPTO_ERR(TLS13_AD_MISSING_EXTENSION) - -# define QUIC_ERR_CRYPTO_NO_APP_PROTO \ - QUIC_ERR_CRYPTO_ERR(TLS1_AD_NO_APPLICATION_PROTOCOL) +# define OSSL_QUIC_ERR_CRYPTO_UNEXPECTED_MESSAGE \ + OSSL_QUIC_ERR_CRYPTO_ERR(SSL3_AD_UNEXPECTED_MESSAGE) + +# define OSSL_QUIC_ERR_CRYPTO_MISSING_EXT \ + OSSL_QUIC_ERR_CRYPTO_ERR(TLS13_AD_MISSING_EXTENSION) + +# define OSSL_QUIC_ERR_CRYPTO_NO_APP_PROTO \ + OSSL_QUIC_ERR_CRYPTO_ERR(TLS1_AD_NO_APPLICATION_PROTOCOL) const char *ossl_quic_err_to_string(uint64_t error_code); diff --git a/include/openssl/quic.h b/include/openssl/quic.h index 74a6345d5d..853b944316 100644 --- a/include/openssl/quic.h +++ b/include/openssl/quic.h @@ -24,11 +24,40 @@ extern "C" { * 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); +/* + * QUIC transport error codes (RFC 9000 s. 20.1) + */ +# define OSSL_QUIC_ERR_NO_ERROR 0x00 +# define OSSL_QUIC_ERR_INTERNAL_ERROR 0x01 +# define OSSL_QUIC_ERR_CONNECTION_REFUSED 0x02 +# define OSSL_QUIC_ERR_FLOW_CONTROL_ERROR 0x03 +# define OSSL_QUIC_ERR_STREAM_LIMIT_ERROR 0x04 +# define OSSL_QUIC_ERR_STREAM_STATE_ERROR 0x05 +# define OSSL_QUIC_ERR_FINAL_SIZE_ERROR 0x06 +# define OSSL_QUIC_ERR_FRAME_ENCODING_ERROR 0x07 +# define OSSL_QUIC_ERR_TRANSPORT_PARAMETER_ERROR 0x08 +# define OSSL_QUIC_ERR_CONNECTION_ID_LIMIT_ERROR 0x09 +# define OSSL_QUIC_ERR_PROTOCOL_VIOLATION 0x0A +# define OSSL_QUIC_ERR_INVALID_TOKEN 0x0B +# define OSSL_QUIC_ERR_APPLICATION_ERROR 0x0C +# define OSSL_QUIC_ERR_CRYPTO_BUFFER_EXCEEDED 0x0D +# define OSSL_QUIC_ERR_KEY_UPDATE_ERROR 0x0E +# define OSSL_QUIC_ERR_AEAD_LIMIT_REACHED 0x0F +# define OSSL_QUIC_ERR_NO_VIABLE_PATH 0x10 + +/* Inclusive range for handshake-specific errors. */ +# define OSSL_QUIC_ERR_CRYPTO_ERR_BEGIN 0x0100 +# define OSSL_QUIC_ERR_CRYPTO_ERR_END 0x01FF + +# define OSSL_QUIC_ERR_CRYPTO_ERR(X) \ + (OSSL_QUIC_ERR_CRYPTO_ERR_BEGIN + (X)) + # ifdef __cplusplus } # endif |