anjay
All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
security.h
Go to the documentation of this file.
1/*
2 * Copyright 2017-2025 AVSystem <avsystem@avsystem.com>
3 * AVSystem Anjay LwM2M SDK
4 * All rights reserved.
5 *
6 * Licensed under AVSystem Anjay LwM2M Client SDK - Non-Commercial License.
7 * See the attached LICENSE file for details.
8 */
9
10#ifndef ANJAY_INCLUDE_ANJAY_SECURITY_H
11#define ANJAY_INCLUDE_ANJAY_SECURITY_H
12
13#include <anjay/dm.h>
14
15#include <avsystem/commons/avs_stream.h>
16
17#ifdef __cplusplus
18extern "C" {
19#endif
20
21typedef struct {
25 const char *server_uri;
41 const uint8_t *server_public_key;
43#ifdef ANJAY_WITH_SMS
47 const uint8_t *sms_key_parameters;
50 const uint8_t *sms_secret_key;
53 const char *server_sms_number;
54#endif // ANJAY_WITH_SMS
55#ifdef ANJAY_WITH_LWM2M11
57 const uint8_t *matching_type;
61 const uint8_t *certificate_usage;
65 avs_net_socket_tls_ciphersuites_t ciphersuites;
66# ifdef ANJAY_WITH_COAP_OSCORE
69# endif // ANJAY_WITH_COAP_OSCORE
70#endif // ANJAY_WITH_LWM2M11
71#ifdef ANJAY_WITH_SECURITY_STRUCTURED
78 avs_crypto_certificate_chain_info_t public_cert;
85 avs_crypto_private_key_info_t private_key;
91 avs_crypto_psk_identity_info_t psk_identity;
97 avs_crypto_psk_key_info_t psk_key;
98# ifdef ANJAY_WITH_SMS
104 avs_crypto_psk_identity_info_t sms_psk_identity;
110 avs_crypto_psk_key_info_t sms_psk_key;
111# endif // ANJAY_WITH_SMS
112#endif // ANJAY_WITH_SECURITY_STRUCTURED
114
138 anjay_t *anjay,
139 const anjay_security_instance_t *instance,
140 anjay_iid_t *inout_iid);
141
148
157 avs_stream_t *out_stream);
158
170 avs_stream_t *in_stream);
171
178
190
191#ifdef ANJAY_WITH_MODULE_SECURITY_ENGINE_SUPPORT
229 anjay_ssid_t ssid,
230 const void *data,
231 size_t data_size,
232 void *arg);
233
350
382 anjay_t *anjay, const anjay_security_hsm_configuration_t *hsm_config);
383
409#endif // ANJAY_WITH_MODULE_SECURITY_ENGINE_SUPPORT
410
411#ifdef __cplusplus
412}
413#endif
414
415#endif /* ANJAY_INCLUDE_ANJAY_SECURITY_H */
uint16_t anjay_iid_t
Definition core.h:1326
struct anjay_struct anjay_t
Definition core.h:49
uint16_t anjay_ssid_t
Definition core.h:35
anjay_sms_security_mode_t
Definition dm.h:1194
anjay_security_mode_t
Definition dm.h:1181
bool anjay_security_object_is_modified(anjay_t *anjay)
const char * anjay_security_hsm_query_cb_t(anjay_iid_t iid, anjay_ssid_t ssid, const void *data, size_t data_size, void *arg)
Definition security.h:228
int anjay_security_object_install(anjay_t *anjay)
void anjay_security_mark_hsm_permanent(anjay_t *anjay, anjay_ssid_t ssid)
avs_error_t anjay_security_object_restore(anjay_t *anjay, avs_stream_t *in_stream)
avs_error_t anjay_security_object_persist(anjay_t *anjay, avs_stream_t *out_stream)
void anjay_security_object_purge(anjay_t *anjay)
int anjay_security_object_install_with_hsm(anjay_t *anjay, const anjay_security_hsm_configuration_t *hsm_config)
int anjay_security_object_add_instance(anjay_t *anjay, const anjay_security_instance_t *instance, anjay_iid_t *inout_iid)
Definition security.h:239
anjay_security_hsm_query_cb_t * psk_key_cb
Definition security.h:303
void * sms_psk_key_cb_arg
Definition security.h:347
anjay_security_hsm_query_cb_t * psk_identity_cb
Definition security.h:285
anjay_security_hsm_query_cb_t * private_key_cb
Definition security.h:266
anjay_security_hsm_query_cb_t * sms_psk_key_cb
Definition security.h:339
anjay_security_hsm_query_cb_t * sms_psk_identity_cb
Definition security.h:321
void * public_cert_cb_arg
Definition security.h:256
void * private_key_cb_arg
Definition security.h:274
void * psk_identity_cb_arg
Definition security.h:293
void * sms_psk_identity_cb_arg
Definition security.h:329
void * psk_key_cb_arg
Definition security.h:311
anjay_security_hsm_query_cb_t * public_cert_cb
Definition security.h:248
Definition security.h:21
size_t sms_secret_key_size
Definition security.h:51
anjay_security_mode_t security_mode
Definition security.h:29
const uint8_t * sms_key_parameters
Definition security.h:47
anjay_sms_security_mode_t sms_security_mode
Definition security.h:45
avs_crypto_psk_key_info_t sms_psk_key
Definition security.h:110
const uint8_t * server_public_key
Definition security.h:41
int32_t bootstrap_timeout_s
Definition security.h:33
size_t server_public_key_size
Definition security.h:42
size_t sms_key_parameters_size
Definition security.h:48
anjay_ssid_t ssid
Definition security.h:23
avs_crypto_psk_key_info_t psk_key
Definition security.h:97
avs_crypto_psk_identity_info_t psk_identity
Definition security.h:91
const uint8_t * private_cert_or_psk_key
Definition security.h:38
const anjay_iid_t * oscore_iid
Definition security.h:68
size_t private_cert_or_psk_key_size
Definition security.h:39
size_t public_cert_or_psk_identity_size
Definition security.h:36
bool bootstrap_server
Definition security.h:27
const char * server_name_indication
Definition security.h:59
const uint8_t * sms_secret_key
Definition security.h:50
int32_t client_holdoff_s
Definition security.h:31
avs_net_socket_tls_ciphersuites_t ciphersuites
Definition security.h:65
avs_crypto_psk_identity_info_t sms_psk_identity
Definition security.h:104
const char * server_uri
Definition security.h:25
const uint8_t * certificate_usage
Definition security.h:61
avs_crypto_private_key_info_t private_key
Definition security.h:85
avs_crypto_certificate_chain_info_t public_cert
Definition security.h:78
const char * server_sms_number
Definition security.h:53
const uint8_t * public_cert_or_psk_identity
Definition security.h:35
const uint8_t * matching_type
Definition security.h:57