aboutsummaryrefslogtreecommitdiffstats
path: root/ext/openssl
diff options
context:
space:
mode:
authorColton Jenkins <jenkinscolton7@gmail.com>2017-06-09 06:48:19 -0400
committerColton Jenkins <jenkinscolton7@gmail.com>2017-06-09 10:43:29 -0400
commit295806787b9a48100138baf8d57f2ad4e08060de (patch)
tree02c0ef9bd9f53f4a5c21d372ace162cfac61d45a /ext/openssl
parentc24bae3993690e0061f4e2f269a22d945021d66d (diff)
downloadruby-openssl-295806787b9a48100138baf8d57f2ad4e08060de.tar.gz
Add fips_mode_get to return fips_mode
Diffstat (limited to 'ext/openssl')
-rw-r--r--ext/openssl/ossl.c20
1 files changed, 19 insertions, 1 deletions
diff --git a/ext/openssl/ossl.c b/ext/openssl/ossl.c
index f2984e6c..542f1422 100644
--- a/ext/openssl/ossl.c
+++ b/ext/openssl/ossl.c
@@ -410,6 +410,23 @@ ossl_debug_set(VALUE self, VALUE val)
}
/*
+ * call-seq
+ * OpenSSL.fips_mode -> true | false
+ */
+static VALUE
+ossl_fips_mode_get(VALUE self)
+{
+
+#ifdef OPENSSL_FIPS
+ VALUE enabled;
+ enabled = FIPS_mode() ? Qtrue : Qfalse;
+ return enabled;
+#else
+ return Qfalse;
+#endif
+}
+
+/*
* call-seq:
* OpenSSL.fips_mode = boolean -> boolean
*
@@ -1139,7 +1156,7 @@ Init_openssl(void)
rb_define_const(mOSSL, "OPENSSL_VERSION_NUMBER", INT2NUM(OPENSSL_VERSION_NUMBER));
/*
- * Boolean indicating whether OpenSSL is FIPS-enabled or not
+ * Boolean indicating whether OpenSSL is FIPS-capable or not
*/
rb_define_const(mOSSL, "OPENSSL_FIPS",
#ifdef OPENSSL_FIPS
@@ -1149,6 +1166,7 @@ Init_openssl(void)
#endif
);
+ rb_define_module_function(mOSSL, "fips_mode", ossl_fips_mode_get, 0);
rb_define_module_function(mOSSL, "fips_mode=", ossl_fips_mode_set, 1);
/*