anchor.diff:      
   valid_key_sha_alg_ec(OID, Alg) -> 
       Curve = public_key:oid2ssh_curvename(OID),
  -    Alg == list_to_atom("ecdsa-sha2-" ++ binary_to_list(Curve)).
  +    try Alg == list_to_existing_atom("ecdsa-sha2-" ++ binary_to_list(Curve))
  +    catch
  +        _:_ -> false
  +    end.
       
   
   -dialyzer({no_match, public_algo/1}).
  
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: sha('curve448-sha512') -> sha512;
  sha(x25519) -> sha256;
  sha(x448) -> sha512;
  sha(Str) when is_list(Str), length(Str)<50 -> sha(list_to_existing_atom(Str)).
  
  
  mac_key_bytes('hmac-sha1')    -> 20;
  