apache / apache/teaclave-sgx-sdk
Port Tungstenite Websocket Library to SGX
- Dominant language
- Rust
- Stars
- 1.2k
- Forks
- 268
- PR merge metrics
- No merged PRs in 30d
Description
In our organization ([Integritee](https://github.com/integritee-network)) the need arose for a secure web-socket server, run entierly inside the enclave. After some investigation, we found that [Tungstenite](https://github.com/snapview/tungstenite-rs) offers exactly that (based on [Rustls](https://github.com/rustls/rustls)) and has dependencies that are mostly already ported to SGX in [MesaLock-Linux](https://github.com/mesalock-linux).
So I forked and ported `Tungstenite` to SGX -> [here](https://github.com/integritee-network/tungstenite-rs-sgx) on branch `sgx-experimental`. You could probably use my work and do an 'official' MesaLock-Linux fork of Tungstenite?
### Remarks
#### Testing
My fork does not port the unit tests to SGX - the GitHub Actions fail
#### Dependencies
There are some dependencies that I had to port to SGX, they can be found here (always on branch `sgx-experimental`):
* https://github.com/integritee-network/rust-utf8-sgx
* https://github.com/integritee-network/httparse-sgx
* https://github.com/integritee-network/bytes-sgx
Contributor guide
No contributing guide indexed for this repository
Research direction
Start by reviewing the linked integritee-network/tungstenite-rs-sgx fork on its sgx-experimental branch and compare its port with the teaclave-sgx-sdk. Inspect the linked rust-utf8-sgx, httparse-sgx, and bytes-sgx dependency ports, then determine how the missing SGX unit tests and failing GitHub Actions should be handled. Done means an official SGX-compatible Tungstenite port with working tests and dependencies.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- networking, security
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100