#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_fast_pac.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.
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.