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

RFC 215: webtransport_h3_cert_hash_test_server #216

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
29 changes: 29 additions & 0 deletions rfcs/webtransport_h3_cert_hash_test_server.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
# RFC 215: WebTransport over HTTP/3 Test Server that uses a self-signed certificate for authentification wit serverCertificateHashes

## Summary

Start another instance of the [WebTransport over HTTP/3](https://datatracker.ietf.org/doc/html/draft-ietf-webtrans-http3-01) server in [RFC 85](https://github.com/web-platform-tests/rfcs/blob/master/rfcs/webtransport_h3_test_server.md) in wpt, that uses instead of the standard certificate a self-signed certificate. The hash of the certificate is passed to the test defined. The certificate is autogenerated at the startup of the wpt tests within the python code.

## Details

### Implementation

It is a slight modification of the server from [RFC 85](https://github.com/web-platform-tests/rfcs/blob/master/rfcs/webtransport_h3_test_server.md) in the `tools/webtransport` directory.
The implementation uses the `cryptography` lib for certificate generation, that is already used by wpt through the `aioquic` lib.

### Handlers
See [RFC 85](https://github.com/web-platform-tests/rfcs/blob/master/rfcs/webtransport_h3_test_server.md) for details.

### `wptserve` integration

See [RFC 85](https://github.com/web-platform-tests/rfcs/blob/master/rfcs/webtransport_h3_test_server.md) for details.

A server certificate hash is autogenerated within the python code in `environment.py`. It is passed as part of the config (property `cert_hash_info`) to the tests. The tests can access the server certificate hash as `server_certificate_hash` inside the javascript templates.

### Dependencies

As of writing this RFC, the only dependency are `aioquic` as in RFC 85 and `cryptography`, which is already a dependency of `aioquic`.

## Risks

Risks are similar to [RFC #85](https://github.com/web-platform-tests/rfcs/blob/master/rfcs/webtransport_h3_test_server.md#risks), as it is a minimal modification of RFC 85, so that maintenance cost increase is neglible.