Fix QUIC compilation and FIPS features

Fix a build issue due to lack of trait constraints.

Pass FIPS feature flag through and test it
This commit is contained in:
John Howard 2024-02-20 17:39:00 -08:00 committed by Jan
commit 03b48134ca
4 changed files with 15 additions and 4 deletions

View file

@ -12,10 +12,9 @@ default = ["tls12"]
# Use a FIPS-validated version of boringssl.
fips = ["boring/fips", "boring-sys/fips"]
logging = ["log"]
fips-only = []
fips-only = ["boring/fips", "boring-sys/fips"]
tls12 = ["rustls/tls12"]
[dependencies]
aead = {version = "0.5", default_features = false, features = ["alloc"] }
boring = { workspace = true }

View file

@ -32,7 +32,7 @@ pub(crate) trait BoringCipher {
fn extract_keys(key: cipher::AeadKey, iv: cipher::Iv) -> ConnectionTrafficSecrets;
}
pub(crate) trait QuicCipher {
pub(crate) trait QuicCipher: Send + Sync {
/// The key size in bytes
const KEY_SIZE: usize;

View file

@ -38,6 +38,6 @@ pub(crate) fn log_and_map<E: core::fmt::Display, T>(func: &'static str, e: E, ma
}
#[cfg(not(feature = "log"))]
pub(crate) fn log_and_map<E: core::fmt::Display, T>(func: &'static str, e: E, mapped: T) -> T {
pub(crate) fn log_and_map<E: core::fmt::Display, T>(_func: &'static str, _e: E, mapped: T) -> T {
mapped
}

View file

@ -40,6 +40,18 @@ async fn test_tls13_crypto() {
}
}
#[test]
#[cfg(any(feature = "fips", feature = "fips-only"))]
fn is_fips_enabled() {
assert!(boring::fips::enabled());
}
#[test]
#[cfg(not(any(feature = "fips", feature = "fips-only")))]
fn is_fips_disabled() {
assert!(!boring::fips::enabled());
}
#[tokio::test]
async fn test_tls12_ec_crypto() {
let pki = TestPki::new(&rcgen::PKCS_ECDSA_P256_SHA256);