eap_fast.c File Reference

#include "includes.h"
#include "common.h"
#include "crypto/tls.h"
#include "crypto/sha1.h"
#include "eap_common/eap_tlv_common.h"
#include "eap_i.h"
#include "eap_tls_common.h"
#include "eap_config.h"
#include "eap_common/eap_fast_common.h"
Include dependency graph for eap_fast.c:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  eap_fast_data

Defines

#define EAP_FAST_PROV_AUTH   2
#define EAP_FAST_PROV_UNAUTH   1

Functions

static int eap_fast_clear_pac_opaque_ext (struct eap_sm *sm, struct eap_fast_data *data)
static int eap_fast_decrypt (struct eap_sm *sm, struct eap_fast_data *data, struct eap_method_ret *ret, const struct eap_hdr *req, const struct wpabuf *in_data, struct wpabuf **out_data)
static void eap_fast_deinit (struct eap_sm *sm, void *priv)
static void eap_fast_derive_key_auth (struct eap_sm *sm, struct eap_fast_data *data)
static void eap_fast_derive_key_provisioning (struct eap_sm *sm, struct eap_fast_data *data)
static void eap_fast_derive_keys (struct eap_sm *sm, struct eap_fast_data *data)
static int eap_fast_derive_msk (struct eap_fast_data *data)
static int eap_fast_encrypt_response (struct eap_sm *sm, struct eap_fast_data *data, struct wpabuf *resp, u8 identifier, struct wpabuf **out_data)
static const u8eap_fast_get_a_id (const u8 *buf, size_t len, size_t *id_len)
static int eap_fast_get_cmk (struct eap_sm *sm, struct eap_fast_data *data, u8 *cmk)
static u8eap_fast_get_emsk (struct eap_sm *sm, void *priv, size_t *len)
static int eap_fast_get_phase2_key (struct eap_sm *sm, struct eap_fast_data *data, u8 *isk, size_t isk_len)
static int eap_fast_get_status (struct eap_sm *sm, void *priv, char *buf, size_t buflen, int verbose)
static u8eap_fast_getKey (struct eap_sm *sm, void *priv, size_t *len)
static void * eap_fast_init (struct eap_sm *sm)
static int eap_fast_init_phase2_method (struct eap_sm *sm, struct eap_fast_data *data)
static Boolean eap_fast_isKeyAvailable (struct eap_sm *sm, void *priv)
static struct wpabufeap_fast_pac_request (void)
static int eap_fast_parse_decrypted (struct wpabuf *decrypted, struct eap_fast_tlv_parse *tlv, struct wpabuf **resp)
static int eap_fast_parse_pac_info (struct eap_fast_pac *entry, int type, u8 *pos, size_t len)
static void eap_fast_parse_pac_tlv (struct eap_fast_pac *entry, int type, u8 *pos, size_t len, int *pac_key_found)
static int eap_fast_parse_phase1 (struct eap_fast_data *data, const char *phase1)
static int eap_fast_phase2_request (struct eap_sm *sm, struct eap_fast_data *data, struct eap_method_ret *ret, struct eap_hdr *hdr, struct wpabuf **resp)
static struct wpabufeap_fast_process (struct eap_sm *sm, void *priv, struct eap_method_ret *ret, const struct wpabuf *reqData)
static struct wpabufeap_fast_process_crypto_binding (struct eap_sm *sm, struct eap_fast_data *data, struct eap_method_ret *ret, struct eap_tlv_crypto_binding_tlv *_bind, size_t bind_len)
static int eap_fast_process_decrypted (struct eap_sm *sm, struct eap_fast_data *data, struct eap_method_ret *ret, const struct eap_hdr *req, struct wpabuf *decrypted, struct wpabuf **out_data)
static struct wpabufeap_fast_process_eap_payload_tlv (struct eap_sm *sm, struct eap_fast_data *data, struct eap_method_ret *ret, const struct eap_hdr *req, u8 *eap_payload_tlv, size_t eap_payload_tlv_len)
static struct wpabufeap_fast_process_pac (struct eap_sm *sm, struct eap_fast_data *data, struct eap_method_ret *ret, u8 *pac, size_t pac_len)
static int eap_fast_process_pac_info (struct eap_fast_pac *entry)
static int eap_fast_process_pac_tlv (struct eap_fast_pac *entry, u8 *pac, size_t pac_len)
static int eap_fast_process_start (struct eap_sm *sm, struct eap_fast_data *data, u8 flags, const u8 *pos, size_t left)
static void eap_fast_select_pac (struct eap_fast_data *data, const u8 *a_id, size_t a_id_len)
static int eap_fast_select_phase2_method (struct eap_fast_data *data, u8 type)
static int eap_fast_session_ticket_cb (void *ctx, const u8 *ticket, size_t len, const u8 *client_random, const u8 *server_random, u8 *master_secret)
static int eap_fast_set_provisioning_ciphers (struct eap_sm *sm, struct eap_fast_data *data)
static struct wpabufeap_fast_tlv_nak (int vendor_id, int tlv_type)
static struct wpabufeap_fast_tlv_pac_ack (void)
static struct wpabufeap_fast_tlv_result (int status, int intermediate)
static int eap_fast_use_pac_opaque (struct eap_sm *sm, struct eap_fast_data *data, struct eap_fast_pac *pac)
static int eap_fast_validate_crypto_binding (struct eap_tlv_crypto_binding_tlv *_bind)
static void eap_fast_write_crypto_binding (struct eap_tlv_crypto_binding_tlv *rbind, struct eap_tlv_crypto_binding_tlv *_bind, const u8 *cmk)
static u8eap_fast_write_pac_request (u8 *pos, u16 pac_type)
int eap_peer_fast_register (void)

