diff --git a/docs/design.md b/docs/design.md index c29d3fb422a8c19db59f47748d06851e70c5ec51..5bac2d5c3b6e09c5eb2c8581f236cab490c297eb 100644 --- a/docs/design.md +++ b/docs/design.md @@ -22,10 +22,10 @@ to get a backtrace. ## Serialisation/deserialisation -Previously the code used serde with a custom `Serializer`/`Deserializer`. That worked +Previously the code used `serde` with a custom `Serializer`/`Deserializer`. That worked fine for serializing and `derive(Deserialize)`, but deserializing enums was a pain. For types like `packets::ChannelRequest` -the deserializer had to stash the channel request type string from the parent struct somewhere, +the deserializer had to stash the channel request type string from the `ChannelRequest` struct somewhere, then use that later when deserialising the `ChannelReqType` enum. Other response packets like number 60 `Userauth60` mean completely different things depending on the previous request, but that state is hard to pass through the deserializer. diff --git a/sshproto/src/sshnames.rs b/sshproto/src/sshnames.rs index 5a535bad754c6937011bd8f80280784e0c17da64..38296bc48d7197f889240304025f58fc07cb7a30 100644 --- a/sshproto/src/sshnames.rs +++ b/sshproto/src/sshnames.rs @@ -1,6 +1,9 @@ //! Named SSH algorithms, methods and extensions. This module also serves as //! an index of SSH specifications. +//! Some identifiers are also listed directly in `packet.rs` derive attributes. +//! Packet numbers are listed in `packet.rs`. + /// [RFC8731](https://tools.ietf.org/html/rfc8731) pub const SSH_NAME_CURVE25519: &str = "curve25519-sha256"; /// An older alias prior to standardisation. Eventually could be removed @@ -47,3 +50,5 @@ pub const SSH_AUTHMETHOD_PUBLICKEY: &str = "publickey"; /// [RFC4256](https://tools.ietf.org/html/rfc4256) pub const SSH_AUTHMETHOD_INTERACTIVE: &str = "keyboard-interactive"; +/// [RFC4254](https://tools.ietf.org/html/rfc4254) +pub const SSH_EXTENDED_DATA_STDERR: u32 = 1;