Skip to content
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
27 changes: 25 additions & 2 deletions bindings/rust/extended/s2n-tls/README.md
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
Comment on lines +6 to +7
Copy link
Contributor

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:

Suggested change
## Features
## Features
Available features include:

- SSLv3 - TLS 1.3
Comment on lines +6 to +8
Copy link
Contributor

Choose a reason for hiding this comment

The 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
Copy link
Contributor

Choose a reason for hiding this comment

The 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.
Copy link
Contributor

Choose a reason for hiding this comment

The 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?

Choose a reason for hiding this comment

The 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?

Loading