The FreeRADIUS server $Id: 15bac2a4c627c01d1aa2047687b3418955ac7f00 $
Loading...
Searching...
No Matches
Data Structures | Macros | Typedefs | Enumerations
eap_fast.h File Reference

Function declarations and packet structures. More...

#include <freeradius-devel/eap/tls.h>
#include <freeradius-devel/radius/radius.h>
#include <freeradius-devel/util/chap.h>
+ Include dependency graph for eap_fast.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  eap_fast_attr_pac_info_t
 
struct  eap_fast_attr_pac_opaque_plaintext_t
 
struct  eap_fast_attr_pac_opaque_t
 
struct  eap_fast_keyblock_t
 
struct  eap_fast_pac_attr_a_id_info_t
 
struct  eap_fast_pac_attr_a_id_t
 
struct  eap_fast_pac_attr_hdr_t
 
struct  eap_fast_pac_attr_i_id_t
 
struct  eap_fast_pac_attr_lifetime_t
 
struct  eap_fast_pac_attr_pac_key_t
 
struct  eap_fast_pac_attr_pac_type_t
 
struct  eap_fast_pac_t
 
struct  eap_fast_tunnel_t
 
struct  eap_fast_tunnel_t.isk
 
struct  eap_fast_tunnel_t.pac
 
struct  eap_tlv_crypto_binding_tlv_t
 

Macros

#define EAP_EMSK_LEN   64
 
#define EAP_FAST_CMK_LEN   20
 
#define EAP_FAST_ERR_TUNNEL_COMPROMISED   2001
 
#define EAP_FAST_ERR_UNEXPECTED_TLV   2002
 
#define EAP_FAST_FATAL_ERROR   2000
 
#define EAP_FAST_KEY_LEN   64
 
#define EAP_FAST_SIMCK_LEN   40
 
#define EAP_FAST_SKS_LEN   40
 
#define EAP_FAST_TLV_MANDATORY   0x8000
 
#define EAP_FAST_TLV_RESULT_FAILURE   2
 
#define EAP_FAST_TLV_RESULT_SUCCESS   1
 
#define EAP_FAST_TLV_TYPE   0x3fff
 
#define EAP_FAST_VERSION   1
 
#define PAC_A_ID_INFO_LENGTH   32
 
#define PAC_A_ID_LENGTH   16
 
#define PAC_I_ID_LENGTH   16
 
#define PAC_KEY_LENGTH   32
 

Typedefs

typedef enum eap_fast_tlv_crypto_binding_tlv_subtype_t eap_fast_tlv_crypto_binding_tlv_subtype_t
 

Enumerations

enum  eap_fast_auth_type_t {
  EAP_FAST_UNKNOWN = 0 ,
  EAP_FAST_PROVISIONING_ANON ,
  EAP_FAST_PROVISIONING_AUTH ,
  EAP_FAST_NORMAL_AUTH
}
 
enum  eap_fast_pac_type_t {
  PAC_TYPE_TUNNEL = 1 ,
  PAC_TYPE_MACHINE_AUTH ,
  PAC_TYPE_USER_AUTHZ ,
  PAC_TYPE_MAX
}
 
enum  eap_fast_stage_t {
  EAP_FAST_TLS_SESSION_HANDSHAKE = 0 ,
  EAP_FAST_AUTHENTICATION ,
  EAP_FAST_CRYPTOBIND_CHECK ,
  EAP_FAST_PROVISIONING ,
  EAP_FAST_COMPLETE
}
 
enum  eap_fast_tlv_crypto_binding_tlv_subtype_t {
  EAP_FAST_TLV_CRYPTO_BINDING_SUBTYPE_REQUEST = 0 ,
  EAP_FAST_TLV_CRYPTO_BINDING_SUBTYPE_RESPONSE
}
 

Detailed Description

Function declarations and packet structures.

Id
c0b9157e6245cdd650d7284b4a9b6680676a81a4
Author
Alexander Clouter (alex@.nosp@m.digr.nosp@m.iz.or.nosp@m.g.uk)

Definition in file eap_fast.h.


Data Structure Documentation

◆ eap_fast_attr_pac_info_t

struct eap_fast_attr_pac_info_t

Definition at line 128 of file eap_fast.h.

+ Collaboration diagram for eap_fast_attr_pac_info_t:
Data Fields
eap_fast_pac_attr_a_id_t a_id
eap_fast_pac_attr_a_id_info_t a_id_info
eap_fast_pac_attr_hdr_t hdr
eap_fast_pac_attr_lifetime_t lifetime
eap_fast_pac_attr_pac_type_t type

◆ eap_fast_attr_pac_opaque_plaintext_t

struct eap_fast_attr_pac_opaque_plaintext_t

Definition at line 114 of file eap_fast.h.

