1
10
13
14
20
21
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
81
82
83
87
88
89
92
93
94
95
96
103
104
110
111
112
113
114
115
116
117
118
119
120
121
122
...
...
...
#define NX_SECURE_SOURCE_CODE
#include "nx_secure_tls.h"
...
...
UINT _nx_secure_tls_process_changecipherspec(NX_SECURE_TLS_SESSION *tls_session,
UCHAR *packet_buffer, UINT message_length)
{
UINT status = NX_SUCCESS;
if (message_length != 1)
{
return(NX_SECURE_TLS_INCORRECT_MESSAGE_LENGTH);
}if (message_length != 1) { ... }
if (packet_buffer[0] != 0x1)
{
return(NX_SECURE_TLS_BAD_CIPHERSPEC);
}if (packet_buffer[0] != 0x1) { ... }
#if (NX_SECURE_TLS_TLS_1_3_ENABLED)
/* ... */
if(!tls_session->nx_secure_tls_1_3)/* ... */
#endif
{
#ifndef NX_SECURE_TLS_SERVER_DISABLED
if (tls_session -> nx_secure_tls_socket_type == NX_SECURE_TLS_SESSION_TYPE_SERVER &&
tls_session -> nx_secure_tls_server_state != NX_SECURE_TLS_SERVER_STATE_KEY_EXCHANGE &&
tls_session -> nx_secure_tls_server_state != NX_SECURE_TLS_SERVER_STATE_CERTIFICATE_VERIFY)
{
return(NX_SECURE_TLS_UNEXPECTED_MESSAGE);
}if (tls_session -> nx_secure_tls_socket_type == NX_SECURE_TLS_SESSION_TYPE_SERVER && tls_session -> nx_secure_tls_server_state != NX_SECURE_TLS_SERVER_STATE_KEY_EXCHANGE && tls_session -> nx_secure_tls_server_state != NX_SECURE_TLS_SERVER_STATE_CERTIFICATE_VERIFY) { ... }
/* ... */#endif
#ifndef NX_SECURE_TLS_CLIENT_DISABLED
if (tls_session -> nx_secure_tls_socket_type == NX_SECURE_TLS_SESSION_TYPE_CLIENT &&
tls_session -> nx_secure_tls_client_state != NX_SECURE_TLS_CLIENT_STATE_SERVERHELLO_DONE)
{
return(NX_SECURE_TLS_UNEXPECTED_MESSAGE);
}if (tls_session -> nx_secure_tls_socket_type == NX_SECURE_TLS_SESSION_TYPE_CLIENT && tls_session -> nx_secure_tls_client_state != NX_SECURE_TLS_CLIENT_STATE_SERVERHELLO_DONE) { ... }
/* ... */#endif
tls_session -> nx_secure_tls_remote_session_active = 1;
NX_SECURE_MEMSET(tls_session -> nx_secure_tls_remote_sequence_number, 0, sizeof(tls_session -> nx_secure_tls_remote_sequence_number));
status = _nx_secure_tls_session_keys_set(tls_session, NX_SECURE_TLS_KEY_SET_REMOTE);
...}
return(status);
}{ ... }