1 /*************************************************************************** 2 * Copyright (c) 2024 Microsoft Corporation 3 * 4 * This program and the accompanying materials are made available under the 5 * terms of the MIT License which is available at 6 * https://opensource.org/licenses/MIT. 7 * 8 * SPDX-License-Identifier: MIT 9 **************************************************************************/ 10 11 12 /**************************************************************************/ 13 /**************************************************************************/ 14 /** */ 15 /** NetX Secure Component */ 16 /** */ 17 /** Transport Layer Security (TLS) */ 18 /** */ 19 /**************************************************************************/ 20 /**************************************************************************/ 21 22 #define NX_SECURE_SOURCE_CODE 23 24 #include "nx_secure_tls.h" 25 26 #ifdef NX_SECURE_KEY_CLEAR 27 /**************************************************************************/ 28 /* */ 29 /* FUNCTION RELEASE */ 30 /* */ 31 /* _nx_secure_tls_packet_release PORTABLE C */ 32 /* 6.1 */ 33 /* AUTHOR */ 34 /* */ 35 /* Timothy Stapko, Microsoft Corporation */ 36 /* */ 37 /* DESCRIPTION */ 38 /* */ 39 /* This function releases packet with all data in the packet cleared. */ 40 /* */ 41 /* INPUT */ 42 /* */ 43 /* packet_ptr NX_PACKET to release */ 44 /* */ 45 /* OUTPUT */ 46 /* */ 47 /* status Completion status */ 48 /* */ 49 /* CALLS */ 50 /* */ 51 /* nx_packet_release Release packet */ 52 /* */ 53 /* CALLED BY */ 54 /* */ 55 /* nx_secure_dtls_client_handshake.c */ 56 /* nx_secure_dtls_process_record.c */ 57 /* nx_secure_dtls_receive_callback.c */ 58 /* nx_secure_dtls_retransmit_queue_flush.c */ 59 /* nx_secure_dtls_send_handshake_record.c */ 60 /* nx_secure_dtls_send_record.c */ 61 /* nx_secure_dtls_session_end.c */ 62 /* nx_secure_dtls_session_receive.c */ 63 /* nx_secure_dtls_session_reset.c */ 64 /* nx_secure_dtls_session_start.c */ 65 /* nx_secure_tls_1_3_client_handshake.c */ 66 /* nx_secure_tls_1_3_server_handshake.c */ 67 /* nx_secure_tls_client_handshake.c */ 68 /* nx_secure_tls_handshake_process.c */ 69 /* nx_secure_tls_packet_release.c */ 70 /* nx_secure_tls_process_record.c */ 71 /* nx_secure_tls_record_payload_decrypt.c */ 72 /* nx_secure_tls_send_handshake_record.c */ 73 /* nx_secure_tls_server_handshake.c */ 74 /* nx_secure_tls_session_end.c */ 75 /* nx_secure_tls_session_receive_records.c */ 76 /* nx_secure_tls_session_renegotiate.c */ 77 /* nx_secure_tls_session_start.c */ 78 /* */ 79 /* RELEASE HISTORY */ 80 /* */ 81 /* DATE NAME DESCRIPTION */ 82 /* */ 83 /* 05-19-2020 Timothy Stapko Initial Version 6.1 */ 84 /* */ 85 /**************************************************************************/ _nx_secure_tls_packet_release(NX_PACKET * packet_ptr)86UINT _nx_secure_tls_packet_release(NX_PACKET *packet_ptr) 87 { 88 NX_PACKET *current_packet; 89 90 /* Clear all data in chained packet. */ 91 current_packet = packet_ptr; 92 while (current_packet) 93 { 94 NX_SECURE_MEMSET(current_packet -> nx_packet_data_start, 0, 95 (ULONG)current_packet -> nx_packet_data_end - 96 (ULONG)current_packet -> nx_packet_data_start); 97 current_packet = current_packet -> nx_packet_next; 98 } 99 return(nx_packet_release(packet_ptr)); 100 } 101 #endif /* NX_SECURE_KEY_CLEAR */ 102 103