anchor.diff:  -define(CertificateVerify,		15).
   -define(ClientKeyExchange,		16).
   -define(Finished,					20).
  +
   
   -include_lib("radius/include/radius.hrl").
   -include("ocs_eap_codec.hrl").
  
positive.code: 			send_response(EapPacket2, ?AccessReject,
  					RadiusID, [], RequestAuthenticator, Secret, RadiusFsm),
  			{stop, {shutdown, SessionID}, NewStateData}
  	end.
  
  -spec server_cipher(Event, StateData) -> Result
  
negative.code: 			identifier = NewEapID, data = EapData},
  	send_response(EapPacket, ?AccessChallenge,
  			RadiusID, [], RequestAuthenticator, Secret, RadiusFsm),
  	NewStateData = StateData#statedata{eap_id = NewEapID, tx_buf = <<>>},
  	{next_state, client_passthrough, NewStateData};
  finish({eap_tls, _SslPid, <<?Handshake, _/binary>> = Data},
  		#statedata{tx_buf = TxBuf, start = #diameter_eap_app_DER{},
  		eap_id = EapID, session_id = SessionID, auth_req_type = AuthType,
  		origin_host = OH, origin_realm = OR, port_server = PortServer} = StateData) ->
  	NewEapID = (EapID rem 255) + 1,
  	BinData = <<TxBuf/binary, Data/binary>>,
  	EapTtls = #eap_ttls{data = BinData},
  	EapData = ocs_eap_codec:eap_ttls(EapTtls),
  	EapPacket = #eap_packet{code = request, type = ?TTLS,
  			identifier = NewEapID, data = EapData},
  	Answer = generate_diameter_response(SessionID, AuthType,
  			?'DIAMETER_BASE_RESULT-CODE_MULTI_ROUND_AUTH', OH, OR, EapPacket),
  	gen_server:cast(PortServer, {self(), Answer}),
  	NewStateData = StateData#statedata{eap_id = NewEapID, tx_buf = <<>>},
  	{next_state, client_passthrough, NewStateData}.
  
  