summaryrefslogtreecommitdiffstats
path: root/vendor/openssl/src/fips.rs
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/openssl/src/fips.rs')
-rw-r--r--vendor/openssl/src/fips.rs21
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 000000000..2a8a2fe18
--- /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 }
+}