anchor.diff:  				send_response(EapPacket1, ?AccessChallenge,
   					RadiusID, [], RequestAuthenticator, Secret, RadiusFsm),
   				NextStateData = NewStateData#statedata{rx_buf = [RxBuf, Data]},
  -				{next_state, client_key_exchange, NextStateData, ?TIMEOUT};
  +				{next_state, client_cipher, NextStateData, ?TIMEOUT};
   			#eap_ttls{more = true, message_len = MessageLength,
   					start = false, data = Data} ->
   				NewEapID = EapID + 1,
  
positive.code: 				BinTtlsData = iolist_to_binary([RxBuf, Data]),
  				NextStateData = NewStateData#statedata{rx_buf = [],
  						rx_length = undefined},
  				client_key_exchange1(BinTtlsData, NextStateData);
  			#eap_ttls{more = false, message_len = undefined,
  					start = false, data = Data} ->
  				RxLength = iolist_size([RxBuf, Data]),
  				BinTtlsData = iolist_to_binary([RxBuf, Data]),
  				NextStateData = NewStateData#statedata{rx_buf = [],
  								rx_length = undefined},
  				client_key_exchange1(BinTtlsData, NextStateData);
  			#eap_ttls{more = true, message_len = undefined,
  					start = false, data = Data} when RxBuf /= [] ->
  				NewEapID = EapID + 1,
  
negative.code: 			send_response(EapPacket, ?AccessChallenge,
  					RadiusID, [], RequestAuthenticator, Secret, RadiusFsm),
  			NewStateData = StateData#statedata{eap_id = NewEapID, tx_buf = []},
  			{next_state, client_cipher, NewStateData, ?TIMEOUT}
  	end.
  
  -spec client_cipher(Event :: timeout | term(), StateData :: #statedata{}) ->
  	Result :: {next_state, NextStateName :: atom(), NewStateData :: #statedata{}}
  		| {next_state, NextStateName :: atom(), NewStateData :: #statedata{},
  		Timeout :: non_neg_integer() | infinity}
  		| {next_state, NextStateName :: atom(), NewStateData :: #statedata{}, hibernate}
  		| {stop, Reason :: normal | term(), NewStateData :: #statedata{}}.
  %% @doc Handle events sent with {@link //stdlib/gen_fsm:send_event/2.
  %%		gen_fsm:send_event/2} in the <b>client_cipher</b> state.
  %% @@see //stdlib/gen_fsm:StateName/2
  %% @private
  client_cipher(timeout,
  		#statedata{session_id = SessionID} = StateData) ->
  	{stop, {shutdown, SessionID}, StateData};
  client_cipher({#radius{code = ?AccessRequest, id = RadiusID,
  		authenticator = RequestAuthenticator, attributes = Attributes},
  		RadiusFsm}, #statedata{eap_id = EapID, session_id = SessionID,
  		secret = Secret, rx_length = RxLength, rx_buf = RxBuf} = StateData) ->
  