26#ifndef SOPC_USER_APP_ITF_H_
27#define SOPC_USER_APP_ITF_H_
80#define SOPC_SECURITY_MODE_NONE_MASK 0x01
81#define SOPC_SECURITY_MODE_SIGN_MASK 0x02
82#define SOPC_SECURITY_MODE_SIGNANDENCRYPT_MASK 0x04
83#define SOPC_SECURITY_MODE_ANY_MASK 0x07
85#ifndef SOPC_MAX_SECU_POLICIES_CFG
86#define SOPC_MAX_SECU_POLICIES_CFG 5
90#ifndef SOPC_MAX_CLIENT_SECURE_CONNECTIONS_CONFIG
91#define SOPC_MAX_CLIENT_SECURE_CONNECTIONS_CONFIG SOPC_MAX_SECURE_CONNECTIONS
93#if SOPC_MAX_CLIENT_SECURE_CONNECTIONS_CONFIG > UINT16_MAX
94#error "Maximum number of secure connections configuration cannot be > UINT16_MAX"
uint32_t SOPC_StatusCode
Definition sopc_builtintypes.h:36
Contains the types to be used by the method call manager to configure the Call service.
SOPC_SecretBuffer SOPC_SerializedAsymmetricKey
A serialized representation of an asymmetric key.
Definition sopc_crypto_decl.h:70
Defines the cryptographic profiles: constants and struct.
enum _OpcUa_MessageSecurityMode OpcUa_MessageSecurityMode
enum _OpcUa_UserTokenType OpcUa_UserTokenType
enum _OpcUa_NodeClass OpcUa_NodeClass
Interface to manipulate and customize OPC UA event instances.
Contains the interface to configure events in the server. This interface is intended to be used by th...
SOPC_Dict SOPC_Server_Event_Types
OPC UA server events types configuration.
Definition sopc_event_manager.h:35
The SOPC_KeyCertPair stores a private key and certificate pair and allows to update it and triggering...
struct SOPC_KeyCertPair SOPC_KeyCertPair
An abstract structure used to store a pair of private key and certificate.
Definition sopc_key_cert_pair.h:39
void SOPC_KeyCertPairUpdateCb(uintptr_t updateParam)
Type of the callback triggered on key / certificate update.
Definition sopc_key_cert_pair.h:46
SOPC_KeyCertPair SOPC_CertHolder
An abstract structure used to store a certificate in a thread-safe context.
Definition sopc_key_cert_pair.h:168
The SOPC_KeyManager provides an API for Asymmetric Key Management such as loading signed public keys ...
Defines the common declarations for the PKI objects. The structures and macros defined in this file a...
Defines abstract context type that can be use to obtain context associated to a service call (write,...
struct SOPC_Endpoint_Config SOPC_Endpoint_Config
Server configuration of a Endpoint connection listener.
void SOPC_ClientConfig_Clear(SOPC_Client_Config *config)
Clears the content of the SOPC_Client_Config.
void SOPC_ComEvent_Fct(SOPC_App_Com_Event event, uint32_t IdOrStatus, void *param, uintptr_t appContext)
Toolkit communication events application callback type.
Definition sopc_user_app_itf.h:471
_SOPC_App_AddSpace_Event
Server address space access/modification notifications to applicative code.
Definition sopc_user_app_itf.h:459
@ AS_WRITE_EVENT
Definition sopc_user_app_itf.h:461
enum _SOPC_App_AddSpace_Event SOPC_App_AddSpace_Event
Server address space access/modification notifications to applicative code.
void SOPC_AddressSpaceNotif_Fct(const SOPC_CallContext *callCtxPtr, SOPC_App_AddSpace_Event event, void *opParam, SOPC_StatusCode opStatus)
Toolkit address space notification events callback type.
Definition sopc_user_app_itf.h:476
bool SOPC_CreateMI_NodeAvailFunc(const SOPC_NodeId *nodeId, OpcUa_NodeClass *outNodeClass, SOPC_StatusCode *outUnavailabilityStatus)
Type of the callback called by CreateMonitoredItem service when a NodeId is not already part of serve...
Definition sopc_user_app_itf.h:317
#define SOPC_MAX_SECU_POLICIES_CFG
Definition sopc_user_app_itf.h:86
void SOPC_ServerConfig_Initialize(SOPC_Server_Config *config)
Initializes the content of the SOPC_Server_Config.
_SOPC_App_Com_Event
Client and Server communication events to be managed by applicative code.
Definition sopc_user_app_itf.h:386
@ SE_ACTIVATED_SESSION
Definition sopc_user_app_itf.h:399
@ SE_SESSION_ACTIVATION_FAILURE
Definition sopc_user_app_itf.h:393
@ SE_RCV_SESSION_RESPONSE
Definition sopc_user_app_itf.h:409
@ SE_SESSION_REACTIVATING
Definition sopc_user_app_itf.h:404
@ SE_LOCAL_SERVICE_RESPONSE
Definition sopc_user_app_itf.h:443
@ SE_REVERSE_ENDPOINT_CLOSED
Definition sopc_user_app_itf.h:388
@ SE_CLOSED_ENDPOINT
Definition sopc_user_app_itf.h:438
@ SE_SND_REQUEST_FAILED
Definition sopc_user_app_itf.h:429
@ SE_CLOSED_SESSION
Definition sopc_user_app_itf.h:417
@ SE_RCV_DISCOVERY_RESPONSE
Definition sopc_user_app_itf.h:423
struct SOPC_Server_ClientToConnect SOPC_Server_ClientToConnect
OPC UA server client to reverse connect configuration type. From specification part 6 (v1....
struct SOPC_SecureConnection_Config SOPC_SecureConnection_Config
Structure representing a secure connection configuration (secure channel + session) which allow to es...
struct SOPC_Session_UserX509 SOPC_Session_UserX509
Client configuration structure used to store session activation data for an X509 user token type.
void SOPC_S2OPC_Config_Clear(SOPC_S2OPC_Config *config)
Clears the content of the SOPC_S2OPC_Config Calls both SOPC_ServerConfig_Clear and SOPC_ClientConfig_...
struct SOPC_SecureChannel_Config SOPC_SecureChannel_Config
Client configuration of a Secure Channel.
uint32_t SOPC_SessionId
Session identifier type, instances are generated by SE_ACTIVATED_SESSION.
Definition sopc_user_app_itf.h:380
struct SOPC_Session_UserX509_ConfigFromPaths SOPC_Session_UserX509_ConfigFromPaths
Client temporary configuration structure used to store user X509 configuration data from paths....
void SOPC_S2OPC_Config_Initialize(SOPC_S2OPC_Config *config)
Initializes the content of the SOPC_S2OPC_Config. Calls both SOPC_ServerConfig_Initialize and SOPC_Cl...
struct SOPC_Client_ConfigFromPaths SOPC_Client_ConfigFromPaths
Client temporary configuration structure used to store client certificate / key / PKI configuration d...
void SOPC_ServerConfig_Clear(SOPC_Server_Config *config)
Clears the content of the SOPC_Server_Config.
void SOPC_ClientConfig_Initialize(SOPC_Client_Config *config)
Initializes the content of the SOPC_Client_Config.
#define SOPC_MAX_CLIENT_SECURE_CONNECTIONS_CONFIG
Definition sopc_user_app_itf.h:91
struct SOPC_S2OPC_Config SOPC_S2OPC_Config
S2OPC configuration.
struct SOPC_Session_UserName SOPC_Session_UserName
Client configuration structure used to store session activation data for a user name token type.
struct SOPC_SecurityPolicy SOPC_SecurityPolicy
Endpoint security policy configuration.
struct SOPC_Session_Config SOPC_Session_Config
Client configuration structure used to store session activation configuration data.
enum _SOPC_App_Com_Event SOPC_App_Com_Event
Client and Server communication events to be managed by applicative code.
Defines the user manager, the applicative interface used to authenticate users, and authorize read/wr...
Bytes buffer structure.
Definition sopc_buffer.h:38
Definition sopc_common_build_info.h:26
Definition app_cb_call_context_internal.h:28
Client temporary configuration structure used to store client certificate / key / PKI configuration d...
Definition sopc_user_app_itf.h:246
char * clientKeyPath
Definition sopc_user_app_itf.h:249
char * clientCertPath
Definition sopc_user_app_itf.h:247
bool clientKeyEncrypted
Definition sopc_user_app_itf.h:251
char * clientPkiPath
Definition sopc_user_app_itf.h:252
OPC UA client configuration structure.
Definition sopc_user_app_itf.h:259
uint16_t nbReverseEndpointURLs
Definition sopc_user_app_itf.h:287
uint16_t nbSecureConnections
Definition sopc_user_app_itf.h:282
SOPC_SecureConnection_Config * secureConnections[SOPC_MAX_CLIENT_SECURE_CONNECTIONS_CONFIG]
Definition sopc_user_app_itf.h:284
SOPC_PKIProvider * clientPKI
Definition sopc_user_app_itf.h:280
bool isConfigFromPathsNeeded
Definition sopc_user_app_itf.h:274
bool freeCstringsFlag
Definition sopc_user_app_itf.h:267
char * reverseEndpointURLs[SOPC_MAX_CLIENT_SECURE_CONNECTIONS_CONFIG]
Definition sopc_user_app_itf.h:288
SOPC_Client_ConfigFromPaths * configFromPaths
Definition sopc_user_app_itf.h:275
char ** clientLocaleIds
Definition sopc_user_app_itf.h:269
SOPC_KeyCertPair * clientKeyCertPair
Definition sopc_user_app_itf.h:279
OpcUa_ApplicationDescription clientDescription
Definition sopc_user_app_itf.h:261
Server configuration of a Endpoint connection listener.
Definition sopc_user_app_itf.h:140
SOPC_SecurityPolicy secuConfigurations[SOPC_MAX_SECU_POLICIES_CFG]
Definition sopc_user_app_itf.h:146
SOPC_Server_ClientToConnect clientsToConnect[SOPC_MAX_REVERSE_CLIENT_CONNECTIONS]
Definition sopc_user_app_itf.h:156
SOPC_Server_Config * serverConfigPtr
Definition sopc_user_app_itf.h:141
bool hasDiscoveryEndpoint
Definition sopc_user_app_itf.h:143
uint8_t nbSecuConfigs
Definition sopc_user_app_itf.h:144
bool noListening
Definition sopc_user_app_itf.h:153
char * endpointURL
Definition sopc_user_app_itf.h:142
uint16_t nbClientsToConnect
Definition sopc_user_app_itf.h:154
The SOPC_MethodCallManager object defines the common interface for the method manager.
Definition sopc_call_method_manager.h:114
This structure describes a basic NodeID in OPC UA.
Definition sopc_builtintypes.h:189
The PKIProvider object for the Public Key Infrastructure.
Definition sopc_pki_struct_lib_internal.h:39
S2OPC configuration.
Definition sopc_user_app_itf.h:372
SOPC_Server_Config serverConfig
Definition sopc_user_app_itf.h:373
SOPC_Client_Config clientConfig
Definition sopc_user_app_itf.h:374
Client configuration of a Secure Channel.
Definition sopc_user_app_itf.h:53
const char * reqSecuPolicyUri
Definition sopc_user_app_itf.h:72
const char * serverUri
Definition sopc_user_app_itf.h:63
const SOPC_Client_Config * clientConfigPtr
Definition sopc_user_app_itf.h:56
const char * url
Definition sopc_user_app_itf.h:67
OpcUa_MessageSecurityMode msgSecurityMode
Definition sopc_user_app_itf.h:74
uintptr_t internalProtocolData
Definition sopc_user_app_itf.h:76
uint8_t isClientSc
Definition sopc_user_app_itf.h:54
uint32_t requestedLifetime
Definition sopc_user_app_itf.h:73
const OpcUa_GetEndpointsResponse * expectedEndpoints
Definition sopc_user_app_itf.h:60
SOPC_CertHolder * peerAppCert
Definition sopc_user_app_itf.h:69
Structure representing a secure connection configuration (secure channel + session) which allow to es...
Definition sopc_user_app_itf.h:216
char * serverCertPath
Definition sopc_user_app_itf.h:223
SOPC_KeyCertPairUpdateCb * serverCertUpdateCb
Definition sopc_user_app_itf.h:225
uintptr_t serverCertUpdateParam
Definition sopc_user_app_itf.h:227
uint32_t secureChannelConfigIdx
Definition sopc_user_app_itf.h:235
const char * userDefinedId
Definition sopc_user_app_itf.h:217
SOPC_Session_Config sessionConfig
Definition sopc_user_app_itf.h:229
bool isServerCertFromPathNeeded
Definition sopc_user_app_itf.h:222
SOPC_SecureChannel_Config scConfig
Definition sopc_user_app_itf.h:219
uint32_t reverseEndpointConfigIdx
Definition sopc_user_app_itf.h:232
uint16_t secureConnectionIdx
Definition sopc_user_app_itf.h:231
bool finalized
Definition sopc_user_app_itf.h:237
const char * reverseURL
Definition sopc_user_app_itf.h:220
Endpoint security policy configuration.
Definition sopc_user_app_itf.h:102
uint16_t securityModes
Definition sopc_user_app_itf.h:104
uint8_t nbOfUserTokenPolicies
Definition sopc_user_app_itf.h:105
SOPC_String securityPolicy
Definition sopc_user_app_itf.h:103
OpcUa_UserTokenPolicy userTokenPolicies[SOPC_MAX_SECU_POLICIES_CFG]
Definition sopc_user_app_itf.h:107
OPC UA server client to reverse connect configuration type. From specification part 6 (v1....
Definition sopc_user_app_itf.h:130
char * clientEndpointURL
Definition sopc_user_app_itf.h:133
char * clientApplicationURI
Definition sopc_user_app_itf.h:131
OPC UA server configuration structure.
Definition sopc_user_app_itf.h:325
SOPC_Endpoint_Config * endpoints
Definition sopc_user_app_itf.h:344
char ** namespaces
Definition sopc_user_app_itf.h:328
char ** localeIds
Definition sopc_user_app_itf.h:331
char * serverCertPath
Definition sopc_user_app_itf.h:337
SOPC_CreateMI_NodeAvailFunc * nodeAvailFunc
Definition sopc_user_app_itf.h:354
SOPC_UserAuthorization_Manager * authorizationManager
Definition sopc_user_app_itf.h:362
SOPC_MethodCallManager * mcm
Definition sopc_user_app_itf.h:350
bool freeCstringsFlag
Definition sopc_user_app_itf.h:326
bool serverKeyEncrypted
Definition sopc_user_app_itf.h:341
SOPC_PKIProvider * pki
Definition sopc_user_app_itf.h:348
OpcUa_ApplicationDescription serverDescription
Definition sopc_user_app_itf.h:334
SOPC_Server_Event_Types * eventTypes
Definition sopc_user_app_itf.h:364
uint8_t nbEndpoints
Definition sopc_user_app_itf.h:343
char * serverPkiPath
Definition sopc_user_app_itf.h:342
char * serverKeyPath
Definition sopc_user_app_itf.h:339
SOPC_UserAuthentication_Manager * authenticationManager
Definition sopc_user_app_itf.h:360
SOPC_KeyCertPair * serverKeyCertPair
Definition sopc_user_app_itf.h:347
Client configuration structure used to store session activation configuration data.
Definition sopc_user_app_itf.h:200
OpcUa_UserTokenType userTokenType
Definition sopc_user_app_itf.h:202
const char * userPolicyId
Definition sopc_user_app_itf.h:201
SOPC_Session_UserName userName
Definition sopc_user_app_itf.h:205
SOPC_Session_UserX509 userX509
Definition sopc_user_app_itf.h:206
union SOPC_Session_Config::@1 userToken
Client configuration structure used to store session activation data for a user name token type.
Definition sopc_user_app_itf.h:191
char * userName
Definition sopc_user_app_itf.h:192
char * userPwd
Definition sopc_user_app_itf.h:193
Client temporary configuration structure used to store user X509 configuration data from paths....
Definition sopc_user_app_itf.h:165
bool userKeyEncrypted
Definition sopc_user_app_itf.h:169
char * userKeyPath
Definition sopc_user_app_itf.h:168
char * userCertPath
Definition sopc_user_app_itf.h:166
Client configuration structure used to store session activation data for an X509 user token type.
Definition sopc_user_app_itf.h:176
SOPC_Session_UserX509_ConfigFromPaths * configFromPaths
Definition sopc_user_app_itf.h:182
SOPC_SerializedCertificate * certX509
Definition sopc_user_app_itf.h:177
SOPC_SerializedAsymmetricKey * keyX509
Definition sopc_user_app_itf.h:178
bool isConfigFromPathNeeded
Definition sopc_user_app_itf.h:180
This structure provides string encapsulation.
Definition sopc_builtintypes.h:148
Definition sopc_user_manager.h:149
Definition sopc_user_manager.h:161
Definition sopc_types.h:893
Definition sopc_types.h:2434
Definition sopc_types.h:921