S2OPC OPCUA Toolkit
Loading...
Searching...
No Matches
sopc_sk_provider.h File Reference

Security Keys Provider: source providing the keys for SKS. More...

#include <stdbool.h>
#include <stdint.h>
#include "sopc_builtintypes.h"
#include "sopc_enums.h"

Go to the source code of this file.

Data Structures

struct  SOPC_SKProvider
 Security Keys Provider structure. More...
 

Typedefs

typedef struct SOPC_SKProvider SOPC_SKProvider
 
typedef SOPC_ReturnStatus(* SOPC_SKProvider_GetKeys_Func) (SOPC_SKProvider *skp, uint32_t StartingTokenId, uint32_t NbRequestedToken, SOPC_String **SecurityPolicyUri, uint32_t *FirstTokenId, SOPC_ByteString **Keys, uint32_t *NbKeys, uint32_t *TimeToNextKey, uint32_t *KeyLifetime)
 
typedef void(* SOPC_SKProvider_Clear_Func) (void *data)
 

Functions

SOPC_SKProviderSOPC_SKProvider_TryList_Create (SOPC_SKProvider **providers, uint32_t nbProviders)
 Creates an instance of SOPC_SKProvider which call sequentially all provider of a list until one returns valid Keys.
 
SOPC_SKProviderSOPC_SKProvider_RandomPubSub_Create (uint32_t maxKeys)
 Creates an instance of SOPC_SKProvider which return random Keys for PubSub Policy.
 
SOPC_ReturnStatus SOPC_SKProvider_GetKeys (SOPC_SKProvider *skp, uint32_t StartingTokenId, uint32_t NbRequestedToken, SOPC_String **SecurityPolicyUri, uint32_t *FirstTokenId, SOPC_ByteString **Keys, uint32_t *NbKeys, uint32_t *TimeToNextKey, uint32_t *KeyLifetime)
 Gets Keys of a Security Keys Provider for a given security group. All returned data are copied by this function. The caller is responsible for deleting these data. Output parameters may be NULL exept Keys and NbKeys.
 
void SOPC_SKProvider_Clear (SOPC_SKProvider *skp)
 Deallocates Security Keys Provider data bytes content.
 

Detailed Description

Security Keys Provider: source providing the keys for SKS.

Note
Keys might be generated locally in case of SKS server side or might be retrieved from an external source for a SKS "client". Only the local keys generation function is provided.

Typedef Documentation

◆ SOPC_SKProvider

typedef struct SOPC_SKProvider SOPC_SKProvider

◆ SOPC_SKProvider_GetKeys_Func

typedef SOPC_ReturnStatus(* SOPC_SKProvider_GetKeys_Func) (SOPC_SKProvider *skp, uint32_t StartingTokenId, uint32_t NbRequestedToken, SOPC_String **SecurityPolicyUri, uint32_t *FirstTokenId, SOPC_ByteString **Keys, uint32_t *NbKeys, uint32_t *TimeToNextKey, uint32_t *KeyLifetime)

◆ SOPC_SKProvider_Clear_Func

typedef void(* SOPC_SKProvider_Clear_Func) (void *data)

Function Documentation

◆ SOPC_SKProvider_TryList_Create()

SOPC_SKProvider * SOPC_SKProvider_TryList_Create ( SOPC_SKProvider ** providers,
uint32_t nbProviders )

Creates an instance of SOPC_SKProvider which call sequentially all provider of a list until one returns valid Keys.

Parameters
providersA valid pointer of SOPC_SKProvider array. Should not be NULL
nbProvidersThe number of element of the the given array. Should not be 0
Returns
a SOPC_SKProvider object or NULL if not enough memory

◆ SOPC_SKProvider_RandomPubSub_Create()

SOPC_SKProvider * SOPC_SKProvider_RandomPubSub_Create ( uint32_t maxKeys)

Creates an instance of SOPC_SKProvider which return random Keys for PubSub Policy.

Parameters
maxKeysMaximum number of Keys returned by SOPC_SKProvider_GetKeys()
Returns
a SOPC_SKProvider object or NULL if not enough memory

◆ SOPC_SKProvider_GetKeys()

SOPC_ReturnStatus SOPC_SKProvider_GetKeys ( SOPC_SKProvider * skp,
uint32_t StartingTokenId,
uint32_t NbRequestedToken,
SOPC_String ** SecurityPolicyUri,
uint32_t * FirstTokenId,
SOPC_ByteString ** Keys,
uint32_t * NbKeys,
uint32_t * TimeToNextKey,
uint32_t * KeyLifetime )

Gets Keys of a Security Keys Provider for a given security group. All returned data are copied by this function. The caller is responsible for deleting these data. Output parameters may be NULL exept Keys and NbKeys.

Parameters
skpPointer to Security Keys Provider. Input parameter. Should not be NULL
StartingTokenIdThe current token is requested by passing 0. It can be a SecurityTokenId from the past to get a key valid for previously sent messages
NbRequestedTokenThe number of requested keys tokens which should be returned in the response
SecurityPolicyUriThe URI for the set of algorithms and key lengths used to secure the messages
FirstTokenIdThe SecurityTokenId of the first key in the array of returned keys.
KeysAn ordered list of keys that are used when the KeyLifetime elapses
NbKeysThe number of keys tokens in Keys array
TimeToNextKeyThe time, in milliseconds, before the CurrentKey is expected to expire
KeyLifetimeThe lifetime of a key in milliseconds
Returns
SOPC_STATUS_OK if keys are set

◆ SOPC_SKProvider_Clear()

void SOPC_SKProvider_Clear ( SOPC_SKProvider * skp)

Deallocates Security Keys Provider data bytes content.

Parameters
skpPointer to Security Keys Provider. Should not be NULL