#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"
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 u8 * | eap_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 u8 * | eap_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 u8 * | eap_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 wpabuf * | eap_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 wpabuf * | eap_fast_process (struct eap_sm *sm, void *priv, struct eap_method_ret *ret, const struct wpabuf *reqData) |
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 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 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 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 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 wpabuf * | eap_fast_tlv_nak (int vendor_id, int tlv_type) |
static struct wpabuf * | eap_fast_tlv_pac_ack (void) |
static struct wpabuf * | eap_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 u8 * | eap_fast_write_pac_request (u8 *pos, u16 pac_type) |
int | eap_peer_fast_register (void) |
#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.
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.
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.
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.
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.
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.
Definition at line 714 of file eap_fast.c.
int eap_peer_fast_register | ( | void | ) |
Definition at line 1685 of file eap_fast.c.