libcoap  4.3.0beta
coap_dtls.h
Go to the documentation of this file.
1 /*
2  * coap_dtls.h -- (Datagram) Transport Layer Support for libcoap
3  *
4  * Copyright (C) 2016 Olaf Bergmann <bergmann@tzi.org>
5  * Copyright (C) 2017 Jean-Claude Michelou <jcm@spinetix.com>
6  *
7  * This file is part of the CoAP library libcoap. Please see README for terms
8  * of use.
9  */
10 
11 #ifndef COAP_DTLS_H_
12 #define COAP_DTLS_H_
13 
14 #include "coap_time.h"
15 #include "str.h"
16 
23 #ifndef COAP_DTLS_HINT_LENGTH
24 #define COAP_DTLS_HINT_LENGTH 128
25 #endif
26 
27 /* https://tools.ietf.org/html/rfc6347#section-4.2.4.1 */
28 #ifndef COAP_DTLS_RETRANSMIT_MS
29 #define COAP_DTLS_RETRANSMIT_MS 1000
30 #endif
31 #ifndef COAP_DTLS_RETRANSMIT_TOTAL_MS
32 #define COAP_DTLS_RETRANSMIT_TOTAL_MS 60000
33 #endif
34 
35 #define COAP_DTLS_RETRANSMIT_COAP_TICKS (COAP_DTLS_RETRANSMIT_MS * COAP_TICKS_PER_SECOND / 1000)
36 
37 #define COAP_DTLS_RPK_CERT_CN "RPK"
38 
44 int coap_dtls_is_supported(void);
45 
51 int coap_tls_is_supported(void);
52 
53 typedef enum coap_tls_library_t {
60 
65 typedef struct coap_tls_version_t {
66  uint64_t version;
68  uint64_t built_version;
70 
77 
93 typedef int (*coap_dtls_security_setup_t)(void* tls_session,
94  struct coap_dtls_pki_t *setup_data);
95 
116 typedef int (*coap_dtls_cn_callback_t)(const char *cn,
117  const uint8_t *asn1_public_cert,
118  size_t asn1_length,
119  struct coap_session_t *coap_session,
120  unsigned int depth,
121  int validated,
122  void *arg);
123 
145 
149 typedef enum coap_pki_key_t {
155 
159 typedef struct coap_pki_key_pem_t {
160  const char *ca_file;
161  const char *public_cert;
162  const char *private_key;
164 
174 typedef struct coap_pki_key_pem_buf_t {
175  const uint8_t *ca_cert;
180  size_t ca_cert_len;
184 
188 typedef struct coap_pki_key_asn1_t {
189  const uint8_t *ca_cert;
192  size_t ca_cert_len;
197 
201 typedef struct coap_pki_key_pkcs11_t {
202  const char *ca;
203  const char *public_cert;
204  const char *private_key;
205  const char *user_pin;
209 
213 typedef struct coap_dtls_key_t {
215  union {
220  } key;
222 
236 typedef coap_dtls_key_t *(*coap_dtls_pki_sni_callback_t)(const char *sni,
237  void* arg);
238 
239 
240 #define COAP_DTLS_PKI_SETUP_VERSION 1
245 typedef struct coap_dtls_pki_t {
249  /* Options to enable different TLS functionality in libcoap */
268  /* Size of 3 chosen to align to next
269  * parameter, so if newly defined option
270  * it can use one of the reserverd slot so
271  * no need to change
272  * COAP_DTLS_PKI_SETUP_VERSION and just
273  * decrement the reserved[] count.
274  */
275 
297 
298  char* client_sni;
304 
308 typedef struct coap_dtls_cpsk_info_t {
312 
329 typedef const coap_dtls_cpsk_info_t *(*coap_dtls_ih_callback_t)(
330  struct coap_str_const_t *hint,
331  struct coap_session_t *coap_session,
332  void *arg);
333 
334 #define COAP_DTLS_CPSK_SETUP_VERSION 1
339 typedef struct coap_dtls_cpsk_t {
343  /* Options to enable different TLS functionality in libcoap */
346  /* Size of 7 chosen to align to next
347  * parameter, so if newly defined option
348  * it can use one of the reserverd slot so
349  * no need to change
350  * COAP_DTLS_CPSK_SETUP_VERSION and just
351  * decrement the reserved[] count.
352  */
353 
363  char* client_sni;
370 
375 typedef struct coap_dtls_spsk_info_t {
379 
380 
398 typedef const coap_bin_const_t *(*coap_dtls_id_callback_t)(
399  struct coap_bin_const_t *identity,
400  struct coap_session_t *coap_session,
401  void *arg);
416 typedef const coap_dtls_spsk_info_t *(*coap_dtls_psk_sni_callback_t)(
417  const char *sni,
418  struct coap_session_t *coap_session,
419  void *arg);
420 
421 #define COAP_DTLS_SPSK_SETUP_VERSION 1
426 typedef struct coap_dtls_spsk_t {
430  /* Options to enable different TLS functionality in libcoap */
433  /* Size of 7 chosen to align to next
434  * parameter, so if newly defined option
435  * it can use one of the reserverd slot so
436  * no need to change
437  * COAP_DTLS_SPSK_SETUP_VERSION and just
438  * decrement the reserved[] count.
439  */
440 
458 
459 
478 void *
479 coap_dtls_new_context(struct coap_context_t *coap_context);
480 
481 typedef enum coap_dtls_role_t {
485 
499 int
501  coap_dtls_spsk_t *setup_data);
502 
516 int
518  coap_dtls_cpsk_t *setup_data);
519 
539 int
541  const coap_dtls_pki_t *setup_data,
542  const coap_dtls_role_t role);
543 
558 int
560  const char *ca_file,
561  const char *ca_dir);
562 
575 
583 void coap_dtls_free_context(void *dtls_context);
584 
595 void *coap_dtls_new_client_session(struct coap_session_t *coap_session);
596 
610 void *coap_dtls_new_server_session(struct coap_session_t *coap_session);
611 
620 void coap_dtls_free_session(struct coap_session_t *coap_session);
621 
630 void coap_dtls_session_update_mtu(struct coap_session_t *coap_session);
631 
644 int coap_dtls_send(struct coap_session_t *coap_session,
645  const uint8_t *data,
646  size_t data_len);
647 
657 
668 
680  coap_tick_t now);
681 
689 void coap_dtls_handle_timeout(struct coap_session_t *coap_session);
690 
703 int coap_dtls_receive(struct coap_session_t *coap_session,
704  const uint8_t *data,
705  size_t data_len);
706 
721 int coap_dtls_hello(struct coap_session_t *coap_session,
722  const uint8_t *data,
723  size_t data_len);
724 
734 unsigned int coap_dtls_get_overhead(struct coap_session_t *coap_session);
735 
748 void *coap_tls_new_client_session(struct coap_session_t *coap_session, int *connected);
749 
762 void *coap_tls_new_server_session(struct coap_session_t *coap_session, int *connected);
763 
772 void coap_tls_free_session( struct coap_session_t *coap_session );
773 
786 ssize_t coap_tls_write(struct coap_session_t *coap_session,
787  const uint8_t *data,
788  size_t data_len
789  );
790 
803 ssize_t coap_tls_read(struct coap_session_t *coap_session,
804  uint8_t *data,
805  size_t data_len
806  );
807 
814 void coap_dtls_startup(void);
815 
822 void coap_dtls_shutdown(void);
823 
833 void coap_dtls_set_log_level(int level);
834 
841 int coap_dtls_get_log_level(void);
842 
843 
844 #endif /* COAP_DTLS_H */
Clock Handling.
uint64_t coap_tick_t
This data type represents internal timer ticks with COAP_TICKS_PER_SECOND resolution.
Definition: coap_time.h:120
unsigned int coap_dtls_get_overhead(struct coap_session_t *coap_session)
Get DTLS overhead over cleartext PDUs.
coap_tick_t coap_dtls_get_context_timeout(void *dtls_context)
Do all pending retransmits and get next timeout.
void coap_dtls_startup(void)
Initialize the underlying (D)TLS Library layer.
Definition: coap_notls.c:76
int coap_dtls_receive(struct coap_session_t *coap_session, const uint8_t *data, size_t data_len)
Handling incoming data from a DTLS peer.
void * coap_dtls_new_client_session(struct coap_session_t *coap_session)
Create a new client-side session.
coap_dtls_role_t
Definition: coap_dtls.h:481
void * coap_dtls_new_server_session(struct coap_session_t *coap_session)
Create a new DTLS server-side session.
void coap_dtls_free_session(struct coap_session_t *coap_session)
Terminates the DTLS session (may send an ALERT if necessary) then frees the underlying TLS library ob...
void coap_dtls_handle_timeout(struct coap_session_t *coap_session)
Handle a DTLS timeout expiration.
void * coap_tls_new_client_session(struct coap_session_t *coap_session, int *connected)
Create a new TLS client-side session.
ssize_t coap_tls_write(struct coap_session_t *coap_session, const uint8_t *data, size_t data_len)
Send data to a TLS peer, with implicit flush.
coap_tick_t coap_dtls_get_timeout(struct coap_session_t *coap_session, coap_tick_t now)
Get next timeout for this session.
void * coap_tls_new_server_session(struct coap_session_t *coap_session, int *connected)
Create a TLS new server-side session.
ssize_t coap_tls_read(struct coap_session_t *coap_session, uint8_t *data, size_t data_len)
Read some data from a TLS peer.
int coap_dtls_is_context_timeout(void)
Check if timeout is handled per CoAP session or per CoAP context.
Definition: coap_notls.c:123
void coap_tls_free_session(struct coap_session_t *coap_session)
Terminates the TLS session (may send an ALERT if necessary) then frees the underlying TLS library obj...
int coap_dtls_send(struct coap_session_t *coap_session, const uint8_t *data, size_t data_len)
Send data to a DTLS peer.
int coap_dtls_context_set_pki_root_cas(struct coap_context_t *coap_context, const char *ca_file, const char *ca_dir)
Set the dtls context's default Root CA information for a client or server.
int coap_dtls_context_set_spsk(struct coap_context_t *coap_context, coap_dtls_spsk_t *setup_data)
Set the DTLS context's default server PSK information.
void coap_dtls_shutdown(void)
Close down the underlying (D)TLS Library layer.
Definition: coap_notls.c:79
int coap_dtls_hello(struct coap_session_t *coap_session, const uint8_t *data, size_t data_len)
Handling client HELLO messages from a new candiate peer.
int coap_dtls_context_check_keys_enabled(struct coap_context_t *coap_context)
Check whether one of the coap_dtls_context_set_{psk|pki}() functions have been called.
int coap_dtls_context_set_cpsk(struct coap_context_t *coap_context, coap_dtls_cpsk_t *setup_data)
Set the DTLS context's default client PSK information.
void coap_dtls_session_update_mtu(struct coap_session_t *coap_session)
Notify of a change in the CoAP session's MTU, for example after a PMTU update.
void * coap_dtls_new_context(struct coap_context_t *coap_context)
Creates a new DTLS context for the given coap_context.
void coap_dtls_free_context(void *dtls_context)
Releases the storage allocated for dtls_context.
int coap_dtls_context_set_pki(struct coap_context_t *coap_context, const coap_dtls_pki_t *setup_data, const coap_dtls_role_t role)
Set the DTLS context's default server PKI information.
@ COAP_DTLS_ROLE_SERVER
Internal function invoked for server.
Definition: coap_dtls.h:483
@ COAP_DTLS_ROLE_CLIENT
Internal function invoked for client.
Definition: coap_dtls.h:482
coap_dtls_key_t *(* coap_dtls_pki_sni_callback_t)(const char *sni, void *arg)
Server Name Indication (SNI) Validation callback that can be set up by coap_context_set_pki().
Definition: coap_dtls.h:236
struct coap_dtls_cpsk_info_t coap_dtls_cpsk_info_t
The structure that holds the Client PSK information.
const coap_dtls_spsk_info_t *(* coap_dtls_psk_sni_callback_t)(const char *sni, struct coap_session_t *coap_session, void *arg)
PSK SNI callback that can be set up by coap_context_set_psk2().
Definition: coap_dtls.h:416
struct coap_dtls_key_t coap_dtls_key_t
The structure that holds the PKI key information.
struct coap_dtls_spsk_t coap_dtls_spsk_t
The structure used for defining the Server PSK setup data to be used.
const coap_dtls_cpsk_info_t *(* coap_dtls_ih_callback_t)(struct coap_str_const_t *hint, struct coap_session_t *coap_session, void *arg)
Identity Hint Validation callback that can be set up by coap_new_client_session_psk2().
Definition: coap_dtls.h:329
struct coap_dtls_cpsk_t coap_dtls_cpsk_t
The structure used for defining the Client PSK setup data to be used.
struct coap_pki_key_pkcs11_t coap_pki_key_pkcs11_t
The structure that holds the PKI PKCS11 definitions.
int coap_tls_is_supported(void)
Check whether TLS is available.
Definition: coap_notls.c:26
struct coap_tls_version_t coap_tls_version_t
The structure used for returning the underlying (D)TLS library information.
struct coap_pki_key_pem_t coap_pki_key_pem_t
The structure that holds the PKI PEM definitions.
coap_pki_key_t
The enum used for determining the PKI key formats.
Definition: coap_dtls.h:149
coap_tls_version_t * coap_get_tls_library_version(void)
Determine the type and version of the underlying (D)TLS library.
Definition: coap_notls.c:31
struct coap_dtls_spsk_info_t coap_dtls_spsk_info_t
The structure that holds the Server Pre-Shared Key and Identity Hint information.
int coap_dtls_is_supported(void)
Check whether DTLS is available.
struct coap_pki_key_asn1_t coap_pki_key_asn1_t
The structure that holds the PKI ASN.1 (DER) definitions.
int(* coap_dtls_security_setup_t)(void *tls_session, struct coap_dtls_pki_t *setup_data)
Additional Security setup handler that can be set up by coap_context_set_pki().
Definition: coap_dtls.h:93
struct coap_pki_key_pem_buf_t coap_pki_key_pem_buf_t
The structure that holds the PKI PEM buffer definitions.
coap_asn1_privatekey_type_t
The enum used for determining the provided PKI ASN.1 (DER) Private Key formats.
Definition: coap_dtls.h:128
coap_tls_library_t
Definition: coap_dtls.h:53
struct coap_dtls_pki_t coap_dtls_pki_t
The structure used for defining the PKI setup data to be used.
const coap_bin_const_t *(* coap_dtls_id_callback_t)(struct coap_bin_const_t *identity, struct coap_session_t *coap_session, void *arg)
Identity Validation callback that can be set up by coap_context_set_psk2().
Definition: coap_dtls.h:398
int(* coap_dtls_cn_callback_t)(const char *cn, const uint8_t *asn1_public_cert, size_t asn1_length, struct coap_session_t *coap_session, unsigned int depth, int validated, void *arg)
CN Validation callback that can be set up by coap_context_set_pki().
Definition: coap_dtls.h:116
@ COAP_PKI_KEY_PKCS11
The PKI key type is PKCS11 (DER)
Definition: coap_dtls.h:153
@ COAP_PKI_KEY_PEM_BUF
The PKI key type is PEM buffer.
Definition: coap_dtls.h:152
@ COAP_PKI_KEY_PEM
The PKI key type is PEM file.
Definition: coap_dtls.h:150
@ COAP_PKI_KEY_ASN1
The PKI key type is ASN.1 (DER) buffer.
Definition: coap_dtls.h:151
@ COAP_ASN1_PKEY_DH
DH type.
Definition: coap_dtls.h:137
@ COAP_ASN1_PKEY_NONE
NONE.
Definition: coap_dtls.h:129
@ COAP_ASN1_PKEY_TLS1_PRF
TLS1_PRF type.
Definition: coap_dtls.h:142
@ COAP_ASN1_PKEY_RSA2
RSA2 type.
Definition: coap_dtls.h:131
@ COAP_ASN1_PKEY_DSA
DSA type.
Definition: coap_dtls.h:132
@ COAP_ASN1_PKEY_DHX
DHX type.
Definition: coap_dtls.h:138
@ COAP_ASN1_PKEY_DSA4
DSA4 type.
Definition: coap_dtls.h:136
@ COAP_ASN1_PKEY_DSA2
DSA2 type.
Definition: coap_dtls.h:134
@ COAP_ASN1_PKEY_RSA
RSA type.
Definition: coap_dtls.h:130
@ COAP_ASN1_PKEY_DSA1
DSA1 type.
Definition: coap_dtls.h:133
@ COAP_ASN1_PKEY_HKDF
HKDF type.
Definition: coap_dtls.h:143
@ COAP_ASN1_PKEY_EC
EC type.
Definition: coap_dtls.h:139
@ COAP_ASN1_PKEY_DSA3
DSA3 type.
Definition: coap_dtls.h:135
@ COAP_ASN1_PKEY_HMAC
HMAC type.
Definition: coap_dtls.h:140
@ COAP_ASN1_PKEY_CMAC
CMAC type.
Definition: coap_dtls.h:141
@ COAP_TLS_LIBRARY_GNUTLS
Using GnuTLS library.
Definition: coap_dtls.h:57
@ COAP_TLS_LIBRARY_TINYDTLS
Using TinyDTLS library.
Definition: coap_dtls.h:55
@ COAP_TLS_LIBRARY_NOTLS
No DTLS library.
Definition: coap_dtls.h:54
@ COAP_TLS_LIBRARY_OPENSSL
Using OpenSSL library.
Definition: coap_dtls.h:56
@ COAP_TLS_LIBRARY_MBEDTLS
Using MbedTLS library.
Definition: coap_dtls.h:58
void coap_dtls_set_log_level(int level)
Sets the (D)TLS logging level to the specified level.
int coap_dtls_get_log_level(void)
Get the current (D)TLS logging.
CoAP binary data definition with const data.
Definition: str.h:56
The CoAP stack's global state is stored in a coap_context_t object.
Definition: net.h:141
The structure that holds the Client PSK information.
Definition: coap_dtls.h:308
coap_bin_const_t key
Definition: coap_dtls.h:310
coap_bin_const_t identity
Definition: coap_dtls.h:309
The structure used for defining the Client PSK setup data to be used.
Definition: coap_dtls.h:339
uint8_t version
Definition: coap_dtls.h:340
void * ih_call_back_arg
Passed in to the Identity Hint callback function.
Definition: coap_dtls.h:360
char * client_sni
If not NULL, SNI to use in client TLS setup.
Definition: coap_dtls.h:363
coap_dtls_ih_callback_t validate_ih_call_back
Identity Hint check callback function.
Definition: coap_dtls.h:359
coap_dtls_cpsk_info_t psk_info
Client PSK definition.
Definition: coap_dtls.h:368
uint8_t reserved[7]
Set to COAP_DTLS_CPSK_SETUP_VERSION to support this version of the struct.
Definition: coap_dtls.h:344
The structure that holds the PKI key information.
Definition: coap_dtls.h:213
coap_pki_key_pem_t pem
for PEM file keys
Definition: coap_dtls.h:216
coap_pki_key_pkcs11_t pkcs11
for PKCS11 keys
Definition: coap_dtls.h:219
union coap_dtls_key_t::@1 key
coap_pki_key_pem_buf_t pem_buf
for PEM memory keys
Definition: coap_dtls.h:217
coap_pki_key_t key_type
key format type
Definition: coap_dtls.h:214
coap_pki_key_asn1_t asn1
for ASN.1 (DER) memory keys
Definition: coap_dtls.h:218
The structure used for defining the PKI setup data to be used.
Definition: coap_dtls.h:245
uint8_t allow_no_crl
1 ignore if CRL not there
Definition: coap_dtls.h:259
void * cn_call_back_arg
Passed in to the CN callback function.
Definition: coap_dtls.h:281
uint8_t allow_short_rsa_length
1 if small RSA keysizes are allowed
Definition: coap_dtls.h:262
uint8_t cert_chain_validation
1 if to check cert_chain_verify_depth
Definition: coap_dtls.h:256
uint8_t allow_bad_md_hash
1 if unsupported MD hashes are allowed
Definition: coap_dtls.h:261
uint8_t version
Definition: coap_dtls.h:246
uint8_t check_cert_revocation
1 if revocation checks wanted
Definition: coap_dtls.h:258
coap_dtls_pki_sni_callback_t validate_sni_call_back
SNI check callback function.
Definition: coap_dtls.h:288
uint8_t cert_chain_verify_depth
recommended depth is 3
Definition: coap_dtls.h:257
uint8_t reserved[3]
Reserved - must be set to 0 for future compatibility.
Definition: coap_dtls.h:266
coap_dtls_security_setup_t additional_tls_setup_call_back
Additional Security callback handler that is invoked when libcoap has done the standard,...
Definition: coap_dtls.h:296
uint8_t allow_expired_certs
1 if expired certs are allowed
Definition: coap_dtls.h:255
uint8_t verify_peer_cert
Set to COAP_DTLS_PKI_SETUP_VERSION to support this version of the struct.
Definition: coap_dtls.h:250
char * client_sni
If not NULL, SNI to use in client TLS setup.
Definition: coap_dtls.h:298
uint8_t allow_self_signed
1 if self-signed certs are allowed.
Definition: coap_dtls.h:253
void * sni_call_back_arg
Passed in to the sni callback function.
Definition: coap_dtls.h:289
coap_dtls_cn_callback_t validate_cn_call_back
CN check callback function.
Definition: coap_dtls.h:280
uint8_t allow_expired_crl
1 if expired crl is allowed
Definition: coap_dtls.h:260
uint8_t is_rpk_not_cert
1 is RPK instead of Public Certificate.
Definition: coap_dtls.h:263
uint8_t check_common_ca
1 if peer cert is to be signed by the same CA as the local cert
Definition: coap_dtls.h:251
coap_dtls_key_t pki_key
PKI key definition.
Definition: coap_dtls.h:302
The structure that holds the Server Pre-Shared Key and Identity Hint information.
Definition: coap_dtls.h:375
coap_bin_const_t hint
Definition: coap_dtls.h:376
coap_bin_const_t key
Definition: coap_dtls.h:377
The structure used for defining the Server PSK setup data to be used.
Definition: coap_dtls.h:426
coap_dtls_psk_sni_callback_t validate_sni_call_back
SNI check callback function.
Definition: coap_dtls.h:453
coap_dtls_id_callback_t validate_id_call_back
Identity check callback function.
Definition: coap_dtls.h:445
uint8_t version
Definition: coap_dtls.h:427
uint8_t reserved[7]
Set to COAP_DTLS_SPSK_SETUP_VERSION to support this version of the struct.
Definition: coap_dtls.h:431
void * id_call_back_arg
Passed in to the Identity callback function.
Definition: coap_dtls.h:446
void * sni_call_back_arg
Passed in to the SNI callback function.
Definition: coap_dtls.h:454
coap_dtls_spsk_info_t psk_info
Server PSK definition.
Definition: coap_dtls.h:456
The structure that holds the PKI ASN.1 (DER) definitions.
Definition: coap_dtls.h:188
const uint8_t * private_key
ASN1 (DER) Private Key.
Definition: coap_dtls.h:191
coap_asn1_privatekey_type_t private_key_type
Private Key Type.
Definition: coap_dtls.h:195
size_t public_cert_len
ASN1 Public Cert length.
Definition: coap_dtls.h:193
size_t private_key_len
ASN1 Private Key length.
Definition: coap_dtls.h:194
const uint8_t * ca_cert
ASN1 (DER) Common CA Cert.
Definition: coap_dtls.h:189
size_t ca_cert_len
ASN1 CA Cert length.
Definition: coap_dtls.h:192
const uint8_t * public_cert
ASN1 (DER) Public Cert, or Public Key if RPK.
Definition: coap_dtls.h:190
The structure that holds the PKI PEM buffer definitions.
Definition: coap_dtls.h:174
size_t ca_cert_len
PEM buffer CA Cert length.
Definition: coap_dtls.h:180
const uint8_t * ca_cert
PEM buffer Common CA Cert.
Definition: coap_dtls.h:175
size_t private_key_len
PEM buffer Private Key length.
Definition: coap_dtls.h:182
const uint8_t * private_key
PEM buffer Private Key If RPK and 'EC PRIVATE KEY' this can be used for both the public_cert and priv...
Definition: coap_dtls.h:177
size_t public_cert_len
PEM buffer Public Cert length.
Definition: coap_dtls.h:181
const uint8_t * public_cert
PEM buffer Public Cert, or Public Key if RPK.
Definition: coap_dtls.h:176
The structure that holds the PKI PEM definitions.
Definition: coap_dtls.h:159
const char * ca_file
File location of Common CA in PEM format.
Definition: coap_dtls.h:160
const char * public_cert
File location of Public Cert.
Definition: coap_dtls.h:161
const char * private_key
File location of Private Key in PEM format.
Definition: coap_dtls.h:162
The structure that holds the PKI PKCS11 definitions.
Definition: coap_dtls.h:201
const char * private_key
pkcs11: URI for Private Key
Definition: coap_dtls.h:204
const char * ca
pkcs11: URI for Common CA Certificate
Definition: coap_dtls.h:202
const char * user_pin
User pin to access PKCS11.
Definition: coap_dtls.h:205
const char * public_cert
pkcs11: URI for Public Cert
Definition: coap_dtls.h:203
CoAP string data definition with const data.
Definition: str.h:38
The structure used for returning the underlying (D)TLS library information.
Definition: coap_dtls.h:65
uint64_t built_version
(D)TLS Built against Library Version
Definition: coap_dtls.h:68
coap_tls_library_t type
Library type.
Definition: coap_dtls.h:67
uint64_t version
(D)TLS runtime Library Version
Definition: coap_dtls.h:66
unsigned char uint8_t
Definition: uthash.h:79