summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaiki Ueno <ueno@gnu.org>2023-03-29 14:54:39 +0900
committerDaiki Ueno <ueno@gnu.org>2023-03-29 15:39:53 +0900
commit575f227ef2e024275b3f8737d46734ea7dde2fc6 (patch)
tree10d23f45c686c42e7fb19eb3863f7d7c222e9001
parent24fdcb325fc6ae42c517a326e2221b9311d6df40 (diff)
downloadgnutls-wip/usdt.tar.gz
audit: emit TLS 1.2 ECDHE key exchange eventswip/usdt
Signed-off-by: Daiki Ueno <ueno@gnu.org>
-rw-r--r--lib/auth/ecdhe.c24
1 files changed, 24 insertions, 0 deletions
diff --git a/lib/auth/ecdhe.c b/lib/auth/ecdhe.c
index 350cb27da7..ddd7bc301e 100644
--- a/lib/auth/ecdhe.c
+++ b/lib/auth/ecdhe.c
@@ -93,6 +93,29 @@ static int calc_ecdh_key(gnutls_session_t session,
gnutls_pk_params_st pub;
int ret;
gnutls_datum_t tmp_dh_key;
+ const gnutls_group_entry_st *group;
+
+ group = _gnutls_id_to_group(ecurve->group);
+
+ ret =
+ _gnutls_audit_push_context(&session->internals.audit_context_stack,
+ (gnutls_audit_context_t)
+ calc_ecdh_key);
+ if (ret < 0) {
+ return ret;
+ }
+
+ CRYPTO_AUDITING_STRING_DATA(session->internals.
+ audit_context_stack.head->context, "name",
+ "tls::key_exchange");
+
+ CRYPTO_AUDITING_WORD_DATA(session->internals.audit_context_stack.
+ head->context, "tls::group",
+ group->tls_id);
+
+ CRYPTO_AUDITING_WORD_DATA(session->internals.audit_context_stack.
+ head->context, "tls::key_exchange_algorithm",
+ GNUTLS_AUDIT_KX_ECDHE);
gnutls_pk_params_init(&pub);
pub.params[ECC_X] = session->key.proto.tls12.ecdh.x;
@@ -131,6 +154,7 @@ static int calc_ecdh_key(gnutls_session_t session,
_gnutls_mpi_release(&session->key.proto.tls12.ecdh.y);
_gnutls_free_datum(&session->key.proto.tls12.ecdh.raw);
gnutls_pk_params_release(&session->key.proto.tls12.ecdh.params);
+ _gnutls_audit_pop_context(&session->internals.audit_context_stack);
return ret;
}