anchor.diff:  normalise_dname(Name) -> dns:dname_to_lower(iolist_to_binary(Name)).
   
   normalise_dname_to_labels(Name) -> dns:dname_to_labels(normalise_dname(Name)).
  +
  +decode_asn1_dss_sig(Bin) when is_binary(Bin) ->
  +    {ok, #'DSS-Sig'{r = R, s = S}} = 'DNS-ASN1':decode('DSS-Sig', Bin),
  +    {R, S}.
  +
  +encode_asn1_dss_sig(R, S) when is_integer(R) andalso is_integer(S) ->
  +    Rec = #'DSS-Sig'{r = R, s = S},
  +    {ok, List} = asn1rt:encode('DNS-ASN1', 'DSS-Sig', Rec),
  +    iolist_to_binary(List).
  +
  
positive.code: 		    AlgNum when AlgNum =:= ?DNS_ALG_DSA orelse
  				AlgNum =:= ?DNS_ALG_NSEC3DSA ->
  			Asn1Sig = crypto:dss_sign(none, BaseSigInput, Key),
  			{'Dss-Sig-Value', R, S} = public_key:der_decode(
  						    'Dss-Sig-Value', Asn1Sig),
  			[ P, _Q, _G, _Y ] = Key,
  			T = (byte_size(P) - 64) div 8,
  			<<T, R:20/unit:8, S:20/unit:8>>;
  
negative.code:     SigInput = case AlgNum of
  		   AlgNum when AlgNum =:= ?DNS_ALG_DSA orelse
  			       AlgNum =:= ?DNS_ALG_NSEC3DSA ->
  		       SigInput1 = iolist_to_binary(SigInput0),
  		       SigInput1Size = byte_size(SigInput1),
  		       <<SigInput1Size:32, SigInput1/binary>>;
  		   AlgNum when AlgNum =:= ?DNS_ALG_RSASHA1 orelse
  			       AlgNum =:= ?DNS_ALG_NSEC3RSASHA1 ->
  		       Hash = crypto:sha(SigInput0),
  