anchor.diff:  		binary_to_list(UserName), Secret, MAC, Auth, RadId),
   	{RadId, Auth}.
   
  -server_passthrough(Socket, Address, Port, _NasId, _UserName, Secret,
  +server_passthrough_radius(Socket, Address, Port, _NasId, _UserName, Secret,
   			_MAC, Auth, RadId) ->
   	EapMsg = access_accept(Socket, Address, Port,
   			Secret, RadId, Auth),
  
positive.code: 	TtlsPacket = ocs_eap_codec:eap_ttls(EapData),
  	NewRadId = RadId + 1,
  	NewAuth = radius:authenticator(),
  	server_hello1(TtlsPacket, Socket, Address, Port, NasId,
  		UserName, Secret, MAC, NewAuth, NewRadId, NewEapId, <<SH/binary, Buf/binary>>);
  server_hello1(#eap_ttls{data = SH}, _, _, _, _, _, _, _, _,
  		RadId, EapId, Buf) ->
  	%send_ack(Socket, Address, Port, NasId, UserName, Secret,
  	%		MAC, Auth, RadId, EapId),
  	NewRadId = RadId + 1,
  	{NewRadId, EapId, <<Buf/binary, SH/binary>>}.
  
  client_cipher(Data, Socket, Address, Port, NasId, UserName, Secret,
  		MAC, Auth, EapId, RadId) ->
  	client_cipher1(Data, Socket, Address, Port, NasId, UserName, Secret,
  			MAC, Auth, EapId, RadId, <<>>).
  %% @hidden
  client_cipher1(<<?Handshake, _:32, ?ClientKeyExchange, _/binary>>  = Data, Socket, Address, Port,
  		NasId, UserName, Secret, MAC, Auth, EapId, RadId, Buff) ->
  	client_cipher2(Data, Socket, Address, Port,
  			NasId, UserName, Secret, MAC, Auth, EapId, RadId, Buff);
  client_cipher1(<<?ChangeCipherSpec, _:32, 1, _/binary>>  = Data, Socket, Address, Port,
  		NasId, UserName, Secret, MAC, Auth, EapId, RadId, Buff) ->
  	client_cipher2(Data, Socket, Address, Port,
  			NasId, UserName, Secret, MAC, Auth, EapId, RadId, Buff);
  client_cipher1(<<?Handshake, _/binary>>  = Data, Socket, Address, Port,
  		NasId, UserName, Secret, MAC, Auth, EapId, RadId, Buff) ->
  	ClientCipher = <<Buff/binary, Data/binary>>,
  	client_cipher3(ClientCipher, Socket, Address, Port,
  			NasId, UserName, Secret, MAC, Auth, EapId, RadId).
  %% @hidden
  client_cipher2(<<_:24, L1:16, _/binary>>  = Data, Socket, Address, Port,
  		NasId, UserName, Secret, MAC, Auth, EapId, RadId, Buff) ->
  	case Data of
  		<<_:40, _:L1/binary>> ->
  			{_SslPid2, Rest} = ssl_handshake(),
  			Chunk = <<Buff/binary, Data/binary>>,
  			client_cipher1(Rest, Socket, Address, Port,
  				NasId, UserName, Secret, MAC, Auth, EapId, RadId, Chunk);
  		<<_:40, _:L1/binary, Rest/binary>> = Payload->
  			BlockSize = L1 + 5,
  			<<CCBlock:BlockSize/binary, Rest/binary>> = Payload,
  			Chunk = <<Buff/binary, CCBlock/binary>>,
  			client_cipher1(Rest, Socket, Address, Port,
  				NasId, UserName, Secret, MAC, Auth, EapId, RadId, Chunk)
  	end.
  %% @hidden
  client_cipher3(<<Chunk:1386/binary, Rest/binary>> = Data, Socket, Address, Port,
  		NasId, UserName, Secret, MAC, Auth, EapId, RadId) ->
  	Size = size(Data),
  	EapTtls = #eap_ttls{more = true, message_len = Size, data = Chunk},
  
negative.code: 	NewEapId = receive_ack(Socket, Address, Port, Secret, Auth, RadId),
  	NewRadId = RadId + 1,
  	NewAuth = radius:athenticator(),
  	client_cipher_radius3(Rest, Socket, Address, Port, NasId, UserName,
  			Secret, MAC, NewAuth, NewEapId, NewRadId);
  client_cipher_radius3(Chunk, Socket, Address, Port, NasId, UserName,
  		Secret, MAC, Auth, EapId, RadId) ->
  	EapTtls = #eap_ttls{data = Chunk},
  	EapData = ocs_eap_codec:eap_ttls(EapTtls),
  