-
Notifications
You must be signed in to change notification settings - Fork 749
docs(bindings): expand readme for s2n-tls #5505
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
base: main
Are you sure you want to change the base?
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,2 +1,25 @@ | ||
| This crate provides ergonomic, idiomatic Rust bindings for [s2n-tls](https://github.com/aws/s2n-tls). From the s2n-tls readme: | ||
| > s2n-tls is a C99 implementation of the TLS/SSL protocols that is designed to be simple, small, fast, and with security as a priority. It is released and licensed under the Apache License 2.0. | ||
| # s2n-tls | ||
|
|
||
| s2n-tls is a C99 implementation of the TLS protocol. This crate provides idiomatic Rust bindings for the underlying C library. For additional Rust ecosystem integrations see | ||
| - [s2n-tls-tokio](https://crates.io/crates/s2n-tls-tokio): integrations for the tokio async runtime | ||
| - [s2n-tls-hyper](https://crates.io/crates/s2n-tls-hyper): integrations for the hyper HTTP library | ||
|
|
||
| ## Features | ||
| - SSLv3 - TLS 1.3 | ||
|
Comment on lines
+6
to
+8
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. If we're listing SSLv3... should we list renegotiation too? 😬 |
||
| - PQ algorithms including ML-KEM and ML-DSA | ||
| - TLS 1.2 stateful and stateless session resumption | ||
| - TLS 1.3 stateless session resumption | ||
| - Early Data | ||
|
Comment on lines
+11
to
+12
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Do we actually have bindings for early data? |
||
| - TLS 1.3 PSK Authentication | ||
| - Private Key offload | ||
| - JA3 and JA4 client hello fingerprinting | ||
|
|
||
| ## Build | ||
|
|
||
| Consuming projects will need a C compiler (Clang or GCC) to build. | ||
|
|
||
| If "fips" is enabled, then consuming projects will also need **CMake** and **Go** due to the underlying AWS-LC-FIPS dependency. | ||
|
|
||
| ## Cryptography Provider | ||
|
|
||
| By default, the s2n-tls bindings will rely on [aws-lc-rs](https://crates.io/crates/aws-lc-rs) for cryptography. To use a FIPS validated libcrypto, customers can enable the `fips` feature flag in `s2n-tls`. This enables the `fips` feature in the underlying AWS-LC libcrypto. | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Should we also mention that technically you can make it build with a different libcrypto if you really try? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. If we allow building with a different libcrypto, can we also include documentation about how to do it? |
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We might not be perfect about updating this, and it's probably not exhaustive now. So maybe instead: