diff options
Diffstat (limited to 'src/supplemental/tls/mbedtls/mbedtls.c')
| -rw-r--r-- | src/supplemental/tls/mbedtls/mbedtls.c | 84 |
1 files changed, 46 insertions, 38 deletions
diff --git a/src/supplemental/tls/mbedtls/mbedtls.c b/src/supplemental/tls/mbedtls/mbedtls.c index 825fe21a..239f29fa 100644 --- a/src/supplemental/tls/mbedtls/mbedtls.c +++ b/src/supplemental/tls/mbedtls/mbedtls.c @@ -761,6 +761,48 @@ config_version(nng_tls_engine_config *cfg, nng_tls_version min_ver, return (0); } +static nng_err +tls_engine_init(void) +{ + int rv; + +#ifdef MBEDTLS_PSA_CRYPTO_C + rv = psa_crypto_init(); + if (rv != 0) { + tls_log_err( + "NNG-TLS-INIT", "Failed initializing PSA crypto", rv); + return (tls_mk_err(rv)); + } +#endif + // Uncomment the following to have noisy debug from mbedTLS. + // This may be useful when trying to debug failures. + // mbedtls_debug_set_threshold(9); + + mbedtls_ssl_cookie_init(&mbed_ssl_cookie_ctx); + rv = mbedtls_ssl_cookie_setup(&mbed_ssl_cookie_ctx, tls_random, NULL); + if (rv != 0) { + tls_log_err("NNG_TLS_INIT", + "Failed initializing SSL cookie system", rv); + return (tls_mk_err(rv)); + } + return (NNG_OK); +} + +static void +tls_engine_fini(void) +{ + mbedtls_ssl_cookie_free(&mbed_ssl_cookie_ctx); +#ifdef MBEDTLS_PSA_CRYPTO_C + mbedtls_psa_crypto_free(); +#endif +} + +static bool +fips_mode(void) +{ + return (false); +} + static nng_tls_engine_config_ops config_ops = { .init = config_init, .fini = config_fini, @@ -786,47 +828,13 @@ static nng_tls_engine_conn_ops conn_ops = { .peer_alt_names = conn_peer_alt_names, }; -static nng_tls_engine tls_engine_mbed = { +nng_tls_engine nng_tls_engine_ops = { .version = NNG_TLS_ENGINE_VERSION, .config_ops = &config_ops, .conn_ops = &conn_ops, .name = "mbed", .description = MBEDTLS_VERSION_STRING_FULL, - .fips_mode = false, + .init = tls_engine_init, + .fini = tls_engine_fini, + .fips_mode = fips_mode, }; - -int -nng_tls_engine_init_mbed(void) -{ - int rv; - -#ifdef MBEDTLS_PSA_CRYPTO_C - rv = psa_crypto_init(); - if (rv != 0) { - tls_log_err( - "NNG-TLS-INIT", "Failed initializing PSA crypto", rv); - return (rv); - } -#endif - // Uncomment the following to have noisy debug from mbedTLS. - // This may be useful when trying to debug failures. - // mbedtls_debug_set_threshold(9); - - mbedtls_ssl_cookie_init(&mbed_ssl_cookie_ctx); - rv = mbedtls_ssl_cookie_setup(&mbed_ssl_cookie_ctx, tls_random, NULL); - - if (rv == 0) { - rv = nng_tls_engine_register(&tls_engine_mbed); - } - - return (rv); -} - -void -nng_tls_engine_fini_mbed(void) -{ - mbedtls_ssl_cookie_free(&mbed_ssl_cookie_ctx); -#ifdef MBEDTLS_PSA_CRYPTO_C - mbedtls_psa_crypto_free(); -#endif -} |
