anchor.diff:  		commit1(RadiusFsm, AccessRequest, BodyData, NewStateData)
   	catch
   		_:_ ->
  -			radius:response(RadiusFsm, {error, ignore}),
  +			EapPacket2 = #eap_packet{code = failure, identifier = EapID},
  +			send_response(EapPacket2, ?AccessReject,
  +					RadiusID, [], RequestAuthenticator, Secret, RadiusFsm),
   			{stop, {shutdown, SessionID}, StateData}
   	end.
   %% @hidden
  
positive.code: 	case catch ocs_eap_pwd:compute_ks(<<Srand:256>>,
  			PWE, ScalarP, ElementP) of
  		{'EXIT', _Reason} ->
  			radius:response(RadiusFsm, {error, ignore}),
  			{next_state, commit, StateData, ?TIMEOUT};
  		Ks ->
  			Ciphersuite = <<GroupDesc:16, RandFunc, PRF>>,
  			Input = [Ks, ElementS, ScalarS, ElementP, ScalarP, Ciphersuite],
  
negative.code: %%
  commit(timeout, #statedata{session_id = SessionID} = StateData)->
  	{stop, {shutdown, SessionID}, StateData};
  commit({#radius{id = RadiusID, authenticator = RequestAuthenticator,
  		attributes = Attributes} = AccessRequest, RadiusFsm},
  		#statedata{eap_id = EapID, session_id = SessionID,
  		secret = Secret} = StateData) ->
  	try 
  		EapMessage = radius_attributes:fetch(?EAPMessage, Attributes),
  		EapPacket1 = ocs_eap_codec:eap_packet(EapMessage),
  		#eap_packet{code = response, type = ?PWD,
  				identifier = EapID, data = Data} = EapPacket1,
  		EapHeader = ocs_eap_codec:eap_pwd(Data),
  		#eap_pwd{pwd_exch = commit, data = BodyData} = EapHeader,
  		Body = ocs_eap_codec:eap_pwd_commit(BodyData),
  