Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

transport/noise: Implement NoiseExtensions #3988

Closed
oblique opened this issue May 25, 2023 · 2 comments · Fixed by #3991
Closed

transport/noise: Implement NoiseExtensions #3988

oblique opened this issue May 25, 2023 · 2 comments · Fixed by #3991

Comments

@oblique
Copy link
Contributor

oblique commented May 25, 2023

Description

NoiseExtensions and a way to retrieve them after an upgrade is not currently implemented

Motivation

I was trying to implement a Transport and StreamMuxer that was using WebTransport browser API. After implementing both I couldn't establish a connection because handshake was failing.

The Go implementation is sending early data as part of the handshake procedure and for that we need NoiseExtensions.

Current Implementation

Currently I didn't find any way to send early data. Are early data what we call prologue in the Rust implementation?

Are you planning to do it yourself in a pull request?

Maybe. I'm still trying to understand the implementation.

@thomaseizinger
Copy link
Contributor

Prologue gets hashed into the session state. The handshake will fail if the parties set different prologues.

Early data is currently not exposed but I am guessing our underlying noise library supports it so it is just a matter of exposing that too.

@mxinden
Copy link
Member

mxinden commented May 26, 2023

Are early data what we call prologue in the Rust implementation?

To add to Thomas' comment above, they are not the same. Both are a Noise concept. See https://noiseprotocol.org/noise.html#prologue.

Are you planning to do it yourself in a pull request?

Maybe. I'm still trying to understand the implementation.

That would be very welcomed.

Related see also #3846 and #3825.

@mergify mergify bot closed this as completed in #3991 Jun 13, 2023
mergify bot pushed a commit that referenced this issue Jun 13, 2023
The extension for WebTransport certhashes was added and can be configured via `Config::with_webtransport_certhashes`.

In case of initiator, these certhashes will be used to validate the ones reported by responder. In case of responder, these certhashes will be reported to initiator.

Resolves #3988.

Pull-Request: #3991.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
3 participants