aboutsummaryrefslogtreecommitdiff
path: root/src/supplemental/tls/mbedtls/mbedtls.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/supplemental/tls/mbedtls/mbedtls.c')
-rw-r--r--src/supplemental/tls/mbedtls/mbedtls.c84
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
-}