Loading openssl-sys/Cargo.toml +4 −0 Original line number Diff line number Diff line Loading @@ -18,10 +18,14 @@ rust-version = "1.63.0" [features] vendored = ['openssl-src'] unstable_boringssl = ['bssl-sys'] aws-lc = ['aws-lc-sys'] aws-lc-fips = ['aws-lc-fips-sys'] [dependencies] libc = "0.2" bssl-sys = { version = "0.1.0", optional = true } aws-lc-sys = { version = "0", features = ["ssl"], optional = true } aws-lc-fips-sys = { version = "0", features = ["ssl", "bindgen"], optional = true } [build-dependencies] bindgen = { version = "0.69.0", optional = true, features = ["experimental"] } Loading openssl-sys/build/main.rs +42 −0 Original line number Diff line number Diff line Loading @@ -71,6 +71,47 @@ fn check_ssl_kind() { // BoringSSL does not have any build logic, exit early std::process::exit(0); } let is_aws_lc = cfg!(feature = "aws-lc"); let is_aws_lc_fips = cfg!(feature = "aws-lc-fips"); if is_aws_lc || is_aws_lc_fips { println!("cargo:rustc-cfg=awslc"); println!("cargo:awslc=true"); let env_var_prefix = match (is_aws_lc, is_aws_lc_fips) { (true, false) => "DEP_AWS_LC_", (false, true) => "DEP_AWS_LC_FIPS_", _ => { panic!("aws-lc and aws-lc-fips are mutually exclusive features!"); } }; let mut version = None; for (name, _) in std::env::vars() { if let Some(name) = name.strip_prefix(env_var_prefix) { if let Some(name) = name.strip_suffix("_INCLUDE") { version = Some(name.to_owned()); break; } } } let version = version.expect("aws-lc version detected"); if let Ok(vars) = std::env::var(format!("{env_var_prefix}{version}_CONF")) { for var in vars.split(',') { println!("cargo:rustc-cfg=osslconf=\"{var}\""); } println!("cargo:conf={vars}"); } if let Ok(val) = std::env::var(format!("{env_var_prefix}{version}_INCLUDE")) { println!("cargo:include={val}"); } // AWS-LC does not have any build logic, exit early std::process::exit(0); } } fn main() { Loading @@ -79,6 +120,7 @@ fn main() { println!("cargo:rustc-check-cfg=cfg(openssl)"); println!("cargo:rustc-check-cfg=cfg(libressl)"); println!("cargo:rustc-check-cfg=cfg(boringssl)"); println!("cargo:rustc-check-cfg=cfg(awslc)"); println!("cargo:rustc-check-cfg=cfg(libressl250)"); println!("cargo:rustc-check-cfg=cfg(libressl251)"); Loading openssl-sys/src/evp.rs +2 −2 Original line number Diff line number Diff line Loading @@ -7,7 +7,7 @@ pub const PKCS5_SALT_LEN: c_int = 8; pub const PKCS12_DEFAULT_ITER: c_int = 2048; pub const EVP_PKEY_RSA: c_int = NID_rsaEncryption; #[cfg(any(ossl111, libressl310, boringssl))] #[cfg(any(ossl111, libressl310, boringssl, awslc))] pub const EVP_PKEY_RSA_PSS: c_int = NID_rsassaPss; pub const EVP_PKEY_DSA: c_int = NID_dsa; pub const EVP_PKEY_DH: c_int = NID_dhKeyAgreement; Loading Loading @@ -313,7 +313,7 @@ pub unsafe fn EVP_PKEY_CTX_add1_hkdf_info( ) } #[cfg(all(not(ossl300), not(boringssl)))] #[cfg(not(any(ossl300, boringssl, awslc)))] pub unsafe fn EVP_PKEY_CTX_set_signature_md(cxt: *mut EVP_PKEY_CTX, md: *mut EVP_MD) -> c_int { EVP_PKEY_CTX_ctrl( cxt, Loading openssl-sys/src/handwritten/ec.rs +1 −1 Original line number Diff line number Diff line Loading @@ -103,7 +103,7 @@ extern "C" { pub fn EC_POINT_dup(p: *const EC_POINT, group: *const EC_GROUP) -> *mut EC_POINT; #[cfg(any(ossl111, boringssl, libressl350))] #[cfg(any(ossl111, boringssl, libressl350, awslc))] pub fn EC_POINT_get_affine_coordinates( group: *const EC_GROUP, p: *const EC_POINT, Loading openssl-sys/src/lib.rs +16 −0 Original line number Diff line number Diff line Loading @@ -29,6 +29,22 @@ mod boringssl { #[cfg(boringssl)] pub use boringssl::*; #[cfg(any(feature = "aws-lc", feature = "aws-lc-fips-sys"))] mod aws_lc { #[cfg(feature = "aws-lc-fips")] extern crate aws_lc_fips_sys as aws_lc; #[cfg(feature = "aws-lc")] extern crate aws_lc_sys as aws_lc; pub use aws_lc::*; // TODO: AWS-LC doesn't currently expose this in it's public headers extern "C" { pub fn OCSP_ONEREQ_free(r: *mut OCSP_ONEREQ); } } #[cfg(any(feature = "aws-lc", feature = "aws-lc-fips-sys"))] pub use aws_lc::*; #[cfg(openssl)] #[path = "."] mod openssl { Loading Loading
openssl-sys/Cargo.toml +4 −0 Original line number Diff line number Diff line Loading @@ -18,10 +18,14 @@ rust-version = "1.63.0" [features] vendored = ['openssl-src'] unstable_boringssl = ['bssl-sys'] aws-lc = ['aws-lc-sys'] aws-lc-fips = ['aws-lc-fips-sys'] [dependencies] libc = "0.2" bssl-sys = { version = "0.1.0", optional = true } aws-lc-sys = { version = "0", features = ["ssl"], optional = true } aws-lc-fips-sys = { version = "0", features = ["ssl", "bindgen"], optional = true } [build-dependencies] bindgen = { version = "0.69.0", optional = true, features = ["experimental"] } Loading
openssl-sys/build/main.rs +42 −0 Original line number Diff line number Diff line Loading @@ -71,6 +71,47 @@ fn check_ssl_kind() { // BoringSSL does not have any build logic, exit early std::process::exit(0); } let is_aws_lc = cfg!(feature = "aws-lc"); let is_aws_lc_fips = cfg!(feature = "aws-lc-fips"); if is_aws_lc || is_aws_lc_fips { println!("cargo:rustc-cfg=awslc"); println!("cargo:awslc=true"); let env_var_prefix = match (is_aws_lc, is_aws_lc_fips) { (true, false) => "DEP_AWS_LC_", (false, true) => "DEP_AWS_LC_FIPS_", _ => { panic!("aws-lc and aws-lc-fips are mutually exclusive features!"); } }; let mut version = None; for (name, _) in std::env::vars() { if let Some(name) = name.strip_prefix(env_var_prefix) { if let Some(name) = name.strip_suffix("_INCLUDE") { version = Some(name.to_owned()); break; } } } let version = version.expect("aws-lc version detected"); if let Ok(vars) = std::env::var(format!("{env_var_prefix}{version}_CONF")) { for var in vars.split(',') { println!("cargo:rustc-cfg=osslconf=\"{var}\""); } println!("cargo:conf={vars}"); } if let Ok(val) = std::env::var(format!("{env_var_prefix}{version}_INCLUDE")) { println!("cargo:include={val}"); } // AWS-LC does not have any build logic, exit early std::process::exit(0); } } fn main() { Loading @@ -79,6 +120,7 @@ fn main() { println!("cargo:rustc-check-cfg=cfg(openssl)"); println!("cargo:rustc-check-cfg=cfg(libressl)"); println!("cargo:rustc-check-cfg=cfg(boringssl)"); println!("cargo:rustc-check-cfg=cfg(awslc)"); println!("cargo:rustc-check-cfg=cfg(libressl250)"); println!("cargo:rustc-check-cfg=cfg(libressl251)"); Loading
openssl-sys/src/evp.rs +2 −2 Original line number Diff line number Diff line Loading @@ -7,7 +7,7 @@ pub const PKCS5_SALT_LEN: c_int = 8; pub const PKCS12_DEFAULT_ITER: c_int = 2048; pub const EVP_PKEY_RSA: c_int = NID_rsaEncryption; #[cfg(any(ossl111, libressl310, boringssl))] #[cfg(any(ossl111, libressl310, boringssl, awslc))] pub const EVP_PKEY_RSA_PSS: c_int = NID_rsassaPss; pub const EVP_PKEY_DSA: c_int = NID_dsa; pub const EVP_PKEY_DH: c_int = NID_dhKeyAgreement; Loading Loading @@ -313,7 +313,7 @@ pub unsafe fn EVP_PKEY_CTX_add1_hkdf_info( ) } #[cfg(all(not(ossl300), not(boringssl)))] #[cfg(not(any(ossl300, boringssl, awslc)))] pub unsafe fn EVP_PKEY_CTX_set_signature_md(cxt: *mut EVP_PKEY_CTX, md: *mut EVP_MD) -> c_int { EVP_PKEY_CTX_ctrl( cxt, Loading
openssl-sys/src/handwritten/ec.rs +1 −1 Original line number Diff line number Diff line Loading @@ -103,7 +103,7 @@ extern "C" { pub fn EC_POINT_dup(p: *const EC_POINT, group: *const EC_GROUP) -> *mut EC_POINT; #[cfg(any(ossl111, boringssl, libressl350))] #[cfg(any(ossl111, boringssl, libressl350, awslc))] pub fn EC_POINT_get_affine_coordinates( group: *const EC_GROUP, p: *const EC_POINT, Loading
openssl-sys/src/lib.rs +16 −0 Original line number Diff line number Diff line Loading @@ -29,6 +29,22 @@ mod boringssl { #[cfg(boringssl)] pub use boringssl::*; #[cfg(any(feature = "aws-lc", feature = "aws-lc-fips-sys"))] mod aws_lc { #[cfg(feature = "aws-lc-fips")] extern crate aws_lc_fips_sys as aws_lc; #[cfg(feature = "aws-lc")] extern crate aws_lc_sys as aws_lc; pub use aws_lc::*; // TODO: AWS-LC doesn't currently expose this in it's public headers extern "C" { pub fn OCSP_ONEREQ_free(r: *mut OCSP_ONEREQ); } } #[cfg(any(feature = "aws-lc", feature = "aws-lc-fips-sys"))] pub use aws_lc::*; #[cfg(openssl)] #[path = "."] mod openssl { Loading