anchor.diff:  	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).
  +
  
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: 	NasId = atom_to_list(node()),
  	AnonymousName = "DonaldTrump",
  	MAC = "dd:ee:ff:aa:bb:cc",
  	send1(Socket, Address, Port, Secret, NasId, MAC, AnonymousName, Data).
  %% @hidden
  send1(Socket, Address, Port, Secret, NasId, MAC, UserName,
  			[<<?Handshake, _:32>>, [[?ClientHello | _] | _]] = Data) ->
  	RadId = 10, EapId = 3,
  	Auth = radius:authenticator(),
  	client_hello(Socket, Address, Port, Auth,
  			RadId, EapId, Secret, NasId, MAC, UserName, Data),
  	server_hello(Socket, Address, Port, Auth, RadId, Secret).
  
  -spec controlling_process(ClientPid, Pid) ->
  	ok | {error, Reason} when
  