anchor.diff:            16#9a8f4925d1519f5775cf46b04b5800d4ee9ee8bae8bc5565d498c28dd9c9baf574a9419744897391006382a6f127ab1d9ac2d8c0a598726b,
             x448,
             hexstr2bin("07fff4181ac6cc95ec1c16a94a0f74d12da232ce40a77552281d282bb60c0b56fd2464c335543936521c24403085d59a449a5037514a879d")}
  -        ],
  -    lists:filter(fun ({_Type, _Pub, _Priv, Curve, _SharedSecret}) ->
  -                         lists:member(Curve, Curves)
  -                 end,
  -                 TestCases).
  +        ]
  +        ).
   
   dh() ->
       {dh, 90970053988169282502023478715631717259407236400413906591937635666709823903223997309250405131675572047545403771567755831138144089197560332757755059848492919215391041119286178688014693040542889497092308638580104031455627238700168892909539193174537248629499995652186913900511641708112112482297874449292467498403, 2}.
  
positive.code:           hexstr2bin("8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a")},
           {ecdh, x25519,
            hexstr2bin("5dab087e624a8a4b79e17f8b83800ee66f3bb1292618b6fd1c2f8b27ff88e0eb"),
            hexstr2bin("de9edb7d7b7dc1b4d35b61c2ece435373f8343c85b78674dadfc7e146f882b4f")}],
      lists:filter(fun ({_Type, Curve, _Priv, _Pub}) ->
                           lists:member(Curve, Curves)
                   end,
                   TestCases).
  
  
  int_to_bin(X) when X < 0 -> int_to_bin_neg(X, []);
  int_to_bin(X) -> int_to_bin_pos(X, []).
  
negative.code:     SharedSecret = crypto:compute_key(dh, UserPub, HostPriv, [P, G]).
      
  do_compute({ecdh = Type, Pub, Priv, Curve, SharedSecret}) ->
      ct:log("~p ~p", [Type,Curve]),
      Secret = crypto:compute_key(Type, Pub, Priv, Curve),
       case Secret of
  	 SharedSecret ->
  