Define Documentation

#define EAP_FAST_PROV_AUTH   2

Definition at line 54 of file eap_fast.c.

#define EAP_FAST_PROV_UNAUTH   1

Definition at line 53 of file eap_fast.c.


Function Documentation

static int eap_fast_clear_pac_opaque_ext ( struct eap_sm sm,
struct eap_fast_data data 
) [static]

Definition at line 1393 of file eap_fast.c.

static int eap_fast_decrypt ( struct eap_sm sm,
struct eap_fast_data data,
struct eap_method_ret ret,
const struct eap_hdr req,
const struct wpabuf in_data,
struct wpabuf **  out_data 
) [static]

Definition at line 1252 of file eap_fast.c.

static void eap_fast_deinit ( struct eap_sm sm,
void *  priv 
) [static]

Definition at line 227 of file eap_fast.c.

static void eap_fast_derive_key_auth ( struct eap_sm sm,
struct eap_fast_data data 
) [static]

Definition at line 261 of file eap_fast.c.

static void eap_fast_derive_key_provisioning ( struct eap_sm sm,
struct eap_fast_data data 
) [static]

Definition at line 291 of file eap_fast.c.

static void eap_fast_derive_keys ( struct eap_sm sm,
struct eap_fast_data data 
) [static]

Definition at line 323 of file eap_fast.c.

static int eap_fast_derive_msk ( struct eap_fast_data data  )  [static]

Definition at line 252 of file eap_fast.c.

static int eap_fast_encrypt_response ( struct eap_sm sm,
struct eap_fast_data data,
struct wpabuf resp,
u8  identifier,
struct wpabuf **  out_data 
) [static]

Definition at line 1100 of file eap_fast.c.

static const u8* eap_fast_get_a_id ( const u8 buf,
size_t  len,
size_t *  id_len 
) [static]

Definition at line 1307 of file eap_fast.c.

static int eap_fast_get_cmk ( struct eap_sm sm,
struct eap_fast_data data,
u8 cmk 
) [static]

Definition at line 680 of file eap_fast.c.

static u8* eap_fast_get_emsk ( struct eap_sm sm,
void *  priv,
size_t *  len 
) [static]

Definition at line 1666 of file eap_fast.c.

static int eap_fast_get_phase2_key ( struct eap_sm sm,
struct eap_fast_data data,
u8 isk,
size_t  isk_len 
) [static]

Definition at line 633 of file eap_fast.c.

static int eap_fast_get_status ( struct eap_sm sm,
void *  priv,
char *  buf,
size_t  buflen,
int  verbose 
) [static]

Definition at line 1621 of file eap_fast.c.

static u8* eap_fast_getKey ( struct eap_sm sm,
void *  priv,
size_t *  len 
) [static]

Definition at line 1647 of file eap_fast.c.

static void* eap_fast_init ( struct eap_sm sm  )  [static]

Definition at line 151 of file eap_fast.c.

static int eap_fast_init_phase2_method ( struct eap_sm sm,
struct eap_fast_data data 
) [static]

Definition at line 332 of file eap_fast.c.

static Boolean eap_fast_isKeyAvailable ( struct eap_sm sm,
void *  priv 
) [static]

Definition at line 1640 of file eap_fast.c.

static struct wpabuf* eap_fast_pac_request ( void   )  [static, read]

Definition at line 1122 of file eap_fast.c.

static int eap_fast_parse_decrypted ( struct wpabuf decrypted,
struct eap_fast_tlv_parse tlv,
struct wpabuf **  resp 
) [static]

Definition at line 1051 of file eap_fast.c.

static int eap_fast_parse_pac_info ( struct eap_fast_pac entry,
int  type,
u8 pos,
size_t  len 
) [static]

Definition at line 874 of file eap_fast.c.

