eap_sim_common.h File Reference

EAP peer/server: EAP-SIM/AKA/AKA' shared routines. More...

Go to the source code of this file.

Data Structures

struct  eap_sim_attrs

Defines

#define EAP_SIM_NONCE_S_LEN   16
#define EAP_SIM_NONCE_MT_LEN   16
#define EAP_SIM_MAC_LEN   16
#define EAP_SIM_MK_LEN   20
#define EAP_SIM_K_AUT_LEN   16
#define EAP_SIM_K_ENCR_LEN   16
#define EAP_SIM_KEYING_DATA_LEN   64
#define EAP_SIM_IV_LEN   16
#define EAP_SIM_KC_LEN   8
#define EAP_SIM_SRES_LEN   4
#define GSM_RAND_LEN   16
#define EAP_SIM_VERSION   1
#define EAP_SIM_SUBTYPE_START   10
#define EAP_SIM_SUBTYPE_CHALLENGE   11
#define EAP_SIM_SUBTYPE_NOTIFICATION   12
#define EAP_SIM_SUBTYPE_REAUTHENTICATION   13
#define EAP_SIM_SUBTYPE_CLIENT_ERROR   14
#define EAP_SIM_UNABLE_TO_PROCESS_PACKET   0
#define EAP_SIM_UNSUPPORTED_VERSION   1
#define EAP_SIM_INSUFFICIENT_NUM_OF_CHAL   2
#define EAP_SIM_RAND_NOT_FRESH   3
#define EAP_SIM_MAX_FAST_REAUTHS   1000
#define EAP_SIM_MAX_CHAL   3
#define EAP_AKA_SUBTYPE_CHALLENGE   1
#define EAP_AKA_SUBTYPE_AUTHENTICATION_REJECT   2
#define EAP_AKA_SUBTYPE_SYNCHRONIZATION_FAILURE   4
#define EAP_AKA_SUBTYPE_IDENTITY   5
#define EAP_AKA_SUBTYPE_NOTIFICATION   12
#define EAP_AKA_SUBTYPE_REAUTHENTICATION   13
#define EAP_AKA_SUBTYPE_CLIENT_ERROR   14
#define EAP_AKA_UNABLE_TO_PROCESS_PACKET   0
#define EAP_AKA_RAND_LEN   16
#define EAP_AKA_AUTN_LEN   16
#define EAP_AKA_AUTS_LEN   14
#define EAP_AKA_RES_MAX_LEN   16
#define EAP_AKA_IK_LEN   16
#define EAP_AKA_CK_LEN   16
#define EAP_AKA_MAX_FAST_REAUTHS   1000
#define EAP_AKA_MIN_RES_LEN   4
#define EAP_AKA_MAX_RES_LEN   16
#define EAP_AKA_CHECKCODE_LEN   20
#define EAP_AKA_PRIME_K_AUT_LEN   32
#define EAP_AKA_PRIME_CHECKCODE_LEN   32
#define EAP_AKA_PRIME_K_RE_LEN   32
#define EAP_SIM_AT_RAND   1
#define EAP_SIM_AT_AUTN   2
#define EAP_SIM_AT_RES   3
#define EAP_SIM_AT_AUTS   4
#define EAP_SIM_AT_PADDING   6
#define EAP_SIM_AT_NONCE_MT   7
#define EAP_SIM_AT_PERMANENT_ID_REQ   10
#define EAP_SIM_AT_MAC   11
#define EAP_SIM_AT_NOTIFICATION   12
#define EAP_SIM_AT_ANY_ID_REQ   13
#define EAP_SIM_AT_IDENTITY   14
#define EAP_SIM_AT_VERSION_LIST   15
#define EAP_SIM_AT_SELECTED_VERSION   16
#define EAP_SIM_AT_FULLAUTH_ID_REQ   17
#define EAP_SIM_AT_COUNTER   19
#define EAP_SIM_AT_COUNTER_TOO_SMALL   20
#define EAP_SIM_AT_NONCE_S   21
#define EAP_SIM_AT_CLIENT_ERROR_CODE   22
#define EAP_SIM_AT_KDF_INPUT   23
#define EAP_SIM_AT_KDF   24
#define EAP_SIM_AT_IV   129
#define EAP_SIM_AT_ENCR_DATA   130
#define EAP_SIM_AT_NEXT_PSEUDONYM   132
#define EAP_SIM_AT_NEXT_REAUTH_ID   133
#define EAP_SIM_AT_CHECKCODE   134
#define EAP_SIM_AT_RESULT_IND   135
#define EAP_SIM_AT_BIDDING   136
#define EAP_SIM_GENERAL_FAILURE_AFTER_AUTH   0
#define EAP_SIM_TEMPORARILY_DENIED   1026
#define EAP_SIM_NOT_SUBSCRIBED   1031
#define EAP_SIM_GENERAL_FAILURE_BEFORE_AUTH   16384
#define EAP_SIM_SUCCESS   32768
#define EAP_AKA_PRIME_KDF   1
#define EAP_AKA_BIDDING_FLAG_D   0x8000
#define EAP_AKA_PRIME_KDF_MAX   10

