anchor.diff:  %%----------------------------------------------------------------------
   %%  internal functions
   %%----------------------------------------------------------------------
  -client_hello(Socket, Address, Port, RadId, EapId, Secret, NasId,
  +client_hello(Socket, Address, Port, ReqAuth, RadId, EapId, Secret, NasId,
   			MAC, AnonymousName, Data) ->
   	TtlsData = iolist_to_binary(Data),
   	Ttls = ocs_eap_codec:eap_ttls(#eap_ttls{version = 1,data = TtlsData}),
  
positive.code: 			identifier = EapId, data = Ttls},
  	EapMsg = ocs_eap_codec:eap_packet(EapRecord),
  	EapMessages = eap_fragment(EapMsg, []),
  	access_request(Socket, Address, Port,
  			NasId, AnonymousName, Secret, MAC, RadId, EapMessages).
  
  eap_fragment(<<Chunk:253/binary, Rest/binary>>, RadiusAttributes) ->
  	AttributList = radius_attributes:add(?EAPMessage, Chunk,
  
negative.code: 	Request2 = Request1#radius{attributes = A7},
  	ReqPacket2 = radius:codec(Request2),
  	ok = gen_udp:send(Socket, Address, Port, ReqPacket2).
  
  access_challenge(Socket, Address, Port, Secret, RadId, ReqAuth) ->
  	receive_radius(?AccessChallenge, Socket, Address, Port, Secret, RadId, ReqAuth).
  
  receive_radius(Code, Socket, Address, Port, Secret, RadId, ReqAuth) ->
  	{ok, {Address, Port, RespPacket1}} = gen_udp:recv(Socket, 0),
  	Resp1 = radius:codec(RespPacket1),
  	#radius{code = Code, id = RadId, authenticator = RespAuth,
  		attributes = BinRespAttr1} = Resp1,
  	Resp2 = Resp1#radius{authenticator = ReqAuth},
  	RespPacket2 = radius:codec(Resp2),
  	RespAuth = binary_to_list(crypto:hash(md5, [RespPacket2, Secret])),
  	RespAttr1 = radius_attributes:codec(BinRespAttr1),
  	{ok, MsgAuth} = radius_attributes:find(?MessageAuthenticator, RespAttr1),
  	RespAttr2 = radius_attributes:store(?MessageAuthenticator,
  			list_to_binary(lists:duplicate(16, 0)), RespAttr1),
  	Resp3 = Resp2#radius{attributes = RespAttr2},
  	RespPacket3 = radius:codec(Resp3),
  	MsgAuth = crypto:hmac(md5, Secret, RespPacket3),
  	EapMsg = radius_attributes:get_all(?EAPMessage, RespAttr1),
  	iolist_to_binary(EapMsg).
  
  