diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 7c0b92ec..dbbd8ddd 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -357,4 +357,8 @@ jobs: uses: taiki-e/install-action@cargo-hack - name: Check feature powerset - run: cargo hack check --feature-powerset --no-dev-deps + run: > + cargo hack check + --feature-powerset + --no-dev-deps + --mutually-exclusive-features fips,aws-lc-rs diff --git a/Cargo.lock b/Cargo.lock index c75f2227..4fad1be6 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -11,12 +11,29 @@ dependencies = [ "memchr", ] +[[package]] +name = "aws-lc-fips-sys" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59057b878509d88952425fe694a2806e468612bde2d71943f3cd8034935b5032" +dependencies = [ + "bindgen", + "cc", + "cmake", + "dunce", + "fs_extra", + "libc", + "paste", + "regex", +] + [[package]] name = "aws-lc-rs" version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f409eb70b561706bf8abba8ca9c112729c481595893fd06a2dd9af8ed8441148" dependencies = [ + "aws-lc-fips-sys", "aws-lc-sys", "paste", "zeroize", diff --git a/Cargo.toml b/Cargo.toml index cf50ea47..b79ed0db 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -75,12 +75,13 @@ name = "webpki" [features] default = ["std", "ring"] alloc = ["ring?/alloc", "pki-types/alloc"] -aws_lc_rs = ["dep:aws-lc-rs"] +aws_lc_rs = ["dep:aws-lc-rs", "aws-lc-rs/aws-lc-sys", "aws-lc-rs/prebuilt-nasm"] +fips = ["dep:aws-lc-rs", "aws-lc-rs/fips"] ring = ["dep:ring"] std = ["alloc", "pki-types/std"] [dependencies] -aws-lc-rs = { version = "1.9", optional = true, default-features = false, features = ["aws-lc-sys", "prebuilt-nasm"] } +aws-lc-rs = { version = "1.9", optional = true, default-features = false } pki-types = { package = "rustls-pki-types", version = "1.7", default-features = false } ring = { version = "0.17", default-features = false, optional = true } untrusted = "0.9"