+ Collaboration diagram for eap_fast_attr_pac_opaque_plaintext_t:
Data Fields
eap_fast_pac_attr_pac_key_t key
eap_fast_pac_attr_lifetime_t lifetime
eap_fast_pac_attr_pac_type_t type

◆ eap_fast_attr_pac_opaque_t

struct eap_fast_attr_pac_opaque_t

Definition at line 120 of file eap_fast.h.

+ Collaboration diagram for eap_fast_attr_pac_opaque_t:
Data Fields
unsigned char aad[PAC_A_ID_LENGTH]
uint8_t data[sizeof(eap_fast_attr_pac_opaque_plaintext_t) *2]
eap_fast_pac_attr_hdr_t hdr
unsigned char iv[EVP_MAX_IV_LENGTH]
unsigned char tag[EVP_GCM_TLS_TAG_LEN]

◆ eap_fast_keyblock_t

struct eap_fast_keyblock_t

Definition at line 160 of file eap_fast.h.

Data Fields
uint8_t client_challenge[MD5_DIGEST_LENGTH]
uint8_t server_challenge[MD5_DIGEST_LENGTH]
uint8_t session_key_seed[EAP_FAST_SKS_LEN]

◆ eap_fast_pac_attr_a_id_info_t

struct eap_fast_pac_attr_a_id_info_t

Definition at line 99 of file eap_fast.h.

+ Collaboration diagram for eap_fast_pac_attr_a_id_info_t:
Data Fields
uint8_t data[PAC_A_ID_INFO_LENGTH]
eap_fast_pac_attr_hdr_t hdr

◆ eap_fast_pac_attr_a_id_t

struct eap_fast_pac_attr_a_id_t

Definition at line 89 of file eap_fast.h.

+ Collaboration diagram for eap_fast_pac_attr_a_id_t:
Data Fields
uint8_t data[PAC_A_ID_LENGTH]
eap_fast_pac_attr_hdr_t hdr

◆ eap_fast_pac_attr_hdr_t

struct eap_fast_pac_attr_hdr_t

Definition at line 79 of file eap_fast.h.

Data Fields
uint16_t length
uint16_t type

◆ eap_fast_pac_attr_i_id_t

struct eap_fast_pac_attr_i_id_t

Definition at line 94 of file eap_fast.h.

+ Collaboration diagram for eap_fast_pac_attr_i_id_t:
Data Fields
uint8_t data[PAC_I_ID_LENGTH]
eap_fast_pac_attr_hdr_t hdr

◆ eap_fast_pac_attr_lifetime_t

struct eap_fast_pac_attr_lifetime_t

Definition at line 84 of file eap_fast.h.

+ Collaboration diagram for eap_fast_pac_attr_lifetime_t:
Data Fields
uint32_t data
eap_fast_pac_attr_hdr_t hdr

◆ eap_fast_pac_attr_pac_key_t

struct eap_fast_pac_attr_pac_key_t

Definition at line 109 of file eap_fast.h.

+ Collaboration diagram for eap_fast_pac_attr_pac_key_t:
Data Fields
uint8_t data[PAC_KEY_LENGTH]
eap_fast_pac_attr_hdr_t hdr

◆ eap_fast_pac_attr_pac_type_t

struct eap_fast_pac_attr_pac_type_t

Definition at line 104 of file eap_fast.h.

+ Collaboration diagram for eap_fast_pac_attr_pac_type_t:
Data Fields
uint16_t data
eap_fast_pac_attr_hdr_t hdr

◆ eap_fast_pac_t

struct eap_fast_pac_t

Definition at line 136 of file eap_fast.h.

+ Collaboration diagram for eap_fast_pac_t:
Data Fields
eap_fast_attr_pac_info_t info
eap_fast_pac_attr_pac_key_t key
eap_fast_attr_pac_opaque_t opaque

◆ eap_fast_tunnel_t

struct eap_fast_tunnel_t

Definition at line 166 of file eap_fast.h.

+ Collaboration diagram for eap_fast_tunnel_t:
Data Fields
uint8_t const * a_id
bool authenticated
char const * authority_identity
uint8_t * cmk
int default_method
int default_provisioning_method
uint8_t * emsk
int imck_count
struct eap_fast_tunnel_t.isk isk
eap_fast_keyblock_t * keyblock
int mode
uint8_t * msk
struct eap_fast_tunnel_t.pac pac
fr_time_delta_t pac_lifetime
uint8_t const * pac_opaque_key
bool result_final
uint8_t * s_imck
CONF_SECTION * server_cs
eap_fast_stage_t stage
fr_pair_t * username

◆ eap_fast_tunnel_t.isk

struct eap_fast_tunnel_t.isk

Definition at line 177 of file eap_fast.h.

Data Fields
uint8_t mppe_recv[MD5_DIGEST_LENGTH]
uint8_t mppe_send[MD5_DIGEST_LENGTH]

