28 RCSIDH(eap_fast_h,
"$Id: 8cdb16bc45b495e6b0d7996bb985e88c190bbdc1 $")
30 #include <freeradius-devel/eap/tls.h>
31 #include <freeradius-devel/radius/radius.h>
32 #include <freeradius-devel/util/chap.h>
34 #define EAP_FAST_VERSION 1
36 #define EAP_FAST_KEY_LEN 64
37 #define EAP_EMSK_LEN 64
38 #define EAP_FAST_SKS_LEN 40
39 #define EAP_FAST_SIMCK_LEN 40
40 #define EAP_FAST_CMK_LEN 20
42 #define EAP_FAST_TLV_MANDATORY 0x8000
43 #define EAP_FAST_TLV_TYPE 0x3fff
45 #define EAP_FAST_FATAL_ERROR 2000
46 #define EAP_FAST_ERR_TUNNEL_COMPROMISED 2001
47 #define EAP_FAST_ERR_UNEXPECTED_TLV 2002
49 #define EAP_FAST_TLV_RESULT_SUCCESS 1
50 #define EAP_FAST_TLV_RESULT_FAILURE 2
74 #define PAC_KEY_LENGTH 32
75 #define PAC_A_ID_LENGTH 16
76 #define PAC_I_ID_LENGTH 16
77 #define PAC_A_ID_INFO_LENGTH 32
123 unsigned char iv[EVP_MAX_IV_LENGTH];
124 unsigned char tag[EVP_GCM_TLS_TAG_LEN];
180 } CC_HINT(__packed__) isk;
203 bool proxy_tunneled_request_as_eap;
A section grouping multiple CONF_PAIR.
fr_radius_packet_code_t
RADIUS packet codes.
HIDDEN fr_dict_attr_t const * attr_eap_fast_pac_info_i_id
HIDDEN fr_dict_attr_t const * attr_eap_fast_result
HIDDEN fr_dict_attr_t const * attr_eap_fast_pac_info_a_id_info
HIDDEN fr_dict_attr_t const * attr_eap_fast_nak
HIDDEN fr_dict_attr_t const * attr_proxy_to_realm
eap_fast_pac_attr_lifetime_t lifetime
eap_fast_pac_attr_hdr_t hdr
HIDDEN fr_dict_attr_t const * attr_eap_fast_pac_a_id_info
eap_fast_pac_attr_hdr_t hdr
HIDDEN fr_dict_attr_t const * attr_eap_fast_pac_key
ssize_t eap_fast_decode_pair(TALLOC_CTX *ctx, fr_pair_list_t *out, fr_dict_attr_t const *parent, uint8_t const *data, size_t data_len, UNUSED void *decode_ctx)
HIDDEN fr_dict_attr_t const * attr_eap_fast_pac_info_tlv
eap_fast_pac_attr_lifetime_t lifetime
HIDDEN fr_dict_attr_t const * attr_eap_fast_error
HIDDEN fr_dict_attr_t const * attr_user_name
HIDDEN fr_dict_attr_t const * attr_ms_mppe_send_key
eap_fast_pac_attr_pac_key_t key
eap_fast_keyblock_t * keyblock
eap_fast_pac_attr_hdr_t hdr
fr_time_delta_t pac_lifetime
eap_fast_tlv_crypto_binding_tlv_subtype_t
@ EAP_FAST_TLV_CRYPTO_BINDING_SUBTYPE_REQUEST
@ EAP_FAST_TLV_CRYPTO_BINDING_SUBTYPE_RESPONSE
HIDDEN fr_dict_attr_t const * attr_eap_fast_pac_info_pac_type
HIDDEN fr_dict_attr_t const * attr_eap_fast_pac_info_pac_lifetime
eap_fast_pac_attr_a_id_info_t a_id_info
HIDDEN fr_dict_attr_t const * attr_ms_chap_peer_challenge
int default_provisioning_method
eap_fast_pac_attr_hdr_t hdr
HIDDEN fr_dict_attr_t const * attr_ms_mppe_recv_key
HIDDEN fr_dict_attr_t const * attr_eap_tls_require_client_cert
HIDDEN fr_dict_attr_t const * attr_eap_fast_pac_type
HIDDEN fr_dict_attr_t const * attr_user_password
eap_fast_pac_attr_hdr_t hdr
HIDDEN fr_dict_attr_t const * attr_eap_fast_intermediate_result
HIDDEN fr_dict_attr_t const * attr_ms_chap_challenge
HIDDEN fr_dict_attr_t const * attr_eap_fast_pac_opaque_pac_type
HIDDEN fr_dict_attr_t const * attr_eap_fast_pac_tlv
eap_fast_pac_attr_hdr_t hdr
eap_fast_attr_pac_opaque_t opaque
HIDDEN fr_dict_attr_t const * attr_eap_fast_eap_payload
eap_fast_pac_attr_pac_type_t type
HIDDEN fr_dict_attr_t const * attr_eap_fast_crypto_binding
fr_radius_packet_code_t eap_fast_process(request_t *request, eap_session_t *eap_session, fr_tls_session_t *tls_session)
HIDDEN fr_dict_attr_t const * attr_eap_fast_vendor_specific
eap_fast_pac_attr_hdr_t hdr
HIDDEN fr_dict_t const * dict_eap_fast
HIDDEN fr_dict_attr_t const * attr_eap_fast_pac_info_a_id
HIDDEN fr_dict_attr_t const * attr_freeradius_proxied_to
char const * authority_identity
HIDDEN fr_dict_attr_t const * attr_eap_msk
eap_fast_attr_pac_info_t info
#define PAC_A_ID_INFO_LENGTH
eap_fast_pac_attr_a_id_t a_id
HIDDEN fr_dict_attr_t const * attr_eap_fast_pac_opaque_i_id
eap_fast_pac_attr_hdr_t hdr
HIDDEN fr_dict_attr_t const * attr_eap_fast_pac_i_id
HIDDEN fr_dict_attr_t const * attr_eap_fast_pac_opaque_pac_lifetime
eap_fast_pac_attr_pac_type_t type
@ EAP_FAST_AUTHENTICATION
@ EAP_FAST_CRYPTOBIND_CHECK
@ EAP_FAST_TLS_SESSION_HANDSHAKE
void eap_fast_tlv_append(fr_tls_session_t *tls_session, fr_dict_attr_t const *da, bool mandatory, int length, const void *data)
HIDDEN fr_dict_attr_t const * attr_eap_fast_pac_opaque_pac_key
@ EAP_FAST_PROVISIONING_ANON
@ EAP_FAST_PROVISIONING_AUTH
HIDDEN fr_dict_attr_t const * attr_eap_fast_pac_opaque_tlv
eap_fast_pac_attr_pac_key_t key
HIDDEN fr_dict_attr_t const * attr_eap_fast_pac_a_id
HIDDEN fr_dict_attr_t const * attr_eap_fast_pac_lifetime
HIDDEN fr_dict_attr_t const * attr_eap_emsk
HIDDEN fr_dict_attr_t const * attr_eap_message
HIDDEN fr_dict_attr_t const * attr_eap_type
uint8_t const * pac_opaque_key
HIDDEN fr_dict_attr_t const * attr_eap_fast_pac_acknowledge
Tracks the progress of a single session of any EAP method.
#define MD5_DIGEST_LENGTH
fr_aka_sim_id_type_t type
Stores an attribute, a value and various bits of other data.
A time delta, a difference in time measured in nanoseconds.
static size_t char ** out