1
10
13
14
20
21
27
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
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
118
119
120
121
122
123
124
125
...
...
...
#define NX_SECURE_SOURCE_CODE
#include "nx_secure_tls.h"
...
...
#if defined(NX_SECURE_ENABLE_PSK_CIPHERSUITES) || defined(NX_SECURE_ENABLE_ECJPAKE_CIPHERSUITE)
UINT _nx_secure_tls_psk_add(NX_SECURE_TLS_SESSION *tls_session, UCHAR *pre_shared_key,
UINT psk_length, UCHAR *psk_identity, UINT identity_length, UCHAR *hint,
UINT hint_length)
{
UINT status;
UINT current_index;
tx_mutex_get(&_nx_secure_tls_protection, TX_WAIT_FOREVER);
current_index = tls_session -> nx_secure_tls_credentials.nx_secure_tls_psk_count;
if ((current_index + 1) < NX_SECURE_TLS_MAX_PSK_KEYS &&
psk_length < NX_SECURE_TLS_MAX_PSK_SIZE &&
identity_length < NX_SECURE_TLS_MAX_PSK_ID_SIZE &&
hint_length <= NX_SECURE_TLS_MAX_PSK_ID_SIZE)
{
NX_SECURE_MEMCPY(tls_session -> nx_secure_tls_credentials.nx_secure_tls_psk_store[current_index].nx_secure_tls_psk_data, pre_shared_key, psk_length);
tls_session -> nx_secure_tls_credentials.nx_secure_tls_psk_store[current_index].nx_secure_tls_psk_data_size = psk_length;
NX_SECURE_MEMCPY(tls_session -> nx_secure_tls_credentials.nx_secure_tls_psk_store[current_index].nx_secure_tls_psk_id, psk_identity, identity_length);
tls_session -> nx_secure_tls_credentials.nx_secure_tls_psk_store[current_index].nx_secure_tls_psk_id_size = identity_length;
NX_SECURE_MEMCPY(tls_session -> nx_secure_tls_credentials.nx_secure_tls_psk_store[current_index].nx_secure_tls_psk_id_hint, hint, hint_length);
tls_session -> nx_secure_tls_credentials.nx_secure_tls_psk_store[current_index].nx_secure_tls_psk_id_hint_size = hint_length;
tls_session -> nx_secure_tls_credentials.nx_secure_tls_psk_count = current_index + 1;
status = NX_SUCCESS;
}if ((current_index + 1) < NX_SECURE_TLS_MAX_PSK_KEYS && psk_length < NX_SECURE_TLS_MAX_PSK_SIZE && identity_length < NX_SECURE_TLS_MAX_PSK_ID_SIZE && hint_length <= NX_SECURE_TLS_MAX_PSK_ID_SIZE) { ... }
else
{
status = NX_SECURE_TLS_NO_MORE_PSK_SPACE;
}else { ... }
tx_mutex_put(&_nx_secure_tls_protection);
return(status);
}_nx_secure_tls_psk_add (NX_SECURE_TLS_SESSION *tls_session, UCHAR *pre_shared_key, UINT psk_length, UCHAR *psk_identity, UINT identity_length, UCHAR *hint, UINT hint_length) { ... }
/* ... */#endif...