anchor.diff:  sha('curve448-sha512') -> sha512;
   sha(x25519) -> sha256;
   sha(x448) -> sha512;
  -sha(Str) when is_list(Str), length(Str)<50 -> sha(list_to_atom(Str)).
  +sha(Str) when is_list(Str), length(Str)<50 -> sha(list_to_existing_atom(Str)).
   
   
   mac_key_bytes('hmac-sha1')    -> 20;
  
positive.code: 
  
  select_all(CL, SL) when length(CL) + length(SL) < ?MAX_NUM_ALGORITHMS ->
      A = CL -- SL,  %% algortihms only used by client
      %% algorithms used by client and server (client pref)
      lists:map(fun(ALG) -> list_to_atom(ALG) end, (CL -- A));
  select_all(CL, SL) ->
      Error = lists:concat(["Received too many algorithms (",length(CL),"+",length(SL)," >= ",?MAX_NUM_ALGORITHMS,")."]),
      ?DISCONNECT(?SSH_DISCONNECT_PROTOCOL_ERROR,
  
negative.code: public_algo({ed_pub, ed448,_}) -> 'ssh-ed448';
  public_algo({#'ECPoint'{},{namedCurve,OID}}) -> 
      Curve = public_key:oid2ssh_curvename(OID),
      try list_to_existing_atom("ecdsa-sha2-" ++ binary_to_list(Curve))
      catch
          _:_ -> undefined
      end.
  
  
  sha('ssh-rsa') -> sha;
  