This commit modifies the Cargo `include` field for `boring-sys` to include all the files necessary to actually build the FIPS-certified revision of BoringSSL. Currently, some of these files are missing (see #157 for details on this). This branch improves on my previous approach in PR #158, which switched from using a Cargo `include` to a Cargo `exclude`. Using `exclude` rather than `include` resulted in a much larger crates.io package, but at the time, I thought this was less likely to result in breakage in the future, because I was concerned about the inability to verify that the set of excludes/includes can build a new pinned `boringssl` git revision without having to actually publish a crates.io release. However, as @nox pointed out in [this comment][1], `cargo package` can be used to verify a build with the `exclude`s/`include`s applied. This branch therefore adds `cargo package` steps to CI that check that the package can actually be built. This way, we are able to make a much smaller change to the included files, resulting in a smaller package published to crates.io. On this branch, the package is 6.7MiB compressed, which is not much larger than it was previously: ``` Finished dev [unoptimized + debuginfo] target(s) in 55.65s Packaged 1851 files, 33.7MiB (6.7MiB compressed) ``` Fixes #157 Closes #158 [1]: https://github.com/cloudflare/boring/pull/158#issuecomment-1693067112, |
||
|---|---|---|
| .github/workflows | ||
| boring | ||
| boring-sys | ||
| hyper-boring | ||
| scripts | ||
| tokio-boring | ||
| .gitignore | ||
| .gitmodules | ||
| .rusty-hook.toml | ||
| Cargo.toml | ||
| README.md | ||
| RELEASE_NOTES | ||
| THIRD_PARTY | ||
| cliff.toml | ||
README.md
boring
BoringSSL bindings for the Rust programming language and TLS adapters for tokio and hyper built on top of it.
Documentation
- Boring API: https://docs.rs/boring
- tokio TLS adapters: https://docs.rs/tokio-boring
- hyper HTTPS connector: https://docs.rs/hyper-boring
- FFI bindings: https://docs.rs/boring-sys
Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed under the terms of both the Apache License, Version 2.0 and the MIT license without any additional terms or conditions.
Accolades
The project is based on a fork of rust-openssl.