Skip to content
John Safranek edited this page Oct 28, 2026 · 2 revisions

The algorithms wolfSSH can negotiate, as of the current master (after v1.6.0). Each list is in wolfSSH's default preference order.

What is actually available depends on how wolfSSL was built: an algorithm is left out when wolfSSL lacks the primitive it needs (for example, ML-KEM and ML-DSA need wolfSSL configured with --enable-mlkem --enable-mldsa, and ML-DSA needs wolfSSL 5.9.2 or later). Each algorithm can also be compiled out with its WOLFSSH_NO_* macro; see the flag list at the top of src/internal.c.

Soft-disabled algorithms work, but are not offered by default. Offer the SHA-1 ones by defining WOLFSSH_NO_SHA1_SOFT_DISABLE, and AES-CBC by defining WOLFSSH_NO_AES_CBC_SOFT_DISABLE. An application can also set its own lists with wolfSSH_CTX_SetAlgoListKex() and the related functions.

Key Exchange

  • mlkem768x25519-sha256 (post-quantum hybrid)
  • mlkem1024nistp384-sha384 (post-quantum hybrid)
  • mlkem768nistp256-sha256 (post-quantum hybrid)
  • curve25519-sha256
  • curve25519-sha256@libssh.org
  • ecdh-sha2-nistp521
  • ecdh-sha2-nistp384
  • ecdh-sha2-nistp256
  • diffie-hellman-group14-sha256
  • diffie-hellman-group16-sha512
  • diffie-hellman-group-exchange-sha256
  • diffie-hellman-group14-sha1 (soft-disabled)
  • diffie-hellman-group1-sha1 (soft-disabled)

wolfSSH also supports the strict KEX extension (kex-strict-c-v00@openssh.com / kex-strict-s-v00@openssh.com, and the unprefixed kex-strict-c / kex-strict-s) and the ext-info-c / ext-info-s markers for extension negotiation.

Host Key and Public Key Authentication

  • ssh-mldsa87-ed448@wolfssl.com (post-quantum composite)
  • ssh-mldsa87-es384@wolfssl.com (post-quantum composite)
  • ssh-mldsa65-ed25519@wolfssl.com (post-quantum composite)
  • ssh-mldsa65-es256@wolfssl.com (post-quantum composite)
  • ssh-mldsa44-ed25519@openssh.com (post-quantum composite)
  • ssh-mldsa44-es256@wolfssl.com (post-quantum composite)
  • ssh-mldsa-87 (post-quantum)
  • ssh-mldsa-65 (post-quantum)
  • ssh-mldsa-44 (post-quantum)
  • ssh-ed25519
  • rsa-sha2-256
  • rsa-sha2-512
  • ecdsa-sha2-nistp256
  • ecdsa-sha2-nistp384
  • ecdsa-sha2-nistp521
  • ssh-rsa (soft-disabled)

X.509 Certificates

Built with --enable-certs (WOLFSSH_CERTS):

  • x509v3-ssh-mldsa-87
  • x509v3-ssh-mldsa-65
  • x509v3-ssh-mldsa-44
  • x509v3-ecdsa-sha2-nistp256
  • x509v3-ecdsa-sha2-nistp384
  • x509v3-ecdsa-sha2-nistp521
  • x509v3-ssh-rsa (soft-disabled)

OpenSSH Certificates

For user authentication only. Built with --enable-ossh-certs (WOLFSSH_OSSH_CERTS):

  • ssh-ed25519-cert-v01@openssh.com
  • ecdsa-sha2-nistp256-cert-v01@openssh.com
  • ecdsa-sha2-nistp384-cert-v01@openssh.com
  • ecdsa-sha2-nistp521-cert-v01@openssh.com
  • ssh-rsa-cert-v01@openssh.com
  • rsa-sha2-256-cert-v01@openssh.com
  • rsa-sha2-512-cert-v01@openssh.com

Cipher

  • aes256-gcm@openssh.com
  • aes192-gcm@openssh.com
  • aes128-gcm@openssh.com
  • aes256-ctr
  • aes192-ctr
  • aes128-ctr
  • aes256-cbc (soft-disabled)
  • aes192-cbc (soft-disabled)
  • aes128-cbc (soft-disabled)

MAC

  • hmac-sha2-256
  • hmac-sha2-512
  • hmac-sha1-96 (soft-disabled)
  • hmac-sha1 (soft-disabled)

The MAC is not used with the AES-GCM ciphers.

User Authentication Methods

  • publickey
  • password
  • keyboard-interactive

Clone this wiki locally