Enumerations

enum  eap_sim_id_req { NO_ID_REQ, ANY_ID, FULLAUTH_ID, PERMANENT_ID }

Functions

void eap_sim_derive_mk (const u8 *identity, size_t identity_len, const u8 *nonce_mt, u16 selected_version, const u8 *ver_list, size_t ver_list_len, int num_chal, const u8 *kc, u8 *mk)
void eap_aka_derive_mk (const u8 *identity, size_t identity_len, const u8 *ik, const u8 *ck, u8 *mk)
int eap_sim_derive_keys (const u8 *mk, u8 *k_encr, u8 *k_aut, u8 *msk, u8 *emsk)
int eap_sim_derive_keys_reauth (u16 _counter, const u8 *identity, size_t identity_len, const u8 *nonce_s, const u8 *mk, u8 *msk, u8 *emsk)
int eap_sim_verify_mac (const u8 *k_aut, const struct wpabuf *req, const u8 *mac, const u8 *extra, size_t extra_len)
void eap_sim_add_mac (const u8 *k_aut, const u8 *msg, size_t msg_len, u8 *mac, const u8 *extra, size_t extra_len)
int eap_sim_parse_attr (const u8 *start, const u8 *end, struct eap_sim_attrs *attr, int aka, int encr)
u8 * eap_sim_parse_encr (const u8 *k_encr, const u8 *encr_data, size_t encr_data_len, const u8 *iv, struct eap_sim_attrs *attr, int aka)
struct eap_sim_msgeap_sim_msg_init (int code, int id, int type, int subtype)
struct wpabufeap_sim_msg_finish (struct eap_sim_msg *msg, const u8 *k_aut, const u8 *extra, size_t extra_len)
void eap_sim_msg_free (struct eap_sim_msg *msg)
u8 * eap_sim_msg_add_full (struct eap_sim_msg *msg, u8 attr, const u8 *data, size_t len)
u8 * eap_sim_msg_add (struct eap_sim_msg *msg, u8 attr, u16 value, const u8 *data, size_t len)
u8 * eap_sim_msg_add_mac (struct eap_sim_msg *msg, u8 attr)
int eap_sim_msg_add_encr_start (struct eap_sim_msg *msg, u8 attr_iv, u8 attr_encr)
int eap_sim_msg_add_encr_end (struct eap_sim_msg *msg, u8 *k_encr, int attr_pad)
void eap_sim_report_notification (void *msg_ctx, int notification, int aka)

Detailed Description

EAP peer/server: EAP-SIM/AKA/AKA' shared routines.

Copyright
Copyright (c) 2004-2008, Jouni Malinen <j@w1.fi>

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation.

Alternatively, this software may be distributed under the terms of BSD license.

See README and COPYING for more details.

 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Defines

Generated on Sat Nov 28 23:07:50 2009 for wpa_supplicant/hostapd by  doxygen 1.6.1