anchor.diff:       {dss,                  [], [sign_verify
                                    %% Does not work yet:  ,public_encrypt, private_encrypt
                                   ]},
  -     {ecdsa,                [], [sign_verify
  +     {ecdsa,                [], [sign_verify, use_all_ec_sign_verify
                                    %% Does not work yet:  ,public_encrypt, private_encrypt
                                   ]},
        {ed25519,              [], [sign_verify,
  
positive.code:     Results =
          [{{Curve,Hash},
            try
                {Pub,Priv} = crypto:generate_key(ecdh, Curve),
                true = is_binary(Pub),
                true = is_binary(Priv),
  
negative.code:     end.
  
  %%--------------------------------------------------------------------
  use_all_ecdh_generate_compute(_Config) ->
      Sups = crypto:supports(),
      Curves = proplists:get_value(curves, Sups),
      ct:log("Lib: ~p~nFIPS: ~p~nCurves:~n~p", [crypto:info_lib(),
                                                crypto:info_fips(),
                                                Curves]),
      Results =
          [{Curve,
            try
                ct:log("~p",[Curve]),
                {APub,APriv} = crypto:generate_key(ecdh, Curve),
                {BPub,BPriv} = crypto:generate_key(ecdh, Curve),
                true = is_binary(APub),
                true = is_binary(APriv),
                true = is_binary(BPub),
                true = is_binary(BPriv),
  
                ACommonSecret = crypto:compute_key(ecdh, BPub, APriv, Curve),
                BCommonSecret = crypto:compute_key(ecdh, APub, BPriv, Curve),
                ACommonSecret == BCommonSecret
            catch
                C:E ->
                    {C,E}
            end}
           || Curve <- [ed25519, ed448, x25519, x448],
              lists:member(Curve, Curves)
          ],
      Fails0 =
          lists:filter(fun({_,true}) -> false;
                          (_) -> true
                       end, Results),
      case Fails0 of
          [{ed25519,_}, {ed448,_}] ->
              ok;
          _ ->
              Fails = lists:filter(fun({ed25519,_}) -> true;
                                      ({ed448,_}) -> true;
                                      (_) -> false
                                   end, Fails0),
              ct:log("Fails:~n~p",[Fails]),
              ct:fail("Bad curve(s)",[])
      end.
  
  %%--------------------------------------------------------------------
  generate() ->
       [{doc, " Test crypto:generate_key"}].
  generate(Config) when is_list(Config) ->
  