static void eap_fast_parse_pac_tlv ( struct eap_fast_pac entry,
int  type,
u8 pos,
size_t  len,
int *  pac_key_found 
) [static]

Definition at line 801 of file eap_fast.c.

static int eap_fast_parse_phase1 ( struct eap_fast_data data,
const char *  phase1 
) [static]

Definition at line 119 of file eap_fast.c.

static int eap_fast_phase2_request ( struct eap_sm sm,
struct eap_fast_data data,
struct eap_method_ret ret,
struct eap_hdr hdr,
struct wpabuf **  resp 
) [static]

Definition at line 402 of file eap_fast.c.

static struct wpabuf* eap_fast_process ( struct eap_sm sm,
void *  priv,
struct eap_method_ret ret,
const struct wpabuf reqData 
) [static, read]

Definition at line 1488 of file eap_fast.c.

static struct wpabuf* eap_fast_process_crypto_binding ( struct eap_sm sm,
struct eap_fast_data data,
struct eap_method_ret ret,
struct eap_tlv_crypto_binding_tlv _bind,
size_t  bind_len 
) [static, read]

Definition at line 738 of file eap_fast.c.

static int eap_fast_process_decrypted ( struct eap_sm sm,
struct eap_fast_data data,
struct eap_method_ret ret,
const struct eap_hdr req,
struct wpabuf decrypted,
struct wpabuf **  out_data 
) [static]

Definition at line 1140 of file eap_fast.c.

static struct wpabuf* eap_fast_process_eap_payload_tlv ( struct eap_sm sm,
struct eap_fast_data data,
struct eap_method_ret ret,
const struct eap_hdr req,
u8 eap_payload_tlv,
size_t  eap_payload_tlv_len 
) [static, read]

Definition at line 543 of file eap_fast.c.

static struct wpabuf* eap_fast_process_pac ( struct eap_sm sm,
struct eap_fast_data data,
struct eap_method_ret ret,
u8 pac,
size_t  pac_len 
) [static, read]

Definition at line 999 of file eap_fast.c.

static int eap_fast_process_pac_info ( struct eap_fast_pac entry  )  [static]

Definition at line 954 of file eap_fast.c.

static int eap_fast_process_pac_tlv ( struct eap_fast_pac entry,
u8 pac,
size_t  pac_len 
) [static]

Definition at line 833 of file eap_fast.c.

static int eap_fast_process_start ( struct eap_sm sm,
struct eap_fast_data data,
u8  flags,
const u8 pos,
size_t  left 
) [static]

Definition at line 1439 of file eap_fast.c.

static void eap_fast_select_pac ( struct eap_fast_data data,
const u8 a_id,
size_t  a_id_len 
) [static]

Definition at line 1336 of file eap_fast.c.

static int eap_fast_select_phase2_method ( struct eap_fast_data data,
u8  type 
) [static]

Definition at line 355 of file eap_fast.c.

static int eap_fast_session_ticket_cb ( void *  ctx,
const u8 ticket,
size_t  len,
const u8 client_random,
const u8 server_random,
u8 master_secret 
) [static]

Definition at line 77 of file eap_fast.c.

static int eap_fast_set_provisioning_ciphers ( struct eap_sm sm,
struct eap_fast_data data 
) [static]

Definition at line 1406 of file eap_fast.c.

static struct wpabuf* eap_fast_tlv_nak ( int  vendor_id,
int  tlv_type 
) [static, read]

Definition at line 484 of file eap_fast.c.

static struct wpabuf* eap_fast_tlv_pac_ack ( void   )  [static, read]

Definition at line 520 of file eap_fast.c.

static struct wpabuf* eap_fast_tlv_result ( int  status,
int  intermediate 
) [static, read]

Definition at line 500 of file eap_fast.c.

static int eap_fast_use_pac_opaque ( struct eap_sm sm,
struct eap_fast_data data,
struct eap_fast_pac pac 
) [static]

Definition at line 1361 of file eap_fast.c.

static int eap_fast_validate_crypto_binding ( struct eap_tlv_crypto_binding_tlv _bind  )  [static]

Definition at line 581 of file eap_fast.c.

static void eap_fast_write_crypto_binding ( struct eap_tlv_crypto_binding_tlv rbind,
struct eap_tlv_crypto_binding_tlv _bind,
const u8 cmk 
) [static]

Definition at line 607 of file eap_fast.c.

static u8* eap_fast_write_pac_request ( u8 pos,
u16  pac_type 
) [static]

Definition at line 714 of file eap_fast.c.

int eap_peer_fast_register ( void   ) 

Definition at line 1685 of file eap_fast.c.

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Defines


wpa_supplicant
Author(s): Package maintained by Blaise Gassend
autogenerated on Fri Jan 11 10:04:26 2013