open62541 1.4.15
Open source implementation of OPC UA
Loading...
Searching...
No Matches
server_config_default.h
Go to the documentation of this file.
1/** This work is licensed under a Creative Commons CCZero 1.0 Universal License.
2 * See http://creativecommons.org/publicdomain/zero/1.0/ for more information.
3 *
4 * Copyright 2017 (c) Fraunhofer IOSB (Author: Julius Pfrommer)
5 * Copyright 2017 (c) Stefan Profanter, fortiss GmbH
6 * Copyright 2018 (c) Mark Giraud, Fraunhofer IOSB
7 * Copyright 2019 (c) Kalycito Infotech Private Limited
8 */
9
10#ifndef UA_SERVER_CONFIG_DEFAULT_H_
11#define UA_SERVER_CONFIG_DEFAULT_H_
12
13#include <open62541/server.h>
14
16
17
18/** Default Connection */
19
20
21extern const
23
24
25/** Default Server Config */
26
27
28/** Creates a new server config with one endpoint and custom buffer size.
29 *
30 * The config will set the tcp network layer to the given port and adds a single
31 * endpoint with the security policy ``SecurityPolicy#None`` to the server.
32 * If the port is set to 0, it will be dynamically assigned.
33 * A server certificate may be supplied but is optional.
34 * Additionally you can define a custom buffer size for send and receive buffer.
35 *
36 * @param portNumber The port number for the tcp network layer
37 * @param certificate Optional certificate for the server endpoint. Can be
38 * ``NULL``.
39 * @param sendBufferSize The size in bytes for the network send buffer
40 * @param recvBufferSize The size in bytes for the network receive buffer
41 *
42 */
43UA_EXPORT UA_StatusCode
45 UA_UInt16 portNumber,
46 const UA_ByteString *certificate,
47 UA_UInt32 sendBufferSize,
48 UA_UInt32 recvBufferSize);
49
50/** Creates a new server config with one endpoint.
51 *
52 * The config will set the tcp network layer to the given port and adds a single
53 * endpoint with the security policy ``SecurityPolicy#None`` to the server. A
54 * server certificate may be supplied but is optional. */
55static UA_StatusCode
56UA_ServerConfig_setMinimal(UA_ServerConfig *config, UA_UInt16 portNumber,
57 const UA_ByteString *certificate) {
58 return UA_ServerConfig_setMinimalCustomBuffer(config, portNumber,
59 certificate, 0, 0);
60}
61
62#ifdef UA_ENABLE_ENCRYPTION
63
64UA_EXPORT UA_StatusCode
66 UA_UInt16 portNumber,
67 const UA_ByteString *certificate,
68 const UA_ByteString *privateKey,
69 const UA_ByteString *trustList,
70 size_t trustListSize,
71 const UA_ByteString *issuerList,
72 size_t issuerListSize,
73 const UA_ByteString *revocationList,
74 size_t revocationListSize);
75
76UA_EXPORT UA_StatusCode
78 UA_UInt16 portNumber,
79 const UA_ByteString *certificate,
80 const UA_ByteString *privateKey,
81 const UA_ByteString *trustList,
82 size_t trustListSize,
83 const UA_ByteString *issuerList,
84 size_t issuerListSize,
85 const UA_ByteString *revocationList,
86 size_t revocationListSize);
87
88#endif
89
90/** Creates a server config on the default port 4840 with no server
91 * certificate. */
92static UA_StatusCode
93UA_ServerConfig_setDefault(UA_ServerConfig *config) {
94 return UA_ServerConfig_setMinimal(config, 4840, NULL);
95}
96
97/** Creates a new server config with no security policies and no endpoints.
98 *
99 * It initializes reasonable defaults for many things, but does not
100 * add any security policies and endpoints.
101 * Use the various UA_ServerConfig_addXxx functions to add them.
102 * The config will set the tcp network layer to the default port 4840 if the
103 * eventloop is not already set.
104 *
105 * @param conf The configuration to manipulate
106 */
107UA_EXPORT UA_StatusCode
109
110/** Creates a new server config with no security policies and no endpoints.
111 *
112 * It initializes reasonable defaults for many things, but does not
113 * add any security policies and endpoints.
114 * Use the various UA_ServerConfig_addXxx functions to add them.
115 * The config will set the tcp network layer to the given port if the
116 * eventloop is not already set.
117 * If the port is set to 0, it will be dynamically assigned.
118 *
119 * @param conf The configuration to manipulate
120 * @param portNumber The port number for the tcp network layer
121 */
122UA_EXPORT UA_StatusCode
124 UA_UInt16 portNumber);
125
126/** Adds the security policy ``SecurityPolicy#None`` to the server. A
127 * server certificate may be supplied but is optional.
128 *
129 * @param config The configuration to manipulate
130 * @param certificate The optional server certificate.
131 */
132UA_EXPORT UA_StatusCode
134 const UA_ByteString *certificate);
135
136#ifdef UA_ENABLE_ENCRYPTION
137
138/** Adds the security policy ``SecurityPolicy#Basic128Rsa15`` to the server. A
139 * server certificate may be supplied but is optional.
140 *
141 * Certificate verification should be configured before calling this
142 * function. See PKI plugin.
143 *
144 * @param config The configuration to manipulate
145 * @param certificate The server certificate.
146 * @param privateKey The private key that corresponds to the certificate.
147 */
148UA_EXPORT UA_StatusCode
150 const UA_ByteString *certificate,
151 const UA_ByteString *privateKey);
152
153/** Adds the security policy ``SecurityPolicy#Basic256`` to the server. A
154 * server certificate may be supplied but is optional.
155 *
156 * Certificate verification should be configured before calling this
157 * function. See PKI plugin.
158 *
159 * @param config The configuration to manipulate
160 * @param certificate The server certificate.
161 * @param privateKey The private key that corresponds to the certificate.
162 */
163UA_EXPORT UA_StatusCode
165 const UA_ByteString *certificate,
166 const UA_ByteString *privateKey);
167
168/** Adds the security policy ``SecurityPolicy#Basic256Sha256`` to the server. A
169 * server certificate may be supplied but is optional.
170 *
171 * Certificate verification should be configured before calling this
172 * function. See PKI plugin.
173 *
174 * @param config The configuration to manipulate
175 * @param certificate The server certificate.
176 * @param privateKey The private key that corresponds to the certificate.
177 */
178UA_EXPORT UA_StatusCode
180 const UA_ByteString *certificate,
181 const UA_ByteString *privateKey);
182
183/** Adds the security policy ``SecurityPolicy#Aes128Sha256RsaOaep`` to the server. A
184 * server certificate may be supplied but is optional.
185 *
186 * Certificate verification should be configured before calling this
187 * function. See PKI plugin.
188 *
189 * @param config The configuration to manipulate
190 * @param certificate The server certificate.
191 * @param privateKey The private key that corresponds to the certificate.
192 */
193UA_EXPORT UA_StatusCode
195 const UA_ByteString *certificate,
196 const UA_ByteString *privateKey);
197
198/** Adds the security policy ``SecurityPolicy#Aes256Sha256RsaPss`` to the server. A
199 * server certificate may be supplied but is optional.
200 *
201 * Certificate verification should be configured before calling this
202 * function. See PKI plugin.
203 *
204 * @param config The configuration to manipulate
205 * @param certificate The server certificate.
206 * @param privateKey The private key that corresponds to the certificate.
207 */
208UA_EXPORT UA_StatusCode
210 const UA_ByteString *certificate,
211 const UA_ByteString *privateKey);
212
213/** Adds all supported security policies and sets up certificate
214 * validation procedures.
215 *
216 * Certificate verification should be configured before calling this
217 * function. See PKI plugin.
218 *
219 * @param config The configuration to manipulate
220 * @param certificate The server certificate.
221 * @param privateKey The private key that corresponds to the certificate.
222 * @param trustList The trustList for client certificate validation.
223 * @param trustListSize The trustList size.
224 * @param revocationList The revocationList for client certificate validation.
225 * @param revocationListSize The revocationList size.
226 */
227UA_EXPORT UA_StatusCode
229 const UA_ByteString *certificate,
230 const UA_ByteString *privateKey);
231
232UA_EXPORT UA_StatusCode
234 const UA_ByteString *certificate,
235 const UA_ByteString *privateKey);
236
237#endif
238
239/** Adds an endpoint for the given security policy and mode. The security
240 * policy has to be added already. See UA_ServerConfig_addXxx functions.
241 *
242 * @param config The configuration to manipulate
243 * @param securityPolicyUri The security policy for which to add the endpoint.
244 * @param securityMode The security mode for which to add the endpoint.
245 */
246UA_EXPORT UA_StatusCode
248 UA_MessageSecurityMode securityMode);
249
250/** Adds endpoints for all configured security policies in each mode.
251 *
252 * @param config The configuration to manipulate
253 */
254UA_EXPORT UA_StatusCode
256
257/** Adds endpoints for all secure configured security policies in each mode.
258 *
259 * @param config The configuration to manipulate
260 */
261UA_EXPORT UA_StatusCode
263
265
266#endif /* UA_SERVER_CONFIG_DEFAULT_H_ */
#define _UA_BEGIN_DECLS
#undef UA_DEBUG_DUMP_PKGS
Definition config.h:100
#define _UA_END_DECLS
Definition config.h:107
_UA_BEGIN_DECLS const UA_ConnectionConfig UA_ConnectionConfig_default
This work is licensed under a Creative Commons CCZero 1.0 Universal License.
UA_EXPORT UA_StatusCode UA_ServerConfig_addEndpoint(UA_ServerConfig *config, const UA_String securityPolicyUri, UA_MessageSecurityMode securityMode)
Adds an endpoint for the given security policy and mode.
UA_EXPORT UA_StatusCode UA_ServerConfig_setBasics_withPort(UA_ServerConfig *conf, UA_UInt16 portNumber)
Creates a new server config with no security policies and no endpoints.
UA_EXPORT UA_StatusCode UA_ServerConfig_setDefaultWithSecurityPolicies(UA_ServerConfig *conf, UA_UInt16 portNumber, const UA_ByteString *certificate, const UA_ByteString *privateKey, const UA_ByteString *trustList, size_t trustListSize, const UA_ByteString *issuerList, size_t issuerListSize, const UA_ByteString *revocationList, size_t revocationListSize)
UA_EXPORT UA_StatusCode UA_ServerConfig_addAllSecureEndpoints(UA_ServerConfig *config)
Adds endpoints for all secure configured security policies in each mode.
UA_EXPORT UA_StatusCode UA_ServerConfig_addAllSecureSecurityPolicies(UA_ServerConfig *config, const UA_ByteString *certificate, const UA_ByteString *privateKey)
UA_EXPORT UA_StatusCode UA_ServerConfig_addSecurityPolicyBasic256Sha256(UA_ServerConfig *config, const UA_ByteString *certificate, const UA_ByteString *privateKey)
Adds the security policy SecurityPolicy#Basic256Sha256 to the server.
UA_EXPORT UA_StatusCode UA_ServerConfig_addSecurityPolicyNone(UA_ServerConfig *config, const UA_ByteString *certificate)
Adds the security policy SecurityPolicy#None to the server.
UA_EXPORT UA_StatusCode UA_ServerConfig_addAllEndpoints(UA_ServerConfig *config)
Adds endpoints for all configured security policies in each mode.
UA_EXPORT UA_StatusCode UA_ServerConfig_setBasics(UA_ServerConfig *conf)
Creates a new server config with no security policies and no endpoints.
UA_EXPORT UA_StatusCode UA_ServerConfig_addSecurityPolicyAes128Sha256RsaOaep(UA_ServerConfig *config, const UA_ByteString *certificate, const UA_ByteString *privateKey)
Adds the security policy SecurityPolicy#Aes128Sha256RsaOaep to the server.
UA_EXPORT UA_StatusCode UA_ServerConfig_setMinimalCustomBuffer(UA_ServerConfig *config, UA_UInt16 portNumber, const UA_ByteString *certificate, UA_UInt32 sendBufferSize, UA_UInt32 recvBufferSize)
Default Server Config.
UA_EXPORT UA_StatusCode UA_ServerConfig_addSecurityPolicyAes256Sha256RsaPss(UA_ServerConfig *config, const UA_ByteString *certificate, const UA_ByteString *privateKey)
Adds the security policy SecurityPolicy#Aes256Sha256RsaPss to the server.
UA_EXPORT UA_StatusCode UA_ServerConfig_addSecurityPolicyBasic256(UA_ServerConfig *config, const UA_ByteString *certificate, const UA_ByteString *privateKey)
Adds the security policy SecurityPolicy#Basic256 to the server.
UA_EXPORT UA_StatusCode UA_ServerConfig_addSecurityPolicyBasic128Rsa15(UA_ServerConfig *config, const UA_ByteString *certificate, const UA_ByteString *privateKey)
Adds the security policy SecurityPolicy#Basic128Rsa15 to the server.
UA_EXPORT UA_StatusCode UA_ServerConfig_addAllSecurityPolicies(UA_ServerConfig *config, const UA_ByteString *certificate, const UA_ByteString *privateKey)
Adds all supported security policies and sets up certificate validation procedures.
UA_EXPORT UA_StatusCode UA_ServerConfig_setDefaultWithSecureSecurityPolicies(UA_ServerConfig *conf, UA_UInt16 portNumber, const UA_ByteString *certificate, const UA_ByteString *privateKey, const UA_ByteString *trustList, size_t trustListSize, const UA_ByteString *issuerList, size_t issuerListSize, const UA_ByteString *revocationList, size_t revocationListSize)
uint16_t UA_UInt16
Definition types.h:47
uint32_t UA_UInt32
Definition types.h:57
uint32_t UA_StatusCode
Definition types.h:82
UA_MessageSecurityMode
MessageSecurityMode.