anchor.diff:  	mac([]).
   %% @hidden
   mac(Acc) when length(Acc) =:= 12 ->
  -	list_to_binary(Acc);
  +	Acc;
   mac(Acc) ->
   	mac([integer_to_list(rand:uniform(255), 16) | Acc]).
   
  
positive.code: 	Secret = ct:get_config(radius_shared_secret),
  	Realm = ?config(realm, Config),
  	MSIN = msin(),
  	PeerId = "6" + ct:get_config(mcc) ++ ct:get_config(mcc)
  			++ MSIN ++ "@wlan." ++ Realm,
  	ok = send_radius_identity(Socket, Address, Port, NasId,
  			PeerId, Secret, ReqAuth, EapId, RadId),
  	NextEapId = EapId + 1.
  	{NextEapId, _Token, _ServerID} = receive_radius_id(Socket, Address,
  			Port, Secret, ReqAuth, RadId).
  
  
negative.code: 	ReqPacket2 = radius:codec(Request2),
  	gen_udp:send(Socket, Address, Port, ReqPacket2).
  
  radius_access_challenge(Socket, Address, Port, Secret, RadId, ReqAuth) ->
  	receive_radius(?AccessChallenge, Socket, Address, Port, Secret, RadId, ReqAuth).
  
  radius_access_accept(Socket, Address, Port, Secret, RadId, ReqAuth) ->
  	receive_radius(?AccessAccept, Socket, Address, Port, Secret, RadId, ReqAuth).
  
  radius_access_reject(Socket, Address, Port, Secret, RadId, ReqAuth) ->
  	receive_radius(?AccessReject, 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, <<0:128>>, RespAttr1),
  	Resp3 = Resp2#radius{attributes = RespAttr2},
  	RespPacket3 = radius:codec(Resp3),
  	MsgAuth = crypto:hmac(md5, Secret, RespPacket3),
  	{ok, EapMsg} = radius_attributes:find(?EAPMessage, RespAttr1),
  	EapMsg.
  
  %% @hidden
  receive_radius_id(Socket, Address, Port, Secret, ReqAuth, RadId) ->
  	EapMsg = radius_access_challenge(Socket, Address, Port,
  			Secret, RadId, ReqAuth),
  	#eap_packet{code = request, type = ?AKA, identifier = EapId,
  			data = EapData} = ocs_eap_codec:eap_packet(EapMsg).
  
  %% @hidden
  send_radius_identity(Socket, Address, Port, NasId,
  		PeerId, Secret, Auth, EapId, RadId) ->
  