aboutsummaryrefslogtreecommitdiffstats
path: root/src/eap_peer
diff options
context:
space:
mode:
authorJouni Malinen <j@w1.fi>2008-12-04 19:50:56 (GMT)
committerJouni Malinen <j@w1.fi>2008-12-04 19:50:56 (GMT)
commita478ef0d127db57c1b9ec79f3819d6a921fa4b87 (patch)
tree712bf4a3e2cc1c44b8f7af3f85f68b6bd28690f0 /src/eap_peer
parenta49c428a1b4be8620a989b9e74c6f06c5657cca6 (diff)
downloadhostap-06-a478ef0d127db57c1b9ec79f3819d6a921fa4b87.zip
hostap-06-a478ef0d127db57c1b9ec79f3819d6a921fa4b87.tar.gz
hostap-06-a478ef0d127db57c1b9ec79f3819d6a921fa4b87.tar.bz2
EAP-AKA': Added CK',IK' derivation
This is based on a change request 3GPP TS 33.402 CR 0033 for version 8.1.1. The hardcoded ANID is now 'WLAN' since that is used in 3GPP TS 24.302.
Diffstat (limited to 'src/eap_peer')
-rw-r--r--src/eap_peer/eap_aka_prime.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/eap_peer/eap_aka_prime.c b/src/eap_peer/eap_aka_prime.c
index 243005a..52f74ee 100644
--- a/src/eap_peer/eap_aka_prime.c
+++ b/src/eap_peer/eap_aka_prime.c
@@ -820,6 +820,16 @@ static struct wpabuf * eap_aka_process_challenge(struct eap_sm *sm,
return eap_aka_client_error(data, id,
EAP_AKA_UNABLE_TO_PROCESS_PACKET);
}
+#ifdef EAP_AKA_PRIME
+ if (data->eap_method == EAP_TYPE_AKA_PRIME) {
+ /* Note: AUTN = (SQN ^ AK) || AMF || MAC which gives us the
+ * needed 6-octet SQN ^AK for CK',IK' derivation */
+ eap_aka_prime_derive_ck_ik_prime(data->ck, data->ik,
+ data->autn,
+ data->network_name,
+ data->network_name_len);
+ }
+#endif /* EAP_AKA_PRIME */
if (data->last_eap_identity) {
identity = data->last_eap_identity;
identity_len = data->last_eap_identity_len;