anchor.diff:  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}]},
  +       {'ecdsa-sha2-nistp384',  [{public_keys,ecdsa}, {hashs,sha384}, {curves,secp384r1}]},
  +       {'ecdsa-sha2-nistp521',  [{public_keys,ecdsa}, {hashs,sha512}, {curves,secp521r1}]},
  +       {'ecdsa-sha2-nistp256',  [{public_keys,ecdsa}, {hashs,sha256}, {curves,secp256r1}]},
          {'ssh-rsa',              [{public_keys,rsa},   {hashs,sha}                         ]},
          {'rsa-sha2-256',         [{public_keys,rsa},   {hashs,sha256}                      ]},
          {'rsa-sha2-512',         [{public_keys,rsa},   {hashs,sha512}                      ]},
  
positive.code: 	       end, Conditions).
  
  crypto_name_supported(Tag, CryptoName, Supported) ->
      lists:member(CryptoName, proplists:get_value(Tag,Supported,[])).
  
  len_supported(Name, Len) ->
      try
  
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) ->
  