/*************************************************************************** * Copyright (c) 2024 Microsoft Corporation * * This program and the accompanying materials are made available under the * terms of the MIT License which is available at * https://opensource.org/licenses/MIT. * * SPDX-License-Identifier: MIT **************************************************************************/ /**************************************************************************/ /**************************************************************************/ /** */ /** NetX Secure Component */ /** */ /** Transport Layer Security (TLS) */ /** */ /**************************************************************************/ /**************************************************************************/ #define NX_SECURE_SOURCE_CODE #include "nx_secure_tls.h" /**************************************************************************/ /* */ /* FUNCTION RELEASE */ /* */ /* _nx_secure_tls_protocol_version_get PORTABLE C */ /* 6.1 */ /* AUTHOR */ /* */ /* Timothy Stapko, Microsoft Corporation */ /* */ /* DESCRIPTION */ /* */ /* Return the protocol version to use for the TLS connection. This may */ /* be a user-supplied version using the API */ /* nx_secure_tls_session_protocol_version_override. If no version */ /* override is supplied, the newest supported and enabled version is */ /* returned. */ /* */ /* INPUT */ /* */ /* session_ptr TLS session */ /* protocol_version Pointer to version variable */ /* id TLS or DTLS */ /* */ /* OUTPUT */ /* */ /* None */ /* */ /* CALLS */ /* */ /* None */ /* */ /* CALLED BY */ /* */ /* _nx_secure_dtls_send_clienthello Send ClientHello */ /* _nx_secure_tls_process_clienthello Process ClientHello */ /* _nx_secure_tls_send_clienthello Send ClientHello */ /* */ /* RELEASE HISTORY */ /* */ /* DATE NAME DESCRIPTION */ /* */ /* 05-19-2020 Timothy Stapko Initial Version 6.0 */ /* 09-30-2020 Timothy Stapko Modified comment(s), */ /* resulting in version 6.1 */ /* */ /**************************************************************************/ VOID _nx_secure_tls_protocol_version_get(NX_SECURE_TLS_SESSION *session_ptr, USHORT *protocol_version, UINT id) { /* First, check for protocol version override and return it if the user has selected to use a specific version of TLS (even if a newer version is enabled). */ if (session_ptr -> nx_secure_tls_protocol_version_override != 0) { (*protocol_version) = session_ptr -> nx_secure_tls_protocol_version_override; return; } /* No user protocol version override, return newest supported version. */ _nx_secure_tls_newest_supported_version(session_ptr, protocol_version, id); return; }