70 releases
new 0.3.8 | Dec 11, 2024 |
---|---|
0.3.7 | Nov 14, 2024 |
0.3.5 | Oct 23, 2024 |
0.2.9 | Jul 19, 2024 |
0.0.1 | Apr 21, 2021 |
#1675 in Cryptography
59,648 downloads per month
Used in 9 crates
(2 directly)
2MB
37K
SLoC
This crate provides low level rust bindings for s2n-tls which are autogenerated with bindgen
This crate is not intended for direct consumption by end consumers. Interested developers should instead look at the s2n-tls or s2n-tls-tokio crates. These provide higher-level, more ergonomic bindings than the s2n-tls-sys
crate.
The s2n-tls-sys
bindings crate contains the raw C code of s2n-tls
. By default, it follows this build process:
- Use the system C compiler to build
libs2n.a
- Link the built
libs2n.a
to the Rust bindings - Link against
aws-lc
through theaws-lc-rs
crate
Bring your own libs2n with s2n-tls-sys
crate
You can customize above build process to use your own pre-built libs2n. This is useful if you want the bindings to be built with a non-default libcrypto. Currently, the default libcrypto when generating rust bindings is aws-lc
. Here's how you can do that:
- Clone s2n-tls and compile your preferred configuration of s2n-tls.
You may choose to link against a specific libcrypto at this step. For more information, see Building with a specific libcrypto. Also see Building s2n-tls for further guidance on configuring s2n-tls for your own use case.
cd
into your rust project and set environment variables to your libs2n artifacts.
This tells the bindings to link to pre-built libs2n when running the build script for s2n-tls-sys
export S2N_TLS_LIB_DIR=<PATH_TO_ROOT_OF_S2N_TLS>/build/lib
export S2N_TLS_INCLUDE_DIR=<PATH_TO_ROOT_OF_S2N_TLS>/api
export LD_LIBRARY_PATH=$S2N_TLS_LIB_DIR:$LD_LIBRARY_PATH
S2N_TLS_LIB_DIR
points to the folder containing libs2n.a
/libs2n.so
artifact that you would like s2n-tls-sys to link against.
S2N_TLS_INCLUDE_DIR
points to the folder containing header files for libs2n.a
/libs2n.so
artifact.
LD_LIBRARY_PATH
adds the path to libs2n.a
/libs2n.so
artifact for dynamic linker's search path.
- Build your project. This triggers the build script for s2n-tls-sys
cargo build
Dependencies
~54MB
~1.5M SLoC