anchor.diff:  			send_response(EapPacket, ?AccessReject, [], RadiusID,
   					RequestAuthenticator, RequestAttributes, NewStateData),
   			{stop, {shutdown, SessionID}, NewStateData}
  +	end;
  +confirm(#diameter_eap_app_DER{} = Response, #statedata{eap_id = EapID,
  +		session_id = SessionID, auth_req_type = AuthType, origin_host = OH,
  +		origin_realm = OR, diameter_port_server = PortServer} = StateData) ->
  +	try
  +		EapMessage = Response#diameter_eap_app_DER.'EAP-Payload',
  +		EapData = ocs_eap_codec:eap_packet(EapMessage),
  +		#eap_packet{code = response, type = ?PWD,
  +				identifier = EapID, data = Data} = EapData,
  +		EapHeader = ocs_eap_codec:eap_pwd(Data),
  +		#eap_pwd{pwd_exch = confirm, data = ConfirmP} = EapHeader,
  +		NewStateData = StateData#statedata{confirm_p = ConfirmP},
  +		confirm4(NewStateData)
  +	catch
  +		_:_ ->
  +			EapPacket = #eap_packet{code = failure, identifier = EapID},
  +			Answer = generate_diameter_response(SessionID, AuthType,
  +					 ?'DIAMETER_BASE_RESULT-CODE_UNABLE_TO_COMPLY', OH, OR, EapPacket),
  +			gen_server:cast(PortServer, {self(), Answer}),
  +			{stop, {shutdown, SessionID}, StateData}
   	end.
   %% @hidden
   confirm1(#radius{id = RadiusID, authenticator = RequestAuthenticator,
  
positive.code: -export([]).
  
  %% export the ocs_eap_pwd_fsm state callbacks
  -export([eap_start/2, id/2, commit/2, confirm/2,
  			eap_start/3, id/3, commit/3, confirm/3]).
  
  %% export the call backs needed for gen_fsm behaviour
  -export([init/1, handle_event/3, handle_sync_event/4, handle_info/3,
  
negative.code: 			EapPacket = #eap_packet{code = success, identifier = EapID},
  			Answer = generate_diameter_response(SessionID, AuthType,
  					 ?'DIAMETER_BASE_RESULT-CODE_SUCCESS', OH, OR, EapPacket),
  			gen_server:cast(PortServer, {self(), Answer}),
  			{stop, {shutdown, SessionID}, StateData#statedata{mk = MK, msk = MSK}};
  		{error, _Reason} ->
  			EapPacket1 = #eap_packet{code = failure, identifier = EapID},
  			Answer1 = generate_diameter_response(SessionID, AuthType,
  					 ?'DIAMETER_BASE_RESULT-CODE_UNABLE_TO_COMPLY', OH, OR, EapPacket1),
  			gen_server:cast(PortServer, {self(), Answer1}),
  			{stop, {shutdown, SessionID}, StateData}
  	end.			
  
  -spec handle_event(Event, StateName, StateData) -> Result
  