36#ifndef LWM2M_SECURITY_H
37#define LWM2M_SECURITY_H
39#define LWM2M_SECURITY_SERVER_URI_ID 0
40#define LWM2M_SECURITY_BOOTSTRAP_SERVER_ID 1
41#define LWM2M_SECURITY_MODE_ID 2
42#define LWM2M_SECURITY_CLIENT_PKI_ID 3
43#define LWM2M_SECURITY_SERVER_PKI_ID 4
44#define LWM2M_SECURITY_KEY_ID 5
45#define LWM2M_SECURITY_SHORT_SERVER_ID 10
48#define LWM2M_SECURITY_MODE_PSK 0
50#define LWM2M_SECURITY_MODE_RPK 1
52#define LWM2M_SECURITY_MODE_CERTIFICATE 2
54#define LWM2M_SECURITY_MODE_NOSEC 3
56#ifdef LWM2M_SECURITY_CONF_URI_SIZE
57#define LWM2M_SECURITY_URI_SIZE LWM2M_SECURITY_CONF_URI_SIZE
59#define LWM2M_SECURITY_URI_SIZE 64
62#ifdef LWM2M_SECURITY_CONF_KEY_SIZE
63#define LWM2M_SECURITY_KEY_SIZE LWM2M_SECURITY_CONF_KEY_SIZE
65#define LWM2M_SECURITY_KEY_SIZE 32
69 lwm2m_object_instance_t instance;
72 uint8_t security_mode;
73 uint8_t server_uri[LWM2M_SECURITY_URI_SIZE];
74 uint8_t server_uri_len;
75 uint8_t public_key[LWM2M_SECURITY_KEY_SIZE];
76 uint8_t public_key_len;
77 uint8_t secret_key[LWM2M_SECURITY_KEY_SIZE];
78 uint8_t secret_key_len;
79 uint8_t server_public_key[LWM2M_SECURITY_KEY_SIZE];
80 uint8_t server_public_key_len;
81} lwm2m_security_server_t;
83lwm2m_security_server_t *lwm2m_security_get_first(
void);
84lwm2m_security_server_t *lwm2m_security_get_next(lwm2m_security_server_t *last);
86lwm2m_security_server_t *lwm2m_security_add_server(uint16_t instance_id,
88 const uint8_t *server_uri,
89 uint8_t server_uri_len);
91int lwm2m_security_set_server_psk(lwm2m_security_server_t *server,
92 const uint8_t *identity,
97void lwm2m_security_init(
void);