Add a starting point for EAP-AKA' (draft-arkko-eap-aka-kdf-10)

This is just making an as-is copy of EAP-AKA server and peer
implementation into a new file and by using the different EAP method
type that is allocated for EAP-AKA' (50). None of the other differences
between EAP-AKA and EAP-AKA' are not yet included.

It is likely that once EAP-AKA' implementation is done and is found to
work correctly, large part of the EAP-AKA and EAP-AKA' code will be
shared. However, it is not reasonable to destabilize EAP-AKA
implementation at this point before it is clearer what the final
differences will be.
This commit is contained in:
Jouni Malinen 2008-12-02 20:12:49 +02:00
parent e8ff1e594e
commit 8c37556cd1
7 changed files with 2227 additions and 0 deletions

View file

@ -212,6 +212,12 @@ OBJS += ../src/eap_server/eap_aka.o
CONFIG_EAP_SIM_COMMON=y CONFIG_EAP_SIM_COMMON=y
endif endif
ifdef CONFIG_EAP_AKA_PRIME
CFLAGS += -DEAP_AKA_PRIME
OBJS += ../src/eap_server/eap_aka_prime.o
CONFIG_EAP_SIM_COMMON=y
endif
ifdef CONFIG_EAP_SIM_COMMON ifdef CONFIG_EAP_SIM_COMMON
OBJS += ../src/eap_common/eap_sim_common.o OBJS += ../src/eap_common/eap_sim_common.o
# Example EAP-SIM/AKA interface for GSM/UMTS authentication. This can be # Example EAP-SIM/AKA interface for GSM/UMTS authentication. This can be

View file

@ -66,6 +66,7 @@ typedef enum {
EAP_TYPE_PSK = 47 /* RFC 4764 */, EAP_TYPE_PSK = 47 /* RFC 4764 */,
EAP_TYPE_SAKE = 48 /* RFC 4763 */, EAP_TYPE_SAKE = 48 /* RFC 4763 */,
EAP_TYPE_IKEV2 = 49 /* RFC 5106 */, EAP_TYPE_IKEV2 = 49 /* RFC 5106 */,
EAP_TYPE_AKA_PRIME = 50 /* draft-arkko-eap-aka-kdf-10.txt */,
EAP_TYPE_EXPANDED = 254 /* RFC 3748 */, EAP_TYPE_EXPANDED = 254 /* RFC 3748 */,
EAP_TYPE_GPSK = 255 /* EXPERIMENTAL - type not yet allocated EAP_TYPE_GPSK = 255 /* EXPERIMENTAL - type not yet allocated
* draft-ietf-emu-eap-gpsk-01.txt */ * draft-ietf-emu-eap-gpsk-01.txt */

1156
src/eap_peer/eap_aka_prime.c Normal file

File diff suppressed because it is too large Load diff

View file

@ -427,6 +427,13 @@ int eap_peer_register_methods(void)
} }
#endif /* EAP_AKA */ #endif /* EAP_AKA */
#ifdef EAP_AKA_PRIME
if (ret == 0) {
int eap_peer_aka_prime_register(void);
ret = eap_peer_aka_prime_register();
}
#endif /* EAP_AKA_PRIME */
#ifdef EAP_FAST #ifdef EAP_FAST
if (ret == 0) { if (ret == 0) {
int eap_peer_fast_register(void); int eap_peer_fast_register(void);

File diff suppressed because it is too large Load diff

View file

@ -212,6 +212,13 @@ int eap_server_register_methods(void)
} }
#endif /* EAP_AKA */ #endif /* EAP_AKA */
#ifdef EAP_AKA_PRIME
if (ret == 0) {
int eap_server_aka_prime_register(void);
ret = eap_server_aka_prime_register();
}
#endif /* EAP_AKA_PRIME */
#ifdef EAP_PAX #ifdef EAP_PAX
if (ret == 0) { if (ret == 0) {
int eap_server_pax_register(void); int eap_server_pax_register(void);

View file

@ -427,6 +427,20 @@ CONFIG_IEEE8021X_EAPOL=y
CONFIG_EAP_SIM_COMMON=y CONFIG_EAP_SIM_COMMON=y
endif endif
ifdef CONFIG_EAP_AKA_PRIME
# EAP-AKA'
ifeq ($(CONFIG_EAP_AKA_PRIME), dyn)
CFLAGS += -DEAP_AKA_PRIME_DYNAMIC
EAPDYN += ../src/eap_peer/eap_aka_prime.so
else
CFLAGS += -DEAP_AKA_PRIME
OBJS += ../src/eap_peer/eap_aka_prime.o
OBJS_h += ../src/eap_server/eap_aka_prime.o
endif
CONFIG_IEEE8021X_EAPOL=y
CONFIG_EAP_SIM_COMMON=y
endif
ifdef CONFIG_EAP_SIM_COMMON ifdef CONFIG_EAP_SIM_COMMON
OBJS += ../src/eap_common/eap_sim_common.o OBJS += ../src/eap_common/eap_sim_common.o
OBJS_h += ../src/eap_server/eap_sim_db.o OBJS_h += ../src/eap_server/eap_sim_db.o