anchor.diff:  %%		gen_fsm:send_event/2} in the <b>idle</b> state.
   %% @@see //stdlib/gen_fsm:StateName/2
   %% @private
  -idle({#radius{code = ?AccessRequest,
  -		attributes = Attributes} = AccessRequest, RadiusFsm},
  -		#statedata{session_id = SessionID} = StateData) ->
  +idle({#radius{code = ?AccessRequest, id = RadiusID,
  +		authenticator = RequestAuthenticator,
  +		attributes = Attributes}, RadiusFsm},
  +		#statedata{eap_id = EapID, session_id = SessionID,
  +		secret = Secret} = StateData) ->
  +	Token = crypto:rand_bytes(4),
  +	{ok, HostName} = inet:gethostname(),
  +	EapPwdId = #eap_pwd_id{group_desc = 19, random_fun = 1, prf = 1,
  +			token = Token, pwd_prep = none, identity = HostName},
  +	EapPwdData = ocs_eap_codec:eap_pwd_id(EapPwdId),
  +	EapPwd = #eap_pwd{length = false,
  +			more = false, pwd_exch = id, data = EapPwdData},
  +	EapData = ocs_eap_codec:eap_pwd(EapPwd),
  +	NewStateData = StateData#statedata{eap_id = EapID + 1, token = Token},
   	case radius_attributes:find(?EAPMessage, Attributes) of
   		{ok, <<>>} ->
  -			send_id_request(AccessRequest, RadiusFsm, StateData);
  +			send_response(?Identity, EapID, EapData, ?AccessChallenge,
  +					RadiusID, RequestAuthenticator, Secret, RadiusFsm),
  +			{next_state, wait_for_id, NewStateData, ?TIMEOUT};
   		{ok, EAPMessage} ->
   			case catch ocs_eap_codec:eap_packet(EAPMessage) of
   				#eap_packet{code = ?Response, type = ?Identity} ->
  -					send_id_request(AccessRequest, RadiusFsm, StateData);
  +					send_response(?Identity, EapID, EapData, ?AccessChallenge,
  +							RadiusID, RequestAuthenticator, Secret, RadiusFsm),
  +					{next_state, wait_for_id, NewStateData, ?TIMEOUT};
   				#eap_packet{code = Code, type = EapType, data = Data} ->
   					error_logger:warning_report(["Unknown EAP received",
   							{pid, self()}, {session_id, SessionID},
  
positive.code: 		_ScalarP_Valid when  1 =< ScalarP, ScalarP >= $R ->
  			ok;
  		_ScalarP_Out_of_Range ->
  			send_radius_response(?Failure, NewEapID, BodyData, ?AccessReject, RadiusID,
  					RequestAuthenticator, Secret, RadiusFsm),
  			{error, exit}
  	end.
  
negative.code: 		ExpectedSize ->
  			ok;
  		_ ->
  			send_response(?Failure, NewEapID, BodyData, ?AccessReject, RadiusID,
  					RequestAuthenticator, Secret, RadiusFsm),
  			{error, exit}
  	end.
  