From e203d1b542eba8dd7ae53b3def2abf8482acc4d8 Mon Sep 17 00:00:00 2001 From: Hugo Landau Date: Mon, 22 Jan 2024 13:14:53 +0000 Subject: QUIC: Add new error codes for tuning API Reviewed-by: Neil Horman Reviewed-by: Matt Caswell Reviewed-by: Tomas Mraz (Merged from https://github.com/openssl/openssl/pull/23360) --- ssl/ssl_err.c | 10 ++++++++++ ssl/ssl_lib.c | 29 +++++++++++++++++++++++++++++ 2 files changed, 39 insertions(+) (limited to 'ssl') diff --git a/ssl/ssl_err.c b/ssl/ssl_err.c index 41af278a49..a1ce627456 100644 --- a/ssl/ssl_err.c +++ b/ssl/ssl_err.c @@ -180,6 +180,10 @@ static const ERR_STRING_DATA SSL_str_reasons[] = { "failed to get parameter"}, {ERR_PACK(ERR_LIB_SSL, 0, SSL_R_FAILED_TO_INIT_ASYNC), "failed to init async"}, + {ERR_PACK(ERR_LIB_SSL, 0, SSL_R_FEATURE_NEGOTIATION_NOT_COMPLETE), + "feature negotiation not complete"}, + {ERR_PACK(ERR_LIB_SSL, 0, SSL_R_FEATURE_NOT_RENEGOTIABLE), + "feature not renegotiable"}, {ERR_PACK(ERR_LIB_SSL, 0, SSL_R_FRAGMENTED_CLIENT_HELLO), "fragmented client hello"}, {ERR_PACK(ERR_LIB_SSL, 0, SSL_R_GOT_A_FIN_BEFORE_A_CCS), @@ -564,6 +568,12 @@ static const ERR_STRING_DATA SSL_str_reasons[] = { "unsolicited extension"}, {ERR_PACK(ERR_LIB_SSL, 0, SSL_R_UNSUPPORTED_COMPRESSION_ALGORITHM), "unsupported compression algorithm"}, + {ERR_PACK(ERR_LIB_SSL, 0, SSL_R_UNSUPPORTED_CONFIG_VALUE), + "unsupported config value"}, + {ERR_PACK(ERR_LIB_SSL, 0, SSL_R_UNSUPPORTED_CONFIG_VALUE_CLASS), + "unsupported config value class"}, + {ERR_PACK(ERR_LIB_SSL, 0, SSL_R_UNSUPPORTED_CONFIG_VALUE_OP), + "unsupported config value op"}, {ERR_PACK(ERR_LIB_SSL, 0, SSL_R_UNSUPPORTED_ELLIPTIC_CURVE), "unsupported elliptic curve"}, {ERR_PACK(ERR_LIB_SSL, 0, SSL_R_UNSUPPORTED_PROTOCOL), diff --git a/ssl/ssl_lib.c b/ssl/ssl_lib.c index 6788d2c104..539d8568f7 100644 --- a/ssl/ssl_lib.c +++ b/ssl/ssl_lib.c @@ -7636,6 +7636,35 @@ int SSL_get_conn_close_info(SSL *s, SSL_CONN_CLOSE_INFO *info, #endif } +int SSL_get_value_uint(SSL *s, uint32_t class_, uint32_t id, + uint64_t *value) +{ + if (value == NULL) { + ERR_raise(ERR_LIB_SSL, ERR_R_PASSED_INVALID_ARGUMENT); + return 0; + } + +#ifndef OPENSSL_NO_QUIC + if (IS_QUIC(s)) + return ossl_quic_get_value_uint(s, class_, id, value); +#endif + + ERR_raise(ERR_LIB_SSL, SSL_R_UNSUPPORTED_PROTOCOL); + return 0; +} + +int SSL_set_value_uint(SSL *s, uint32_t class_, uint32_t id, + uint64_t value) +{ +#ifndef OPENSSL_NO_QUIC + if (IS_QUIC(s)) + return ossl_quic_set_value_uint(s, class_, id, value); +#endif + + ERR_raise(ERR_LIB_SSL, SSL_R_UNSUPPORTED_PROTOCOL); + return 0; +} + int SSL_add_expected_rpk(SSL *s, EVP_PKEY *rpk) { unsigned char *data = NULL; -- cgit v1.2.3