anchor.diff:      Alg = term_or_arg(fun alg_to_atom/1, AlgNum),
       Key = case PublicKey of
   	      <<0, Len:16, Exp:Len/unit:8, ModBin/binary>> ->
  -		  Mod = binary:decode_unsigned(ModBin),
  +		  ModSize = byte_size(ModBin),
  +		  <<Mod:ModSize/unit:8>> = ModBin,
   		  [crypto:mpint(Exp), crypto:mpint(Mod)];
   	      <<Len:8, Exp:Len/unit:8, ModBin/binary>> ->
  -		  Mod = binary:decode_unsigned(ModBin),
  +		  ModSize = byte_size(ModBin),
  +		  <<Mod:ModSize/unit:8>> = ModBin,
   		  [crypto:mpint(Exp), crypto:mpint(Mod)]
   	  end,
       KeyTag = bin_to_key_tag(Bin),
  
positive.code: 
  unique_list(List) when is_list(List) ->
      lists:sort(sets:to_list(sets:from_list(List))).
  
negative.code: 					       public_key = PKM}, CompMap)
    when Alg =:= ?DNS_ALG_DSA orelse
         Alg =:= ?DNS_ALG_NSEC3DSA ->
      [<<_MSize:32, MBin/binary>>, _, _, _] = PKM,
      [P, Q, G, Y] = [ crypto:erlint(Mpint) || Mpint <- PKM ],
      M = byte_size(strip_leading_zeros(MBin)),
      T = (M - 64) div 8,
      PKBin = <<T, Q:20/unit:8, P:M/unit:8, G:M/unit:8, Y:M/unit:8>>,
      {<<Flags:16, Protocol:8, Alg:8, PKBin/binary>>, CompMap};
  