![]() |
The FreeRADIUS server $Id: 15bac2a4c627c01d1aa2047687b3418955ac7f00 $
|
contains the interfaces that are called from eap More...
#include <freeradius-devel/util/md5.h>
#include <freeradius-devel/tls/utils.h>
#include <openssl/rand.h>
#include <openssl/ssl.h>
#include "eap_fast.h"
#include "eap_fast_crypto.h"
Go to the source code of this file.
Data Structures | |
struct | rlm_eap_fast_t |
struct | rlm_eap_fast_thread_t |
Macros | |
#define | EAP_FAST_TLV_MAX 11 |
#define | EAPTLS_MPPE_KEY_LEN 32 |
#define | MIN(a, b) (((a)>(b)) ? (b) : (a)) |
#define | RANDFILL(x) do { fr_assert(sizeof(x) % sizeof(uint32_t) == 0); for (size_t i = 0; i < sizeof(x); i += sizeof(uint32_t)) *((uint32_t *)&x[i]) = fr_rand(); } while(0) |
Functions | |
static int | _session_secret (SSL *s, void *secret, int *secret_len, UNUSED STACK_OF(SSL_CIPHER) *peer_ciphers, UNUSED SSL_CIPHER const **cipher, void *arg) |
static int | _session_ticket (SSL *s, uint8_t const *data, int len, void *arg) |
static eap_fast_tunnel_t * | eap_fast_alloc (TALLOC_CTX *ctx, rlm_eap_fast_t const *inst) |
Allocate the FAST per-session data. | |
static void | eap_fast_append_crypto_binding (request_t *request, fr_tls_session_t *tls_session) |
static void | eap_fast_append_result (fr_tls_session_t *tls_session, fr_radius_packet_code_t code) |
static fr_radius_packet_code_t | eap_fast_crypto_binding (request_t *request, UNUSED eap_session_t *eap_session, fr_tls_session_t *tls_session, eap_tlv_crypto_binding_tlv_t *binding) |
static 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, void *decode_ctx) |
FIXME do something with mandatory. | |
static fr_radius_packet_code_t | eap_fast_eap_payload (request_t *request, module_ctx_t const *mctx, eap_session_t *eap_session, fr_tls_session_t *tls_session, fr_pair_t *tlv_eap_payload) |
static void | eap_fast_init_keys (request_t *request, fr_tls_session_t *tls_session) |
RFC 4851 section 5.1 - EAP-FAST Authentication Phase 1: Key Derivations. | |
static fr_radius_packet_code_t | eap_fast_process (request_t *request, module_ctx_t const *mctx, eap_session_t *eap_session, fr_tls_session_t *tls_session) |
static fr_radius_packet_code_t | eap_fast_process_tlvs (request_t *request, module_ctx_t const *mctx, eap_session_t *eap_session, fr_tls_session_t *tls_session, fr_pair_list_t *fast_vps) |
static void | eap_fast_send_error (fr_tls_session_t *tls_session, int error) |
static void | eap_fast_send_identity_request (request_t *request, fr_tls_session_t *tls_session, eap_session_t *eap_session) |
static void | eap_fast_send_pac_tunnel (request_t *request, fr_tls_session_t *tls_session) |
static void | eap_fast_session_ticket (fr_tls_session_t *tls_session, const SSL *s, uint8_t *secret, int *secret_len) |
static void | eap_fast_tlv_append (fr_tls_session_t *tls_session, fr_dict_attr_t const *tlv, bool mandatory, int length, void const *data) |
static void | eap_fast_update_icmk (request_t *request, fr_tls_session_t *tls_session, uint8_t *msk) |
RFC 4851 section 5.2 - Intermediate Compound Key Derivations. | |
static int | eap_fast_verify (request_t *request, fr_tls_session_t *tls_session, uint8_t const *data, unsigned int data_len) |
static unlang_action_t | mod_handshake_process (UNUSED unlang_result_t *p_result, UNUSED module_ctx_t const *mctx, request_t *request) |
static unlang_action_t | mod_handshake_resume (unlang_result_t *p_result, module_ctx_t const *mctx, request_t *request) |
static int | mod_instantiate (module_inst_ctx_t const *mctx) |
static unlang_action_t | mod_session_init (unlang_result_t *p_result, module_ctx_t const *mctx, request_t *request) |
static int | mod_thread_detach (module_thread_inst_ctx_t const *mctx) |
static int | mod_thread_instantiate (module_thread_inst_ctx_t const *mctx) |
static rlm_rcode_t | process_reply (UNUSED eap_session_t *eap_session, fr_tls_session_t *tls_session, request_t *request, fr_packet_t *reply, fr_pair_list_t *reply_list) |
contains the interfaces that are called from eap
Definition in file rlm_eap_fast.c.
struct rlm_eap_fast_t |
Definition at line 44 of file rlm_eap_fast.c.
Data Fields | ||
---|---|---|
uint8_t | a_id[PAC_A_ID_LENGTH] | The identity we present in the EAP-TLS. |
char const * | authority_identity | The identity we present in the EAP-TLS. |
char const * | cipher_list | cipher list specific to EAP-FAST |
int | default_provisioning_method | |
char const * | default_provisioning_method_name | |
fr_time_delta_t | pac_lifetime | seconds to add to current time to describe PAC lifetime |
char const * | pac_opaque_key | The key used to encrypt PAC-Opaque. |
bool | req_client_cert | Whether we require a client cert in the outer tunnel. |
int | stage | Processing stage. |
fr_tls_conf_t * | tls_conf | TLS config pointer. |
char const * | tls_conf_name | Name of shared TLS config. |
virtual_server_t * | virtual_server | Virtual server to use for processing inner EAP method. |
struct rlm_eap_fast_thread_t |
Definition at line 37 of file rlm_eap_fast.c.
Data Fields | ||
---|---|---|
SSL_CTX * | ssl_ctx | Thread local SSL_CTX. |
#define EAP_FAST_TLV_MAX 11 |
Definition at line 394 of file rlm_eap_fast.c.
#define EAPTLS_MPPE_KEY_LEN 32 |
#define MIN | ( | a, | |
b | |||
) | (((a)>(b)) ? (b) : (a)) |
#define RANDFILL | ( | x | ) | do { fr_assert(sizeof(x) % sizeof(uint32_t) == 0); for (size_t i = 0; i < sizeof(x); i += sizeof(uint32_t)) *((uint32_t *)&x[i]) = fr_rand(); } while(0) |
Definition at line 187 of file rlm_eap_fast.c.
|
static |
Definition at line 1231 of file rlm_eap_fast.c.
|
static |
Definition at line 1265 of file rlm_eap_fast.c.
|
static |
Allocate the FAST per-session data.
Definition at line 1198 of file rlm_eap_fast.c.
|
static |
Definition at line 367 of file rlm_eap_fast.c.
|
static |
Definition at line 277 of file rlm_eap_fast.c.
|
static |
Definition at line 928 of file rlm_eap_fast.c.
|
static |
FIXME do something with mandatory.
Definition at line 578 of file rlm_eap_fast.c.
|
static |
Definition at line 720 of file rlm_eap_fast.c.
|
static |
RFC 4851 section 5.1 - EAP-FAST Authentication Phase 1: Key Derivations.
Definition at line 192 of file rlm_eap_fast.c.
|
static |
Definition at line 1049 of file rlm_eap_fast.c.
|
static |
Definition at line 951 of file rlm_eap_fast.c.
|
static |
Definition at line 269 of file rlm_eap_fast.c.
|
static |
Definition at line 290 of file rlm_eap_fast.c.
|
static |
Definition at line 305 of file rlm_eap_fast.c.
|
static |
Definition at line 1215 of file rlm_eap_fast.c.
|
static |
|
static |
RFC 4851 section 5.2 - Intermediate Compound Key Derivations.
Definition at line 227 of file rlm_eap_fast.c.
|
static |
Definition at line 396 of file rlm_eap_fast.c.
|
static |
Definition at line 1517 of file rlm_eap_fast.c.
|
static |
Definition at line 1395 of file rlm_eap_fast.c.
|
static |
|
static |
|
static |
Definition at line 1625 of file rlm_eap_fast.c.
|
static |
Definition at line 1614 of file rlm_eap_fast.c.
|
static |
Definition at line 627 of file rlm_eap_fast.c.
|
static |
Definition at line 98 of file rlm_eap_fast.c.
|
static |
Definition at line 113 of file rlm_eap_fast.c.
|
static |
Definition at line 114 of file rlm_eap_fast.c.
|
static |
Definition at line 115 of file rlm_eap_fast.c.
|
static |
Definition at line 116 of file rlm_eap_fast.c.
|
static |
Definition at line 117 of file rlm_eap_fast.c.
|
static |
Definition at line 118 of file rlm_eap_fast.c.
|
static |
Definition at line 119 of file rlm_eap_fast.c.
|
static |
Definition at line 120 of file rlm_eap_fast.c.
|
static |
Definition at line 121 of file rlm_eap_fast.c.
|
static |
Definition at line 122 of file rlm_eap_fast.c.
|
static |
Definition at line 123 of file rlm_eap_fast.c.
|
static |
Definition at line 124 of file rlm_eap_fast.c.
|
static |
Definition at line 125 of file rlm_eap_fast.c.
|
static |
Definition at line 126 of file rlm_eap_fast.c.
|
static |
Definition at line 127 of file rlm_eap_fast.c.
|
static |
Definition at line 128 of file rlm_eap_fast.c.
|
static |
Definition at line 129 of file rlm_eap_fast.c.
|
static |
Definition at line 130 of file rlm_eap_fast.c.
|
static |
Definition at line 131 of file rlm_eap_fast.c.
|
static |
Definition at line 132 of file rlm_eap_fast.c.
|
static |
Definition at line 133 of file rlm_eap_fast.c.
|
static |
Definition at line 134 of file rlm_eap_fast.c.
|
static |
Definition at line 135 of file rlm_eap_fast.c.
|
static |
Definition at line 136 of file rlm_eap_fast.c.
|
static |
Definition at line 137 of file rlm_eap_fast.c.
|
static |
Definition at line 138 of file rlm_eap_fast.c.
|
static |
Definition at line 106 of file rlm_eap_fast.c.
|
static |
Definition at line 99 of file rlm_eap_fast.c.
|
static |
Definition at line 100 of file rlm_eap_fast.c.
|
static |
Definition at line 101 of file rlm_eap_fast.c.
|
static |
Definition at line 107 of file rlm_eap_fast.c.
|
static |
Definition at line 102 of file rlm_eap_fast.c.
|
static |
Definition at line 103 of file rlm_eap_fast.c.
|
static |
Definition at line 109 of file rlm_eap_fast.c.
|
static |
Definition at line 108 of file rlm_eap_fast.c.
|
static |
Definition at line 104 of file rlm_eap_fast.c.
|
static |
Definition at line 110 of file rlm_eap_fast.c.
|
static |
Definition at line 111 of file rlm_eap_fast.c.
fr_dict_t const* dict_eap_fast |
Definition at line 88 of file rlm_eap_fast.c.
|
static |
Definition at line 86 of file rlm_eap_fast.c.
|
static |
Definition at line 87 of file rlm_eap_fast.c.
rlm_eap_submodule_t rlm_eap_fast |
Definition at line 1693 of file rlm_eap_fast.c.
fr_dict_autoload_t rlm_eap_fast_dict |
Definition at line 91 of file rlm_eap_fast.c.
fr_dict_attr_autoload_t rlm_eap_fast_dict_attr |
Definition at line 141 of file rlm_eap_fast.c.
|
static |
Definition at line 66 of file rlm_eap_fast.c.