anchor.diff:      SharedSecret = crypto:compute_key(dh, UserPub, HostPriv, [P, G]).
       
   do_compute({ecdh = Type, Pub, Priv, Curve, SharedSecret}) ->
  -    Secret = crypto:bytes_to_integer(crypto:compute_key(Type, Pub, Priv, Curve)),
  +    Secret = crypto:compute_key(Type, Pub, Priv, Curve),
        case Secret of
   	 SharedSecret ->
   	     ok;
   	 Other ->
   	     ct:fail({{crypto, compute_key, [Type, Pub, Priv, Curve]}, {expected, SharedSecret}, {got, Other}})
        end.
  +
  +hexstr2point(X, Y) ->
  +    <<4:8, (hexstr2bin(X))/binary, (hexstr2bin(Y))/binary>>.
   
   hexstr2bin(S) ->
       list_to_binary(hexstr2list(S)).
  
positive.code:      {host, [Verifier, Prime, Version, Scrambler]},
       SessionKey}.
  ecdh() ->
      {ecdh, 10053111454769593468622878414300213417816614162107065345116848162553478019161427871683337786549966,
       1373339791687564785573162818422814591820885704654,
       secp160r1, 990333295438215762119481641129490894973766052278}.
  
  dh() ->
      {dh, 0087761979513264537414556992123116644042638206717762626089877284926656954974893442000747478454809111207351620687968672207938731607963470779396984752680274820156266685080223616226905101126463253150237669547023934604953898814222890239130021414026118792251620881355456432549881723310342870016961804255746630219, 2}.
  
negative.code:     GenerateCompute = [srp3(), srp6(), srp6a()],
      [{generate_compute, GenerateCompute} | Config];
  group_config(ecdh, Config) ->
      Compute = ecdh(),
      [{compute, Compute} | Config];
  group_config(dh, Config) ->
      GenerateCompute = [dh()],
  