Select one of the symbols to view example projects that use it.
 
Outline
...
...
...
...
#define NX_SECURE_SOURCE_CODE
#include "nx_secure_dtls.h"
...
...
_nx_secure_dtls_server_local_certificate_add(NX_SECURE_DTLS_SERVER *, NX_SECURE_X509_CERT *, UINT)
Files
netxduo
addons
common
crypto_libraries
nx_secure
inc
ports
src
ports
threadx
filex
usbx
HAL
CMSIS
lan8742
SourceVuSTM32 Libraries and Samplesnetxduonx_secure/src/nx_secure_dtls_server_local_certificate_add.c
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
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
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
/**************************************************************************/ /* */ /* Copyright (c) Microsoft Corporation. All rights reserved. */ /* */ /* This software is licensed under the Microsoft Software License */ /* Terms for Microsoft Azure RTOS. Full text of the license can be */ /* found in the LICENSE file at https://aka.ms/AzureRTOS_EULA */ /* and in the root directory of this software. */ /* */... /**************************************************************************/ ... /**************************************************************************/ /**************************************************************************/ /** */ /** NetX Secure Component */ /** */ /** Datagram Transport Layer Security (DTLS) */ /** */... /**************************************************************************/ /**************************************************************************/ #define NX_SECURE_SOURCE_CODE #include "nx_secure_dtls.h" ... /**************************************************************************/ /* */ /* FUNCTION RELEASE */ /* */ /* _nx_secure_dtls_server_local_certificate_add PORTABLE C */ /* 6.1 */ /* AUTHOR */ /* */ /* Timothy Stapko, Microsoft Corporation */ /* */ /* DESCRIPTION */ /* */ /* This function adds a local identity certificate to a DTLS server */ /* instance. The certificate added is shared by all DTLS sessions */ /* allocated to the DTLS server and is used to identify the server to */ /* remote clients during the DTLS handshake. Multiple server */ /* certificates may be added as long as they have unique certificate */ /* identifiers (the "cert_id" parameter). */ /* */ /* INPUT */ /* */ /* server_ptr DTLS server control block */ /* certificate Pointer to identity cert */ /* cert_id Numeric ID for cert */ /* */ /* OUTPUT */ /* */ /* status Completion status */ /* */ /* CALLS */ /* */ /* _nx_secure_tls_server_certificate_add Add certificate to TLS */ /* */ /* CALLED BY */ /* */ /* Application Code */ /* */ /* RELEASE HISTORY */ /* */ /* DATE NAME DESCRIPTION */ /* */ /* 05-19-2020 Timothy Stapko Initial Version 6.0 */ /* 09-30-2020 Timothy Stapko Modified comment(s), and */ /* fixed compiler warnings, */ /* resulting in version 6.1 */ /* */... /**************************************************************************/ UINT _nx_secure_dtls_server_local_certificate_add(NX_SECURE_DTLS_SERVER *server_ptr, NX_SECURE_X509_CERT *certificate, UINT cert_id) { #ifdef NX_SECURE_ENABLE_DTLS UINT status; UINT i; NX_SECURE_DTLS_SESSION *current_session; NX_SECURE_TLS_SESSION *tls_session; NX_SECURE_X509_CERT *list_head = NX_NULL; UINT num_sessions; /* Figure out number of sessions. */ num_sessions = server_ptr -> nx_dtls_server_sessions_count; /* Add certificate to the first session. */ if (num_sessions > 0) { /* Get the first session. */ current_session = &(server_ptr -> nx_dtls_server_sessions[0]); /* Get the internal TLS session instance. */ tls_session = &(current_session -> nx_secure_dtls_tls_session); /* Add the server certificate with the provided ID. */ status = _nx_secure_tls_server_certificate_add(tls_session, certificate, cert_id); if(status != NX_SUCCESS) { return(status); }if (status != NX_SUCCESS) { ... } /* Store the certificates list head for other sessions. */ list_head = tls_session -> nx_secure_tls_credentials.nx_secure_tls_certificate_store.nx_secure_x509_local_certificates; }if (num_sessions > 0) { ... } /* Add certificate to the remaining sessions. */ for(i = 1; i < num_sessions; ++i) { /* Get the current session. */ current_session = &(server_ptr->nx_dtls_server_sessions[i]); /* Get the internal TLS session instance. */ tls_session = &(current_session -> nx_secure_dtls_tls_session); /* Set the local certificates list to the same as the first session. */ tls_session -> nx_secure_tls_credentials.nx_secure_tls_certificate_store.nx_secure_x509_local_certificates = list_head; }for (i = 1; i < num_sessions; ++i) { ... } return(NX_SUCCESS);/* ... */ #else NX_PARAMETER_NOT_USED(server_ptr); NX_PARAMETER_NOT_USED(certificate); NX_PARAMETER_NOT_USED(cert_id); return(NX_NOT_SUPPORTED);/* ... */ #endif /* NX_SECURE_ENABLE_DTLS */ }{ ... }
Details