9#ifndef UA_PUBSUB_KEYSTORAGE
10#define UA_PUBSUB_KEYSTORAGE
22#ifdef UA_ENABLE_PUBSUB_SKS
27typedef struct UA_PubSubKeyListItem {
38} UA_PubSubKeyListItem;
41typedef TAILQ_HEAD(keyListItems, UA_PubSubKeyListItem) keyListItems;
44typedef struct UA_PubSubSKSConfig {
46 const char *endpointUrl;
47 UA_Server_sksPullRequestCallback userNotifyCallback;
53typedef struct UA_PubSubKeyStorage {
59 UA_PubSubSecurityPolicy *policy;
85 UA_PubSubKeyListItem *currentItem;
94 UA_PubSubSKSConfig sksConfig;
97 LIST_ENTRY(UA_PubSubKeyStorage) keyStorageList;
106UA_PubSubSecurityPolicy *
111UA_PubSubKeyStorage_delete(
UA_Server *server, UA_PubSubKeyStorage *keyStorage);
115UA_PubSubKeyStorage_init(
UA_Server *server, UA_PubSubKeyStorage *keyStorage,
117 UA_PubSubSecurityPolicy *policy,
122UA_PubSubKeyStorage_storeSecurityKeys(
UA_Server *server, UA_PubSubKeyStorage *keyStorage,
129UA_PubSubKeyStorage_getKeyByKeyID(
const UA_UInt32 keyId, UA_PubSubKeyStorage *keyStorage,
130 UA_PubSubKeyListItem **keyItem);
133UA_PubSubKeyListItem *
134UA_PubSubKeyStorage_push(UA_PubSubKeyStorage *keyStorage,
const UA_ByteString *key,
139UA_PubSubKeyStorage_addKeyRolloverCallback(
UA_Server *server,
140 UA_PubSubKeyStorage *keyStorage,
147UA_PubSubKeyStorage_activateKeyToChannelContext(
UA_Server *server,
const UA_NodeId pubSubGroupId,
152UA_PubSubKeyStorage_keyRolloverCallback(
UA_Server *server, UA_PubSubKeyStorage *keyStorage);
156UA_PubSubKeyStorage_update(
UA_Server *server, UA_PubSubKeyStorage *keyStorage,
165UA_PubSubKeyStorage_detachKeyStorage(
UA_Server *server, UA_PubSubKeyStorage *keyStorage);
169getSecurityKeysAndStoreFetchedKeys(
UA_Server *server, UA_PubSubKeyStorage *keyStorage);
void(* UA_ServerCallback)(UA_Server *server, void *data)
struct UA_Server UA_Server
#define _UA_BEGIN_DECLS
#undef UA_DEBUG_DUMP_PKGS
#define TAILQ_HEAD(name, type)
#define TAILQ_ENTRY(type)
UA_Double UA_Duration
Duration.