diff options
Diffstat (limited to 'vendor/openssl/src/fips.rs')
-rw-r--r-- | vendor/openssl/src/fips.rs | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/vendor/openssl/src/fips.rs b/vendor/openssl/src/fips.rs new file mode 100644 index 0000000..2a8a2fe --- /dev/null +++ b/vendor/openssl/src/fips.rs @@ -0,0 +1,21 @@ +//! FIPS 140-2 support. +//! +//! See [OpenSSL's documentation] for details. +//! +//! [OpenSSL's documentation]: https://www.openssl.org/docs/fips/UserGuide-2.0.pdf +use crate::cvt; +use crate::error::ErrorStack; +use openssl_macros::corresponds; + +/// Moves the library into or out of the FIPS 140-2 mode of operation. +#[corresponds(FIPS_mode_set)] +pub fn enable(enabled: bool) -> Result<(), ErrorStack> { + ffi::init(); + unsafe { cvt(ffi::FIPS_mode_set(enabled as _)).map(|_| ()) } +} + +/// Determines if the library is running in the FIPS 140-2 mode of operation. +#[corresponds(FIPS_mode)] +pub fn enabled() -> bool { + unsafe { ffi::FIPS_mode() != 0 } +} |