Select one of the symbols to view example projects that use it.
 
Outline
...
...
...
...
#define NX_SECURE_SOURCE_CODE
#include "nx_secure_tls.h"
...
...
_nx_secure_tls_local_certificate_find(NX_SECURE_TLS_SESSION *, NX_SECURE_X509_CERT **, UCHAR *, UINT)
Files
loading...
CodeScopeSTM32 Libraries and Samplesnetxduonx_secure/src/nx_secure_tls_local_certificate_find.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
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
/**************************************************************************/ /* */ /* 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 */ /** */ /** Transport Layer Security (TLS) */ /** */... /**************************************************************************/ /**************************************************************************/ #define NX_SECURE_SOURCE_CODE /* Include necessary system files. */ #include "nx_secure_tls.h" ... /**************************************************************************/ /* */ /* FUNCTION RELEASE */ /* */ /* _nx_secure_tls_local_certificate_find PORTABLE C */ /* 6.1.6 */ /* AUTHOR */ /* */ /* Timothy Stapko, Microsoft Corporation */ /* */ /* DESCRIPTION */ /* */ /* This function finds a local certificate based upon its Common Name */ /* field in the certificate's Subject section. */ /* */ /* INPUT */ /* */ /* tls_session Pointer to TLS Session */ /* certificate Return certificate pointer */ /* common_name Certificate Common Name */ /* name_length Length of Common Name */ /* */ /* OUTPUT */ /* */ /* status Completion status */ /* */ /* CALLS */ /* */ /* _nx_secure_x509_certificate_list_find */ /* Find certificate in local */ /* store by name */ /* */ /* 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), */ /* resulting in version 6.1 */ /* 04-02-2021 Timothy Stapko Modified comment(s), */ /* updated X.509 return value, */ /* resulting in version 6.1.6 */ /* */... /**************************************************************************/ UINT _nx_secure_tls_local_certificate_find(NX_SECURE_TLS_SESSION *tls_session, NX_SECURE_X509_CERT **certificate, UCHAR *common_name, UINT name_length) { UINT status; NX_SECURE_X509_CERT *list_head; NX_SECURE_X509_CERTIFICATE_STORE *store; NX_SECURE_X509_DISTINGUISHED_NAME name; /* Get the remote certificate store from our TLS session. */ store = &tls_session -> nx_secure_tls_credentials.nx_secure_tls_certificate_store; /* Get the first certificate in the local store. */ list_head = store -> nx_secure_x509_local_certificates; /* Set up the distinguished name - the find call below only uses the Common Name field to match certificates so it's ok if we only fill in the Common Name here. Also, the Distinguished Name is only used in this function's context, so it should be OK that we are assigning the pointer common_name instead of copying the string data. *//* ... */ name.nx_secure_x509_common_name = common_name; name.nx_secure_x509_common_name_length = (USHORT)name_length; /* Find the certificate using it's name. */ status = _nx_secure_x509_certificate_list_find(&list_head, &name, 0, certificate); /* Translate some X.509 return values into TLS return values. */ if (status == NX_SECURE_X509_CERTIFICATE_NOT_FOUND) { return(NX_SECURE_TLS_CERTIFICATE_NOT_FOUND); }if (status == NX_SECURE_X509_CERTIFICATE_NOT_FOUND) { ... } /* Return completion status. */ return(status); }{ ... }