Skip to content
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

Bump to v4.13.0 from upstream #31

Closed
wants to merge 45 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
45 commits
Select commit Hold shift + click to select a range
cfc8f2d
Actually Release 4.9.0
rushilmehra Aug 2, 2024
89dc444
Properly handle `Option<i32>` in `SslRef::set_curves`
rushilmehra Aug 4, 2024
72b343d
Release 4.9.1 (#259)
rushilmehra Aug 4, 2024
9053b5d
chore(boring-sys): Fix git apply patch on Windows (#261)
0x676e67 Aug 14, 2024
1b5ae32
Expose mTLS related APIs
rushilmehra Aug 9, 2024
2be6e10
Introduce ForeignTypeExt and ForeignTypeRefExt
rushilmehra Aug 14, 2024
fae2f7f
Introduce `corresponds` macro from openssl-macros
rushilmehra Aug 13, 2024
96981dd
Expose X509NameRef::print_ex
rushilmehra Aug 14, 2024
ef8146b
Add tests for X509Ref::subject_key_id, X509Ref::authority_key_id, and…
rushilmehra Aug 15, 2024
a7bfe0d
Fix macos FIPS crossbuild
rushilmehra Aug 15, 2024
e5b6627
Expose RSAPSS public key Id type
evanrittenhouse Aug 19, 2024
7324db2
Use ForeignType::into_ptr wherever applicable
rushilmehra Sep 3, 2024
b2525f2
Expose SSL_CTX_set_info_callback (#266)
evanrittenhouse Sep 11, 2024
4b37d88
Expose SSL(_CTX)_set1_curves_list (#270)
bwesterb Sep 17, 2024
8cb5da6
Update bindgen to 0.70.1
mikea Sep 17, 2024
2c0a142
Revert "PQ: fix timing sidechannels and add IPDWing"
bwesterb Sep 10, 2024
6d3639f
Add post-quantum key agreement X25519MLKEM768
bwesterb Sep 17, 2024
193bf3b
Implement optional Hyper 1 support in hyper-boring (#246)
nox Sep 18, 2024
b7f47de
Release 4.10.0 (#274)
rushilmehra Sep 18, 2024
b7eaa5b
Don't support X25519MLKEM768 by default (yet)
bwesterb Sep 18, 2024
df1c4f5
Release 4.10.1 (#276)
rushilmehra Sep 18, 2024
b1a7434
boring-pq.patch Fix by not updating crypto_test_data.cc
bwesterb Sep 18, 2024
1a00540
Release 4.10.2 (#278)
rushilmehra Sep 18, 2024
0596b2d
Set MSRV to 1.70 (#279)
eaufavor Sep 21, 2024
294796f
Release 4.10.3 (#280)
rushilmehra Sep 23, 2024
d3177a4
Create semgrep.yml
hrushikeshdeshpande Sep 25, 2024
a57cb3a
Add "fips-compat" feature (#286)
ghedo Oct 17, 2024
80e3aab
boring-sys: include HPKE header file for bindgen
evanrittenhouse Oct 17, 2024
ec3b412
Release 4.11.0
evanrittenhouse Oct 17, 2024
bb373e5
Add `set_cert_verify_callback` (`SSL_CTX_set_cert_verify`)
semaj-cf Oct 18, 2024
3044e9b
Skip bindgen 0.70's layout tests before Rust 1.77
jrose-signal Oct 22, 2024
7bb3647
(ci): brew link x86 toolchain for macos13 runner
rushilmehra Oct 22, 2024
c113ec5
Add bindings for SSL_CB_ACCEPT_EXIT and SSL_CB_CONNECT_EXIT
evanrittenhouse Nov 20, 2024
2b75e1e
Release 4.12.0
evanrittenhouse Nov 20, 2024
7ac0d21
Fix Windows build
PaulDance Mar 11, 2024
81e84c2
Clippy
kornelski Nov 28, 2024
1946603
Work around Rust settings inconsistent iOS SDK version
kornelski Nov 28, 2024
6ef5c28
More corresponds from openssl
sfackler Nov 21, 2021
b26b786
Sync X509VerifyFlags with openssl
kornelski Nov 26, 2024
57fbe0f
Sync X509StoreBuilder with openssl
kornelski Nov 26, 2024
4685af0
Release 4.13.0
rushilmehra Nov 28, 2024
b612e51
Merge v4.13.0; resolve conflicts
andrew-signal Dec 3, 2024
e96093e
Remove unused unwrap calls
andrew-signal Dec 3, 2024
5749e39
Oops, removed one too many unwrap
andrew-signal Dec 3, 2024
739b60c
Revert 12d00aa1666e3356fd9204d93d57caa03495b758
andrew-signal Dec 4, 2024
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
14 changes: 11 additions & 3 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -113,16 +113,22 @@ jobs:
target: aarch64-apple-ios
os: macos-latest
check_only: true
custom_env:
IPHONEOS_DEPLOYMENT_TARGET: 17.5
# It's... theoretically possible to run tests on iPhone Simulator,
# but for now, make sure that BoringSSL only builds.
- thing: aarch64-ios-sim
target: aarch64-apple-ios-sim
os: macos-latest
check_only: true
custom_env:
IPHONEOS_DEPLOYMENT_TARGET: 17.5
- thing: x86_64-ios
target: x86_64-apple-ios
os: macos-latest
check_only: true
custom_env:
IPHONEOS_DEPLOYMENT_TARGET: 17.5
- thing: i686-linux
target: i686-unknown-linux-gnu
rust: stable
Expand Down Expand Up @@ -313,16 +319,16 @@ jobs:
uses: actions/setup-go@v5
with:
go-version: '>=1.22.0'
- name: Install ${{ matrix.target }} toolchain
run: brew tap messense/macos-cross-toolchains && brew install ${{ matrix.target }} && brew link x86_64-unknown-linux-gnu
- name: Install Clang-12
uses: KyleMayes/install-llvm-action@v1
with:
version: "12.0.0"
directory: ${{ runner.temp }}/llvm
- name: Add clang++-12 link
working-directory: ${{ runner.temp }}/llvm/bin
run: ln -s clang clang++-12
- name: Install ${{ matrix.target }} toolchain
run: brew tap messense/macos-cross-toolchains && brew install --overwrite [email protected] && brew install ${{ matrix.target }}
run: ln -s clang++ clang++-12
- name: Set BORING_BSSL_FIPS_COMPILER_EXTERNAL_TOOLCHAIN
run: echo "BORING_BSSL_FIPS_COMPILER_EXTERNAL_TOOLCHAIN=$(brew --prefix ${{ matrix.target }})/toolchain" >> $GITHUB_ENV
shell: bash
Expand Down Expand Up @@ -360,3 +366,5 @@ jobs:
name: Run `rpk,underscore-wildcards` tests
- run: cargo test --features pq-experimental,rpk,underscore-wildcards
name: Run `pq-experimental,rpk,underscore-wildcards` tests
- run: cargo test -p hyper-boring --features hyper1
name: Run hyper 1.0 tests for hyper-boring
23 changes: 23 additions & 0 deletions .github/workflows/semgrep.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
on:
pull_request: {}
workflow_dispatch: {}
push:
branches:
- master
schedule:
- cron: "0 0 * * *"
name: Semgrep config
jobs:
semgrep:
name: semgrep/ci
runs-on: ubuntu-latest
env:
SEMGREP_APP_TOKEN: ${{ secrets.SEMGREP_APP_TOKEN }}
SEMGREP_URL: https://cloudflare.semgrep.dev
SEMGREP_APP_URL: https://cloudflare.semgrep.dev
SEMGREP_VERSION_CHECK_URL: https://cloudflare.semgrep.dev/api/check-version
container:
image: semgrep/semgrep
steps:
- uses: actions/checkout@v4
- run: semgrep ci
19 changes: 13 additions & 6 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ members = [
resolver = "2"

[workspace.package]
version = "4.9.0"
version = "4.13.0"
repository = "https://github.com/cloudflare/boring"
edition = "2021"

Expand All @@ -19,11 +19,12 @@ tag-prefix = ""
publish = false

[workspace.dependencies]
boring-sys = { version = "4.9.0", path = "./boring-sys", default-features = false }

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah, this default-features = false is important-ish while we still have cloudflare#80 in our fork. We could just remove it, though, since we're now using libssl too.

boring = { version = "4.9.0", path = "./boring" }
tokio-boring = { version = "4.9.0", path = "./tokio-boring" }
boring-sys = { version = "4.13.0", path = "./boring-sys" }
boring = { version = "4.13.0", path = "./boring" }
tokio-boring = { version = "4.13.0", path = "./tokio-boring" }

bindgen = { version = "0.70.1", default-features = false, features = ["runtime"] }
bytes = "1"
cmake = "0.1.18"
fs_extra = "1.3.0"
fslock = "0.2"
Expand All @@ -36,10 +37,16 @@ futures = "0.3"
tokio = "1"
anyhow = "1"
antidote = "1.0.0"
http = "0.2"
hyper = { version = "0.14", default-features = false }
http = "1"
http-body-util = "0.1.2"
http_old = { package = "http", version = "0.2" }
hyper = "1"
hyper-util = "0.1.6"
hyper_old = { package = "hyper", version = "0.14", default-features = false }
linked_hash_set = "0.1"
once_cell = "1.0"
openssl-macros = "0.1.1"
tower = "0.4"
tower-layer = "0.3"
tower-service = "0.3"
autocfg = "1.3.0"
80 changes: 66 additions & 14 deletions RELEASE_NOTES
Original file line number Diff line number Diff line change
@@ -1,16 +1,64 @@
4.13.0
- 2024-11-26 Sync X509StoreBuilder with openssl
- 2024-11-26 Sync X509VerifyFlags with openssl
- 2021-11-21 More corresponds from openssl
- 2024-11-28 Work around Rust settings inconsistent iOS SDK version
- 2024-11-28 Clippy
- 2024-03-11 Fix Windows build

4.12.0
- 2024-11-20 Add bindings for SSL_CB_ACCEPT_EXIT and SSL_CB_CONNECT_EXIT
- 2024-10-22 (ci): brew link x86 toolchain for macos13 runner
- 2024-10-22 Skip bindgen 0.70's layout tests before Rust 1.77
- 2024-10-18 Add `set_cert_verify_callback` (`SSL_CTX_set_cert_verify`)

4.11.0
- 2024-10-17 boring-sys: include HPKE header file for bindgen
- 2024-10-17 Add "fips-compat" feature
- 2024-09-25 Create semgrep.yml

4.10.3
- 2024-09-21 Set MSRV to 1.70 (#279)

4.10.2
- 2024-09-18 boring-pq.patch Fix by not updating crypto_test_data.cc

4.10.1
- 2024-09-18 Don't support X25519MLKEM768 by default (yet)

4.10.0
- 2024-09-18 Implement optional Hyper 1 support in hyper-boring (#246)
- 2024-09-17 Add post-quantum key agreement X25519MLKEM768
- 2024-09-10 Revert "PQ: fix timing sidechannels and add IPDWing"
- 2024-09-17 Update bindgen to 0.70.1
- 2024-09-17 Expose SSL(_CTX)_set1_curves_list (#270)
- 2024-09-11 Expose SSL_CTX_set_info_callback (#266)
- 2024-09-03 Use ForeignType::into_ptr wherever applicable
- 2024-08-19 Expose RSAPSS public key Id type
- 2024-08-15 Fix macos FIPS crossbuild
- 2024-08-15 Add tests for X509Ref::subject_key_id, X509Ref::authority_key_id, and X509NameRef::print_ex
- 2024-08-14 Expose X509NameRef::print_ex
- 2024-08-13 Introduce `corresponds` macro from openssl-macros
- 2024-08-14 Introduce ForeignTypeExt and ForeignTypeRefExt
- 2024-08-09 Expose mTLS related APIs
- 2024-08-14 chore(boring-sys): Fix git apply patch on Windows (#261)

4.9.1
- 2024-08-04 Properly handle `Option<i32>` in `SslRef::set_curves`

4.9.0
- 2024-08-02 Guard against empty strings given to select_next_proto (#252)
- 2024-08-01 Document `SslCurve::nid()`
- 2024-08-01 Add SslCurve::to_nid() and remove SslCurveId
- 2024-07-23 Fix x509_check_host return value
- 2024-07-29 Fix clippy lints re: docs indentation + unused feature
- 2024-07-29 Ignore clippy / rustfmt on autogenerated code
- 2024-07-26 Clean up legacy const_fn feature gates
- 2024-07-22 Impl From for SslVersion
- 2024-06-03 Split SSL curve identifiers into a separate enum.
- 2024-07-23 (ci): Fix macos crossbuild action by forcing brew link w [email protected]
- 2024-07-09 Expose set_permute_extensions
- 2024-06-24 PQ: fix timing sidechannels and add IPDWing
- 2024-08-02 Guard against empty strings given to select_next_proto (#252)
- 2024-08-01 Document `SslCurve::nid()`
- 2024-08-01 Add SslCurve::to_nid() and remove SslCurveId
- 2024-07-23 Fix x509_check_host return value
- 2024-07-29 Fix clippy lints re: docs indentation + unused feature
- 2024-07-29 Ignore clippy / rustfmt on autogenerated code
- 2024-07-26 Clean up legacy const_fn feature gates
- 2024-07-23 Impl From for SslVersion
- 2024-06-03 Split SSL curve identifiers into a separate enum.
- 2024-07-23 (ci): Fix macos crossbuild action by forcing brew link w [email protected]
- 2024-07-09 Expose set_permute_extensions
- 2024-06-24 PQ: fix timing sidechannels and add IPDWing

4.8.0
- 2024-06-28 Expose hmac_sha1 function
Expand All @@ -25,6 +73,8 @@
- 2024-06-18 Add NIDs for cipher authentication types
- 2024-06-14 Impl From for SslSignatureAlgorithm
- 2024-03-27 Updates license field to valid SPDX format

4.7.0
- 2024-05-31 Fix crosscompile
- 2024-05-30 Expose hmac_sha256/512 functions

Expand All @@ -40,8 +90,6 @@
- 2024-03-21 Add getters for client hello message
- 2024-01-25 Removes vestigial build script
- 2024-02-02 Introduce and use read_uninit and write_uninit duplicated from openssl-0.10.61 and tokio-openssl-0.6.4

4.3.0
- 2024-02-07 Introduce SslRef::set_private_key

4.4.1
Expand All @@ -52,6 +100,8 @@
- 2024-01-16 Expose `set_compliance_policy` and `get_ciphers`
- 2024-01-08 Expose SSL_get_error
- 2023-12-20 Fix support for fips-link-precompiled

4.3.0
- 2024-01-03 Introduce X509Flags
- 2024-01-03 Move x509 tests to a subdirectory
- 2024-01-02 Rearrange imports in x509 module
Expand Down Expand Up @@ -94,6 +144,8 @@
- 2023-11-02 Remove Sync trait bounds on callback futures
- 2023-10-30 Update Cargo.toml
- 2023-10-26 hyper and tokio "full" feature for dev builds only

4.0.0-rc.1
- 2023-10-26 Specify exact versions of dependent crates in the workspace manifest
- 2023-10-16 Add CI for cross-building from macOS
- 2023-10-16 Introduce BORING_BSSL_SYSROOT and BORING_BSSL_EXTERNAL_TOOLCHAIN
Expand Down
6 changes: 3 additions & 3 deletions boring-sys/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -55,9 +55,6 @@ features = ["rpk", "pq-experimental", "underscore-wildcards"]
rustdoc-args = ["--cfg", "docsrs"]

[features]
default = ["ssl"]
ssl = []

# Use a FIPS-validated version of boringssl.
fips = []

Expand Down Expand Up @@ -85,3 +82,6 @@ bindgen = { workspace = true }
cmake = { workspace = true }
fs_extra = { workspace = true }
fslock = { workspace = true }

[lints.rust]
unexpected_cfgs = { level = "allow", check-cfg = ['cfg(const_fn)'] }
3 changes: 0 additions & 3 deletions boring-sys/build/config.rs
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@ pub(crate) struct Features {
pub(crate) pq_experimental: bool,
pub(crate) rpk: bool,
pub(crate) underscore_wildcards: bool,
pub(crate) ssl: bool,
}

pub(crate) struct Env {
Expand Down Expand Up @@ -111,15 +110,13 @@ impl Features {
let pq_experimental = env::var_os("CARGO_FEATURE_PQ_EXPERIMENTAL").is_some();
let rpk = env::var_os("CARGO_FEATURE_RPK").is_some();
let underscore_wildcards = env::var_os("CARGO_FEATURE_UNDERSCORE_WILDCARDS").is_some();
let ssl = env::var_os("CARGO_FEATURE_SSL").is_some();

Self {
fips,
fips_link_precompiled,
pq_experimental,
rpk,
underscore_wildcards,
ssl,
}
}
}
Expand Down
19 changes: 13 additions & 6 deletions boring-sys/build/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -501,12 +501,16 @@ fn ensure_patches_applied(config: &Config) -> io::Result<()> {

fn apply_patch(config: &Config, patch_name: &str) -> io::Result<()> {
let src_path = get_boringssl_source_path(config);
#[cfg(not(windows))]
let cmd_path = config
.manifest_dir
.join("patches")
.join(patch_name)
.canonicalize()?;

#[cfg(windows)]
let cmd_path = config.manifest_dir.join("patches").join(patch_name);

let mut args = vec!["apply", "-v", "--whitespace=fix"];

// non-bazel versions of BoringSSL have no src/ dir
Expand Down Expand Up @@ -583,9 +587,7 @@ fn built_boring_source_path(config: &Config) -> &PathBuf {
cfg.define("FIPS", "1");
}

if config.features.ssl {
cfg.build_target("ssl").build();
}
cfg.build_target("ssl").build();
cfg.build_target("crypto").build()
})
}
Expand Down Expand Up @@ -661,16 +663,18 @@ fn main() {
bssl_dir.display(),
build_path
);
println!(
"cargo:rustc-link-search=native={}/build",
bssl_dir.display(),
);
}

if config.features.fips_link_precompiled {
link_in_precompiled_bcm_o(&config);
}

println!("cargo:rustc-link-lib=static=crypto");
if config.features.ssl {
println!("cargo:rustc-link-lib=static=ssl");
}
println!("cargo:rustc-link-lib=static=ssl");

let include_path = config.env.include_path.clone().unwrap_or_else(|| {
if let Some(bssl_path) = &config.env.path {
Expand All @@ -692,6 +696,7 @@ fn main() {
let supports_layout_tests = autocfg::new().probe_rustc_version(1, 77);

let mut builder = bindgen::Builder::default()
.rust_target(bindgen::RustTarget::Stable_1_68) // bindgen MSRV is 1.70, so this is enough
.derive_copy(true)
.derive_debug(true)
.derive_default(true)
Expand Down Expand Up @@ -731,6 +736,8 @@ fn main() {
"des.h",
"dtls1.h",
"hkdf.h",
#[cfg(not(feature = "fips"))]
"hpke.h",
"hmac.h",
"hrss.h",
"md4.h",
Expand Down
Loading
Loading