anchor.diff:  supported_algorithms(kex) ->
       select_crypto_supported(
         [
  -       {'ecdh-sha2-nistp384',                   [{public_keys,ecdh}, {ec_curve,secp384r1}, {hashs,sha384}]},
  -       {'ecdh-sha2-nistp521',                   [{public_keys,ecdh}, {ec_curve,secp521r1}, {hashs,sha512}]},
  -       {'ecdh-sha2-nistp256',                   [{public_keys,ecdh}, {ec_curve,secp256r1}, {hashs,sha256}]},
  +       {'ecdh-sha2-nistp384',                   [{public_keys,ecdh}, {curves,secp384r1}, {hashs,sha384}]},
  +       {'ecdh-sha2-nistp521',                   [{public_keys,ecdh}, {curves,secp521r1}, {hashs,sha512}]},
  +       {'ecdh-sha2-nistp256',                   [{public_keys,ecdh}, {curves,secp256r1}, {hashs,sha256}]},
          %% https://tools.ietf.org/html/draft-ietf-curdle-ssh-curves
          %% Secure Shell (SSH) Key Exchange Method using Curve25519 and Curve448
          {'curve25519-sha256',                    [{public_keys,eddh}, {curves,x25519}, {hashs,sha256}]},
  
positive.code: supported_algorithms(public_key) ->
      select_crypto_supported(
        [
         {'ecdsa-sha2-nistp384',  [{public_keys,ecdsa}, {hashs,sha384}, {ec_curve,secp384r1}]},
         {'ecdsa-sha2-nistp521',  [{public_keys,ecdsa}, {hashs,sha512}, {ec_curve,secp521r1}]},
         {'ecdsa-sha2-nistp256',  [{public_keys,ecdsa}, {hashs,sha256}, {ec_curve,secp256r1}]},
         {'ssh-rsa',              [{public_keys,rsa},   {hashs,sha}                         ]},
         {'rsa-sha2-256',         [{public_keys,rsa},   {hashs,sha256}                      ]},
         {'rsa-sha2-512',         [{public_keys,rsa},   {hashs,sha512}                      ]},
  
negative.code: 
  
  select_crypto_supported(L) ->    
      Sup = crypto:supports(),
      [Name || {Name,CryptoRequires} <- L,
  	     crypto_supported(CryptoRequires, Sup)].
  
  crypto_supported(Conditions, Supported) ->
      lists:all( fun({Tag,CryptoName}) when is_atom(CryptoName) ->
  