|
| static int | eap_psk_compose (eap_round_t *eap_round, uint8_t flags, uint8_t const rand_s[static EAP_PSK_RAND_LEN], uint8_t const *body, size_t body_len) |
| |
| static unlang_action_t | eap_psk_discard (unlang_result_t *p_result, request_t *request, eap_psk_session_t *session) |
| |
| static unlang_action_t | eap_psk_failure (unlang_result_t *p_result, module_ctx_t const *mctx, request_t *request, process_eap_psk_t const *inst, eap_psk_session_t *session) |
| |
| static void | eap_psk_header (uint8_t header[static EAP_PSK_HEADER_LEN], uint8_t code, uint8_t id, size_t type_length, uint8_t flags, uint8_t const rand_s[static EAP_PSK_RAND_LEN]) |
| |
| static unlang_action_t | mod_process (unlang_result_t *p_result, module_ctx_t const *mctx, request_t *request) |
| | Dispatch to the state matching the packet type set by rlm_eap_psk.
|
| |
| static unlang_action_t | resume_recv_identity_response (unlang_result_t *p_result, module_ctx_t const *mctx, request_t *request) |
| | Verify MAC_P and build the third message once 'recv Identity-Response' has run.
|
| |
| static unlang_action_t | resume_recv_result_acknowledgement (unlang_result_t *p_result, module_ctx_t const *mctx, request_t *request) |
| | Verify the protected result once 'recv Result-Acknowledgement' has run.
|
| |
| static unlang_action_t | resume_send_failure (unlang_result_t *p_result, module_ctx_t const *mctx, request_t *request) |
| |
| static unlang_action_t | resume_send_identity_request (unlang_result_t *p_result, module_ctx_t const *mctx, request_t *request) |
| | Compose the first message once 'send Identity-Request' has run.
|
| |
| static unlang_action_t | resume_send_result_indication (unlang_result_t *p_result, module_ctx_t const *mctx, request_t *request) |
| | Compose the third message once 'send Result-Indication' has run.
|
| |
| static unlang_action_t | resume_send_success (unlang_result_t *p_result, module_ctx_t const *mctx, request_t *request) |
| | Finish successfully once 'send Success' has run.
|
| |
| static unlang_action_t | state_identity_request (unlang_result_t *p_result, module_ctx_t const *mctx, request_t *request) |
| | Start the conversation: generate RAND_S and run 'send Identity-Request'.
|
| |
| static unlang_action_t | state_identity_response (unlang_result_t *p_result, module_ctx_t const *mctx, request_t *request) |
| | Parse the second message and run 'recv Identity-Response'.
|
| |
| static unlang_action_t | state_result_acknowledgement (unlang_result_t *p_result, module_ctx_t const *mctx, request_t *request) |
| | Parse the fourth message and run 'recv Result-Acknowledgement'.
|
| |
The EAP-PSK (RFC 4764) state machine.
- Id
- bd2be0bbb223bb43ed266af63f4607f6da588b2a
Runs the four-message EAP-PSK exchange on a request in the eap-psk namespace, yielding to the virtual server's policy sections between protocol steps:
- send Identity-Request - before the first message; may override Server-Identity (ID_S).
- recv Identity-Response - after the second message; must supply control.Password.PSK for the asserted Identity (ID_P).
- send Result-Indication - before the third message.
- recv Result-Acknowledgement- after the fourth message.
- send Success / send Failure- before the final EAP result.
Messages which fail validation are not processed, and the reply Packet-Type is set to Do-Not-Respond. RFC 4764 Section 4.1 calls for such messages to be silently discarded; a true silent discard cannot be expressed through the EAP module, which fails the session for any unhandled round, so an invalid message ends the session with an EAP-Failure, as with every other EAP method. The Do-Not-Respond reply code preserves the distinction from a policy-driven Failure for logging.
- Copyright
- 2026 Arran Cudbard-Bell (a.cud.nosp@m.bard.nosp@m.b@fre.nosp@m.erad.nosp@m.ius.o.nosp@m.rg)
Definition in file base.c.