Back to FlowSsh Documentation

HostKeyAlgs Structure/Class


struct FlowSshC_HostKeyAlgs
  byte m_ecdsaSecp256k1;
  byte m_ecdsaNistp521;
  byte m_ecdsaNistp384;
  byte m_ecdsaNistp256;
  byte m_sshRsa;
  byte m_sshDss;


struct HostKeyAlgs : public FlowSshC_HostKeyAlgs
    m_ecdsaSecp256k1 = 1;
    m_ecdsaNistp521 = 1;
    m_ecdsaNistp384 = 1;
    m_ecdsaNistp256 = 1;
    m_sshRsa = 1;
    m_sshDss = 1;


public sealed class HostKeyAlgs
  public byte EcdsaSecp256k1;
  public byte EcdsaNistp521;
  public byte EcdsaNistp384;
  public byte EcdsaNistp256;
  public byte SshRsa;
  public byte SshDss;
  public HostKeyAlgs()
    EcdsaSecp256k1 = 1;
    EcdsaNistp521 = 1;
    EcdsaNistp384 = 1;
    EcdsaNistp256 = 1;
    SshRsa = 1;
    SshDss = 1;


  • EcdsaSecp256k1: Priority of "ecdsa-sha2-".
  • EcdsaNistp521: Priority of "ecdsa-sha2-nistp521".
  • EcdsaNistp384: Priority of "ecdsa-sha2-nistp384".
  • EcdsaNistp256: Priority of "ecdsa-sha2-nistp256".
  • SshRsa: Priority of "ssh-rsa".
  • SshDss: Priority of "ssh-dsa".


FlowSshC/Cpp/Net supports ECDSA, RSA, and DSA algorithms for SSH host authentication. Many SSH servers have host-keys for several algorithms; some have host-keys only for one of them. The HostKeyAlgs structure/class is used to specify which of the algorithms to use, and if several, which one to prefer. For member values the following rules apply:

  • An algorithm is enabled if it holds a non-zero value.
  • Algorithms with lower non-zero values precede algorithms with higher values.
  • Algorithms holding the same non-zero value are ordered by their declaration order.

By default, all host-key algorithms are enabled.