Repository navigation
Algorithm List
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.
- 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.
- 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)
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)
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
- 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)
- 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.
- publickey
- password
- keyboard-interactive
