From 461e28e5937670e619a408215279766fb675092e Mon Sep 17 00:00:00 2001 From: Tobias Brunner Date: Thu, 22 May 2025 11:30:42 +0200 Subject: [PATCH] wip: charon-cmd: Quick hack to use PSKs --- src/charon-cmd/cmd/cmd_connection.c | 7 +++++++ src/charon-cmd/cmd/cmd_creds.c | 3 ++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/charon-cmd/cmd/cmd_connection.c b/src/charon-cmd/cmd/cmd_connection.c index aa61642e95..aaf02c6c78 100644 --- a/src/charon-cmd/cmd/cmd_connection.c +++ b/src/charon-cmd/cmd/cmd_connection.c @@ -36,6 +36,7 @@ enum profile_t { PROF_V2_PUB, PROF_V2_EAP, PROF_V2_PUB_EAP, + PROF_V2_PSK, PROF_V1_PUB, PROF_V1_PUB_AM, PROF_V1_XAUTH, @@ -50,6 +51,7 @@ ENUM(profile_names, PROF_V2_PUB, PROF_V1_HYBRID_AM, "ikev2-pub", "ikev2-eap", "ikev2-pub-eap", + "ikev2-psk", "ikev1-pub", "ikev1-pub-am", "ikev1-xauth", @@ -164,6 +166,7 @@ static peer_cfg_t* create_peer_cfg(private_cmd_connection_t *this) case PROF_V2_PUB: case PROF_V2_EAP: case PROF_V2_PUB_EAP: + case PROF_V2_PSK: ike.version = IKEV2; break; case PROF_V1_PUB_AM: @@ -301,6 +304,10 @@ static bool add_auth_cfgs(private_cmd_connection_t *this, peer_cfg_t *peer_cfg) add_auth_cfg(this, peer_cfg, TRUE, AUTH_CLASS_EAP); add_auth_cfg(this, peer_cfg, FALSE, AUTH_CLASS_ANY); break; + case PROF_V2_PSK: + add_auth_cfg(this, peer_cfg, TRUE, AUTH_CLASS_PSK); + add_auth_cfg(this, peer_cfg, FALSE, AUTH_CLASS_PSK); + break; case PROF_V1_PUB: case PROF_V1_PUB_AM: add_auth_cfg(this, peer_cfg, TRUE, AUTH_CLASS_PUBKEY); diff --git a/src/charon-cmd/cmd/cmd_creds.c b/src/charon-cmd/cmd/cmd_creds.c index e2bc4b9c28..85307e7427 100644 --- a/src/charon-cmd/cmd/cmd_creds.c +++ b/src/charon-cmd/cmd/cmd_creds.c @@ -113,7 +113,8 @@ static shared_key_t* callback_shared(private_cmd_creds_t *this, shared = shared_key_create(type, chunk_clone(chunk_from_str(pwd))); memwipe(pwd, strlen(pwd)); /* cache password in case it is required more than once */ - this->creds->add_shared(this->creds, shared, NULL); + this->creds->add_shared(this->creds, shared, me->clone(me), + other->clone(other), NULL); return shared->get_ref(shared); } -- 2.47.2