◆ eap_fast_tunnel_t.pac

struct eap_fast_tunnel_t.pac

Definition at line 192 of file eap_fast.h.

Data Fields
bool expired
fr_time_t expires
uint8_t * key
bool send
eap_fast_pac_type_t type

◆ eap_tlv_crypto_binding_tlv_t

struct eap_tlv_crypto_binding_tlv_t

Definition at line 143 of file eap_fast.h.

Data Fields
uint8_t compound_mac[20]
uint16_t length
uint8_t nonce[32]
uint8_t received_version
uint8_t reserved
uint8_t subtype
uint16_t tlv_type
uint8_t version

Macro Definition Documentation

◆ EAP_EMSK_LEN

#define EAP_EMSK_LEN   64

Definition at line 37 of file eap_fast.h.

◆ EAP_FAST_CMK_LEN

#define EAP_FAST_CMK_LEN   20

Definition at line 40 of file eap_fast.h.

◆ EAP_FAST_ERR_TUNNEL_COMPROMISED

#define EAP_FAST_ERR_TUNNEL_COMPROMISED   2001

Definition at line 46 of file eap_fast.h.

◆ EAP_FAST_ERR_UNEXPECTED_TLV

#define EAP_FAST_ERR_UNEXPECTED_TLV   2002

Definition at line 47 of file eap_fast.h.

◆ EAP_FAST_FATAL_ERROR

#define EAP_FAST_FATAL_ERROR   2000

Definition at line 45 of file eap_fast.h.

◆ EAP_FAST_KEY_LEN

#define EAP_FAST_KEY_LEN   64

Definition at line 36 of file eap_fast.h.

◆ EAP_FAST_SIMCK_LEN

#define EAP_FAST_SIMCK_LEN   40

Definition at line 39 of file eap_fast.h.

◆ EAP_FAST_SKS_LEN

#define EAP_FAST_SKS_LEN   40

Definition at line 38 of file eap_fast.h.

◆ EAP_FAST_TLV_MANDATORY

#define EAP_FAST_TLV_MANDATORY   0x8000

Definition at line 42 of file eap_fast.h.

◆ EAP_FAST_TLV_RESULT_FAILURE

#define EAP_FAST_TLV_RESULT_FAILURE   2

Definition at line 50 of file eap_fast.h.

◆ EAP_FAST_TLV_RESULT_SUCCESS

#define EAP_FAST_TLV_RESULT_SUCCESS   1

Definition at line 49 of file eap_fast.h.

◆ EAP_FAST_TLV_TYPE

#define EAP_FAST_TLV_TYPE   0x3fff

Definition at line 43 of file eap_fast.h.

◆ EAP_FAST_VERSION

#define EAP_FAST_VERSION   1

Definition at line 34 of file eap_fast.h.

◆ PAC_A_ID_INFO_LENGTH

#define PAC_A_ID_INFO_LENGTH   32

Definition at line 77 of file eap_fast.h.

◆ PAC_A_ID_LENGTH

#define PAC_A_ID_LENGTH   16

Definition at line 75 of file eap_fast.h.

◆ PAC_I_ID_LENGTH

#define PAC_I_ID_LENGTH   16

Definition at line 76 of file eap_fast.h.

◆ PAC_KEY_LENGTH

#define PAC_KEY_LENGTH   32

Definition at line 74 of file eap_fast.h.

Typedef Documentation

◆ eap_fast_tlv_crypto_binding_tlv_subtype_t

Enumeration Type Documentation

◆ eap_fast_auth_type_t

Enumerator
EAP_FAST_UNKNOWN 
EAP_FAST_PROVISIONING_ANON 
EAP_FAST_PROVISIONING_AUTH 
EAP_FAST_NORMAL_AUTH 

Definition at line 60 of file eap_fast.h.

◆ eap_fast_pac_type_t

Enumerator
PAC_TYPE_TUNNEL 
PAC_TYPE_MACHINE_AUTH 
PAC_TYPE_USER_AUTHZ 
PAC_TYPE_MAX 

Definition at line 67 of file eap_fast.h.

◆ eap_fast_stage_t

Enumerator
EAP_FAST_TLS_SESSION_HANDSHAKE 
EAP_FAST_AUTHENTICATION 
EAP_FAST_CRYPTOBIND_CHECK 
EAP_FAST_PROVISIONING 
EAP_FAST_COMPLETE 

Definition at line 52 of file eap_fast.h.

◆ eap_fast_tlv_crypto_binding_tlv_subtype_t

Enumerator
EAP_FAST_TLV_CRYPTO_BINDING_SUBTYPE_REQUEST 
EAP_FAST_TLV_CRYPTO_BINDING_SUBTYPE_RESPONSE 

Definition at line 154 of file eap_fast.h.