From 454b59c5fd7c7d01c28ec74a03f09af185046876 Mon Sep 17 00:00:00 2001 From: Martin Willi Date: Wed, 28 Oct 2009 14:15:24 +0100 Subject: EAP-SIM/AKA crypto helper supports key derivation for fast reauthentication --- src/charon/plugins/eap_aka/eap_aka_server.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'src/charon/plugins/eap_aka/eap_aka_server.c') diff --git a/src/charon/plugins/eap_aka/eap_aka_server.c b/src/charon/plugins/eap_aka/eap_aka_server.c index 0431feb12..9f6e71ad7 100644 --- a/src/charon/plugins/eap_aka/eap_aka_server.c +++ b/src/charon/plugins/eap_aka/eap_aka_server.c @@ -98,7 +98,7 @@ static status_t initiate(private_eap_aka_server_t *this, eap_payload_t **out) sim_provider_t *provider; char rand[AKA_RAND_LEN], xres[AKA_RES_LEN]; char ck[AKA_CK_LEN], ik[AKA_IK_LEN], autn[AKA_AUTN_LEN]; - chunk_t data; + chunk_t data, mk; bool found = FALSE; enumerator = charon->sim->create_provider_enumerator(charon->sim); @@ -122,7 +122,9 @@ static status_t initiate(private_eap_aka_server_t *this, eap_payload_t **out) data = chunk_cata("cc", chunk_create(ik, AKA_IK_LEN), chunk_create(ck, AKA_CK_LEN)); free(this->msk.ptr); - this->msk = this->crypto->derive_keys_full(this->crypto, this->peer, data); + this->msk = this->crypto->derive_keys_full(this->crypto, this->peer, + data, &mk); + free(mk.ptr); this->rand = chunk_clone(chunk_create(rand, AKA_RAND_LEN)); this->xres = chunk_clone(chunk_create(xres, AKA_RES_LEN)); -- cgit v1.2.3