You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Provide the client the ability to pick the compression and encryption it wants to use from those made available by the server. Upon receiving a selection, the server would generate the appropriate codecs to support this.
Replay missed messages similar to Eternal Terminal's backed reader and writer. On handshake, the client and server would send each other any missed messages
For the first reason, we may want to implement discriminants for CompressionCodec and possibly merge PlainCodec and XChaCha20Poly1305 into EncryptionCodec so we can do the same for it. We'd have a serializable struct that has an Option<CompressionType> and EncryptionType. Additionally, this would include a ClientId or something similar that can be used to determine if replaying is necessary along with the SeqCnt to indicate how far along it is.
The server would send the options, and the client would respond with its selection.
The server would have a new, required (?) method:
asyncfnon_handshake(&self,transport:FramedTransport<T,()>) -> io::Result<FramedTransport<T,Box<dynCodec>>>{// NOTE: Need a way to map the codec of a transport -- should be pretty easy to do since we can consume the transportOk(transport)}
T is a generic for the underlying transport and () would be our default codec that has no encryption or compression.
The text was updated successfully, but these errors were encountered:
I'm going to lock this issue because it has been closed for 30 days ⏳. This helps our maintainers find and focus on the active issues. If you have found a problem that seems similar to this, please open a new issue and complete the issue template so we can capture all the details necessary to investigate further.
We need this for a couple of reasons:
For the first reason, we may want to implement discriminants for
CompressionCodec
and possibly mergePlainCodec
andXChaCha20Poly1305
intoEncryptionCodec
so we can do the same for it. We'd have a serializable struct that has anOption<CompressionType>
andEncryptionType
. Additionally, this would include aClientId
or something similar that can be used to determine if replaying is necessary along with theSeqCnt
to indicate how far along it is.The server would send the options, and the client would respond with its selection.
The server would have a new, required (?) method:
T
is a generic for the underlying transport and()
would be our default codec that has no encryption or compression.The text was updated successfully, but these errors were encountered: