Skip to content

Commit d4c2cac

Browse files
Antti KauppilaArto Kinnunen
authored andcommitted
more error handling added for ctr and hmac
1 parent cace1e9 commit d4c2cac

File tree

1 file changed

+13
-15
lines changed

1 file changed

+13
-15
lines changed

source/coap_security_handler.c

Lines changed: 13 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -44,8 +44,14 @@ struct coap_security_s {
4444

4545
#if defined(MBEDTLS_CTR_DRBG_C)
4646
mbedtls_ctr_drbg_context _drbg;
47+
#define DRBG_INIT mbedtls_ctr_drbg_init
48+
#define DRBG_RANDOM mbedtls_ctr_drbg_random
49+
#define DRBG_FREE mbedtls_ctr_drbg_free
4750
#elif defined(MBEDTLS_HMAC_DRBG_C)
4851
mbedtls_hmac_drbg_context _drbg;
52+
#define DRBG_INIT mbedtls_hmac_drbg_init
53+
#define DRBG_RANDOM mbedtls_hmac_drbg_random
54+
#define DRBG_FREE mbedtls_hmac_drbg_free
4955
#else
5056
#error "CTR or HMAC must be defined for coap_security_handler!"
5157
#endif
@@ -122,11 +128,7 @@ static int coap_security_handler_init(coap_security_t *sec)
122128

123129
mbedtls_ssl_init(&sec->_ssl);
124130
mbedtls_ssl_config_init(&sec->_conf);
125-
#if defined(MBEDTLS_CTR_DRBG_C)
126-
mbedtls_ctr_drbg_init(&sec->_drbg);
127-
#elif defined(MBEDTLS_HMAC_DRBG_C)
128-
mbedtls_hmac_drbg_init(&sec->_drbg);
129-
#endif
131+
DRBG_INIT(&sec->_drbg);
130132
mbedtls_entropy_init(&sec->_entropy);
131133

132134
#if defined(MBEDTLS_X509_CRT_PARSE_C)
@@ -157,6 +159,8 @@ static int coap_security_handler_init(coap_security_t *sec)
157159
strlen(pers))) != 0) {
158160
return -1;
159161
}
162+
#else
163+
#error "CTR or HMAC must be defined for coap_security_handler!"
160164
#endif
161165
return 0;
162166
}
@@ -180,11 +184,9 @@ static void coap_security_handler_reset(coap_security_t *sec)
180184
#endif
181185

182186
mbedtls_entropy_free(&sec->_entropy);
183-
#if defined(MBEDTLS_CTR_DRBG_C)
184-
mbedtls_ctr_drbg_free(&sec->_drbg);
185-
#elif defined(MBEDTLS_HMAC_DRBG_C)
186-
mbedtls_hmac_drbg_free(&sec->_drbg);
187-
#endif
187+
188+
DRBG_FREE(&sec->_drbg);
189+
188190
mbedtls_ssl_config_free(&sec->_conf);
189191
mbedtls_ssl_free(&sec->_ssl);
190192
#if defined(MBEDTLS_PLATFORM_C)
@@ -421,11 +423,7 @@ int coap_security_handler_connect_non_blocking(coap_security_t *sec, bool is_ser
421423
}
422424

423425
#if !defined(MBEDTLS_SSL_CONF_RNG)
424-
#if defined(MBEDTLS_CTR_DRBG_C)
425-
mbedtls_ssl_conf_rng(&sec->_conf, mbedtls_ctr_drbg_random, &sec->_drbg);
426-
#elif defined(MBEDTLS_HMAC_DRBG_C)
427-
mbedtls_ssl_conf_rng(&sec->_conf, mbedtls_hmac_drbg_random, &sec->_drbg);
428-
#endif
426+
mbedtls_ssl_conf_rng(&sec->_conf, DRBG_RANDOM, &sec->_drbg);
429427
#endif
430428

431429
if ((mbedtls_ssl_setup(&sec->_ssl, &sec->_conf)) != 0) {

0 commit comments

Comments
 (0)