27 RCSIDH(lib_eap_aka_sim_state_machine_h,
"$Id: 3a0e241a1ad2ebbeffbd682f8c8eca4f076585a7 $")
29 #include <freeradius-devel/eap_aka_sim/base.h>
unlang_action_t
Returned by unlang_op_t calls, determine the next action of the interpreter.
A section grouping multiple CONF_PAIR.
Master key state struct for all SIMlike EAP protocols.
fr_aka_sim_id_req_type_t
Identity request types.
Temporary structure to hold arguments for module calls.
rlm_rcode_t
Return codes indicating the result of the module call.
unlang_action_t(* module_method_t)(rlm_rcode_t *p_result, module_ctx_t const *mctx, request_t *request)
Module section callback.
CONF_SECTION * recv_common_identity_response
Called when we receive a new identity.
bool protected_success
Send a success notification as well as and EAP-Success packet.
EVP_MD const * mac_md
HMAC-MD we use to generate the MAC.
CONF_SECTION * recv_common_client_error
Called if the supplicant experiences an error of some kind.
EVP_MD const * hmac_md
The hmac used for validating packets.
eap_aka_sim_actions_t actions
Pre-compiled virtual server sections.
fr_aka_sim_id_req_type_t id_req
The type of identity we're requesting.
CONF_SECTION * load_session
Load cached authentication vectors.
CONF_SECTION * clear_session
Clear authentication vectors.
bool challenge_success
Whether we received the correct challenge response.
CONF_SECTION * clear_pseudonym
Clear pseudonym to permanent ID mapping.
size_t ephemeral_id_length
The length of any identities we're generating.
eap_type_t type
The preferred EAP-Type of this instance of the EAP-SIM/AKA/AKA' state machine.
fr_aka_sim_keys_t keys
Various EAP-AKA/AKA'/SIMkeys.
fr_aka_sim_id_req_type_t last_id_req
The last identity request we sent.
CONF_SECTION * send_common_failure_notification
Called when we're about to send a failure notification.
module_method_t state
The process function to run when we receive the next round of EAP-SIM/AKA/AKA'.
CONF_SECTION * send_eap_failure
Called when we send an EAP-Failure message.
CONF_SECTION * store_pseudonym
Store a permanent ID to pseudonym mapping.
module_method_t next
Resumption function to call after executing common code.
CONF_SECTION * recv_common_failure_notification_ack
Called when the supplicant ACKs our failure notification.
uint16_t failure_type
One of the following values:
char const * network_name
Network ID as described by RFC 5448.
CONF_SECTION * send_common_reauthentication_request
Challenge the supplicant with an MK from an existing session.
bool allow_encrypted
Whether we can send encrypted attributes at this phase of the attempt.
bool send_result_ind
Say that we would like to use protected result indications (AKA-Notification-Success).
char * pseudonym_sent
Pseudonym value we sent.
CONF_SECTION * recv_common_reauthentication_response
Process the reauthentication response from the supplicant.
CONF_SECTION * recv_common_success_notification_ack
Called when the supplicant ACKs our success notification.
bool strip_permanent_identity_hint
Control whether the hint byte is stripped when populating Permanent-Identity.
CONF_SECTION * store_session
Store authentication vectors.
bool reauthentication_success
Whether we got a valid reauthentication response.
char * fastauth_sent
Fastauth value we sent.
bool prev_recv_sync_failure
We only allow one sync failure per session for sanity.
eap_type_t type
Either FR_TYPE_AKA, or FR_TYPE_AKA_PRIME.
CONF_SECTION * send_eap_success
Called when we send an EAP-Success message.
CONF_SECTION * send_common_success_notification
Called when we're about to send a success notification.
unlang_action_t eap_aka_sim_state_machine_process(rlm_rcode_t *p_result, module_ctx_t const *mctx, request_t *request)
Resumes the state machine when receiving a new response packet.
uint16_t kdf
The key derivation function used to derive session keys.
fr_aka_sim_id_req_type_t request_identity
Whether we always request the identity of the subscriber.
CONF_SECTION * load_pseudonym
Resolve a pseudonym to a permanent ID.
CONF_SECTION * send_common_identity_request
Called when we're about to request a different identity.
Cache sections to call on various protocol events.