]> git.ipfire.org Git - thirdparty/gnutls.git/commitdiff
key_share: instrument crypto-auditing probes
authorDaiki Ueno <ueno@gnu.org>
Wed, 24 Sep 2025 04:23:09 +0000 (13:23 +0900)
committerDaiki Ueno <ueno@gnu.org>
Mon, 6 Oct 2025 08:26:30 +0000 (17:26 +0900)
Signed-off-by: Daiki Ueno <ueno@gnu.org>
lib/ext/key_share.c

index 4b9a99dd7457173aabecd79b625bf214e80675b5..50bdf48c97316c8c6ada5a8b7598b2a414d6cb30 100644 (file)
@@ -36,6 +36,7 @@
 #include "../ecc.h"
 #include "../algorithms.h"
 #include "pk.h"
+#include "crau/crau.h"
 
 static int key_share_recv_params(gnutls_session_t session, const uint8_t *data,
                                 size_t data_size);
@@ -252,12 +253,18 @@ static int client_gen_key_share(gnutls_session_t session,
        if (ret < 0)
                return gnutls_assert_val(ret);
 
+       crau_new_context_with_data("name", CRAU_STRING, "tls::key_exchange",
+                                  "tls::group", CRAU_WORD, group->tls_id,
+                                  NULL);
+
        for (size_t i = 0; groups[i]; i++) {
                ret = client_gen_key_share_single(session, groups[i], extdata);
                if (ret < 0)
                        return gnutls_assert_val(ret);
        }
 
+       crau_pop_context();
+
        /* copy actual length */
        _gnutls_write_uint16(extdata->length - length_pos - 2,
                             &extdata->data[length_pos]);
@@ -373,12 +380,18 @@ static int server_gen_key_share(gnutls_session_t session,
        if (ret < 0)
                return gnutls_assert_val(ret);
 
+       crau_new_context_with_data("name", CRAU_STRING, "tls::key_exchange",
+                                  "tls::group", CRAU_WORD, group->tls_id,
+                                  NULL);
+
        for (size_t i = 0; groups[i]; i++) {
                ret = server_gen_key_share_single(session, groups[i], extdata);
                if (ret < 0)
                        return gnutls_assert_val(ret);
        }
 
+       crau_pop_context();
+
        /* copy actual length */
        _gnutls_write_uint16(extdata->length - length_pos - 2,
                             &extdata->data[length_pos]);
@@ -619,12 +632,18 @@ static int server_use_key_share(gnutls_session_t session,
        if (ret < 0)
                return gnutls_assert_val(ret);
 
+       crau_new_context_with_data("name", CRAU_STRING, "tls::key_exchange",
+                                  "tls::group", CRAU_WORD, group->tls_id,
+                                  NULL);
+
        for (size_t i = 0; groups[i]; i++) {
                ret = server_use_key_share_single(session, groups[i], &buffer);
                if (ret < 0)
                        return gnutls_assert_val(ret);
        }
 
+       crau_pop_context();
+
        if (buffer.length > 0)
                return gnutls_assert_val(GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER);
 
@@ -807,12 +826,18 @@ static int client_use_key_share(gnutls_session_t session,
        if (ret < 0)
                return gnutls_assert_val(ret);
 
+       crau_new_context_with_data("name", CRAU_STRING, "tls::key_exchange",
+                                  "tls::group", CRAU_WORD, group->tls_id,
+                                  NULL);
+
        for (size_t i = 0; groups[i]; i++) {
                ret = client_use_key_share_single(session, groups[i], &buffer);
                if (ret < 0)
                        return gnutls_assert_val(ret);
        }
 
+       crau_pop_context();
+
        if (buffer.length > 0)
                return gnutls_assert_val(GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER);