diff --git a/ssl/quic/build.info b/ssl/quic/build.info index bb6739b18b..9927d344d8 100644 --- a/ssl/quic/build.info +++ b/ssl/quic/build.info @@ -16,3 +16,4 @@ SOURCE[$LIBSSL]=quic_thread_assist.c SOURCE[$LIBSSL]=quic_trace.c SOURCE[$LIBSSL]=quic_srtm.c quic_srt_gen.c SOURCE[$LIBSSL]=quic_lcidm.c +SOURCE[$LIBSSL]=quic_types.c diff --git a/ssl/quic/quic_types.c b/ssl/quic/quic_types.c new file mode 100644 index 0000000000..4ff3ae6580 --- /dev/null +++ b/ssl/quic/quic_types.c @@ -0,0 +1,29 @@ +/* + * Copyright 2023 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 + */ + +#include "internal/quic_types.h" +#include +#include + +int ossl_quic_gen_rand_conn_id(OSSL_LIB_CTX *libctx, size_t len, + QUIC_CONN_ID *cid) +{ + if (len > QUIC_MAX_CONN_ID_LEN) + return 0; + + cid->id_len = (unsigned char)len; + + if (RAND_bytes_ex(libctx, cid->id, len, len * 8) != 1) { + ERR_raise(ERR_LIB_SSL, ERR_R_RAND_LIB); + cid->id_len = 0; + return 0; + } + + return 1; +} diff --git a/ssl/quic/quic_wire.c b/ssl/quic/quic_wire.c index faf80cfd07..425e7efc2e 100644 --- a/ssl/quic/quic_wire.c +++ b/ssl/quic/quic_wire.c @@ -9,7 +9,6 @@ #include #include -#include #include "internal/quic_ssl.h" #include "internal/quic_vlint.h" #include "internal/quic_wire.h" @@ -1077,20 +1076,3 @@ const char *ossl_quic_err_to_string(uint64_t error_code) return NULL; } } - -int ossl_quic_gen_rand_conn_id(OSSL_LIB_CTX *libctx, size_t len, - QUIC_CONN_ID *cid) -{ - if (len > QUIC_MAX_CONN_ID_LEN) - return 0; - - cid->id_len = (unsigned char)len; - - if (RAND_bytes_ex(libctx, cid->id, len, len * 8) != 1) { - ERR_raise(ERR_LIB_SSL, ERR_R_RAND_LIB); - cid->id_len = 0; - return 0; - } - - return 1; -}