Pageant: Implement NamedPipes-based stream #472
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Adds an implementation of the newer NamedPipes-based access to the Pageant Stream.
Right now, it can be switched to via feature, i.e. the binary crate imports
to enable it.
While the original client has some backwards-compatibility for very old Windows versions (the comments in some of the called code speak of
Win9x
andXP SP2
), I've just implemented the primary path, which should work on all platforms the current MSRV supports (7+).This is a breaking change both on the API-Surface of the Pageant crate (new needs to be async + have error handling), as well as in russh (also to introduce a
Result
return type).Alternatively to this implementation, we could also just offer the generation of the Named-Pipe path in this crate and let users create a NamedPipe-Backed agent using the existing code in Russh, although this version seemed more comfortable to me.