-
Add server authentication helpers
matches_username(),matches_password()for constant time comparison. -
Add environment session variable support
-
Add mlkem768x25519 hybrid post-quantum key exchange Enabled by
mlkemfeature, will soon be default.
-
Fix public key authentication for the server, previously signatures would not validate. Github #30
-
Don't fail in some circumstances during key exchange when packets are received in particular order. Github #25, Github #27
-
Fix a hang where channels wouldn't get woken for more output after the SSH stream was written out. Github #25
-
Fix using sshwire-derive outside of sunset
-
Server auth events such as
ServFirstAuthcan enable or disable password or public key auth for subsequent attempts. Now no authentication methods are enabled by default, they must be explicitly enabled with egenable_password_auth(),enable_pubkey_auth(). -
Minimum Rust version is 1.87
-
Channels::by_handle_mut()renamed fromfrom_handle_mut()to be more idiomatic. -
Log a better warning when host key signatures fail
-
Code size improvements.
-
Fail with
PacketWrongwhen calling an event method, rather than on a subsequentprogress()call. -
CI scripts now build in
target/cirather thantesting/target
-
New
EventAPI to customise program behaviour, replacing previousBehaviourtrait. -
Reduced code size, client or server code is not included where not used (implemented with
CliServgeneric parameter). -
Various fixes and API improvements. Edge conditions caught by fuzzing are now handled properly.
-
picow and Embassy std demos are moved to a separate top level demos/ directory.
-
Demos config username changed from "admin" to "config".
-
sunset-asyncis now the common async crate, for both no_std and std (previously namedsunset-embassy). -
sunset-stdasynccrate has std-specific features and thesunsetccommandline client example (previously namedsunset-async).
-
Added an initial server fuzzing target.
-
Improved some API documentation.
- Removed
defmt, now only havelog.defmtcould be re-added if there is a use, but at present it's simpler to keep one format syntax.
- First working release
April 2022