summaryrefslogtreecommitdiff
path: root/cipher/mac.c
diff options
context:
space:
mode:
Diffstat (limited to 'cipher/mac.c')
-rw-r--r--cipher/mac.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/cipher/mac.c b/cipher/mac.c
index b8a5534b..46be7b7b 100644
--- a/cipher/mac.c
+++ b/cipher/mac.c
@@ -116,6 +116,23 @@ static gcry_mac_spec_t *mac_list[] = {
NULL,
};
+/* Explicitly initialize this module. */
+gcry_err_code_t
+_gcry_mac_init (void)
+{
+ if (fips_mode())
+ {
+ /* disable algorithms that are disallowed in fips */
+ int idx;
+ gcry_mac_spec_t *spec;
+
+ for (idx = 0; (spec = mac_list[idx]); idx++)
+ if (!spec->flags.fips)
+ spec->flags.disabled = 1;
+ }
+
+ return 0;
+}
/* Return the spec structure for the MAC algorithm ALGO. For an