2 Algorithm List
John Safranek edited this page 2026-10-28 13:58:32 -07:00

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