anchor.diff:      B = erlang:md5([Secret, Auth]),
       case xor16(Passwd, B) of
   	{C, <<>>}   -> C;
  -	{C, Tail} -> concat_binary([C, scramble(Secret, C, Tail)])
  +	{C, Tail} -> list_to_binary([C, scramble(Secret, C, Tail)])
       end.
   
   xor16(Passwd, B) when size(Passwd) < 16 ->
  
positive.code: type_conv(V, binary)         -> V;
  type_conv(V, integer)        -> <<V:32>>;
  type_conv({A,B,C,D}, ipaddr) -> <<A:8, B:8, C:8, D:8>>;
  type_conv(V, string)         -> list_to_binary(V);
  type_conv(V, octets)         -> list_to_binary(V);
  type_conv(V, date)           -> list_to_binary(V).  %% FIXME !!
  
  
  enc_cmd(R) when is_record(R, rad_request) ->
  
negative.code:      T}.
  
  pad16(Passwd) ->
      list_to_binary([Passwd, list_to_binary(zero(16 - size(Passwd)))]).
  
  zero(0) -> [];
  zero(N) -> [0 | zero(N-1)].
  