openssl-fipsinstall โ perform FIPS configuration installation
| Use Case | Command | Description |
|---|---|---|
| ๐ Generate FIPS config | openssl fipsinstall -module ./fips.so -out fips.cnf -provider_name fips |
Calculate MAC of FIPS module, run selfโtests, and save configuration file |
| โ Verify FIPS config | openssl fipsinstall -module ./fips.so -in fips.cnf -provider_name fips -verify |
Verify that the configuration file contains correct information |
| ๐งช Corrupt selfโtests for testing | openssl fipsinstall -module ./fips.so -out fips.cnf -provider_name fips -corrupt_desc 'SHA1' |
Corrupt any selfโtests matching the given description |
| ๐ Validate module loading from config | openssl fipsinstall -config default.cnf |
Test that a FIPS provider can be loaded from the specified configuration file |
| ๐ Crossโcompiling / selfโtest on load | openssl fipsinstall -module ./fips.so -out fips.cnf -provider_name fips -self_test_onload |
Skip writing testโstatus fields; KATs run each time the module is loaded |
openssl fipsinstall [-help] [-in configfilename] [-out configfilename]
[-module modulefilename] [-provider_name providername] [-section_name
sectionname] [-verify] [-mac_name macname] [-macopt nm:v] [-noout]
[-quiet] [-no_conditional_errors] [-no_security_checks]
[-self_test_onload] [-corrupt_desc selftest_description] [-corrupt_type
selftest_type] [-config parent_config]
This command is used to generate a FIPS module configuration file. This configuration file can be used each time a FIPS module is loaded in order to pass data to the FIPS module self tests. The FIPS module always verifies its MAC, but optionally only needs to run the KAT's once, at installation.
The generated configuration file consists of:
This file is described in fips_config(5).
-helpPrint a usage message.
-module filenameFilename of the FIPS module to perform an integrity check on. The path provided in the filename is used to load the module when it is activated, and this overrides the environment variable OPENSSL_MODULES.
-out configfilenameFilename to output the configuration data to; the default is standard output.
-in configfilenameInput filename to load configuration data from. Must be used if the -verify option is specified.
-verifyVerify that the input configuration file contains the correct information.
-provider_name providernameName of the provider inside the configuration file. The default value is "fips".
-section_name sectionnameName of the section inside the configuration file. The default value is "fips_sect".
-mac_name nameSpecifies the name of a supported MAC algorithm which will be used. The MAC mechanisms that are available will depend on the options used when building OpenSSL. To see the list of supported MAC's use the command openssl list -mac-algorithms. The default is HMAC.
-macopt nm:vPasses options to the MAC algorithm. A comprehensive list of controls can be found in the EVP_MAC implementation documentation. Common control strings used for this command are:
key:string โ ๐ Specifies the MAC key as an alphanumeric string (use if the key contains printable characters only). The string length must conform to any restrictions of the MAC algorithm. A key must be specified for every MAC algorithm. If no key is provided, the default that was specified when OpenSSL was configured is used.hexkey:string โ ๐ Specifies the MAC key in hexadecimal form (two hex digits per byte). The key length must conform to any restrictions of the MAC algorithm. A key must be specified for every MAC algorithm. If no key is provided, the default that was specified when OpenSSL was configured is used.digest:string โ ๐งฎ Used by HMAC as an alphanumeric string (use if the key contains printable characters only). The string length must conform to any restrictions of the MAC algorithm. To see the list of supported digests, use the command openssl list -digest-commands. The default digest is SHA-256.-nooutDisable logging of the self tests.
-no_conditional_errorsConfigure the module to not enter an error state if a conditional self test fails as described above.
-no_security_checksConfigure the module to not perform run-time security checks as described above.
-self_test_onloadDo not write the two fields related to the "test status indicator" and "MAC status indicator" to the output configuration file. Without these fields the self tests KATS will run each time the module is loaded. This option could be used for cross compiling, since the self tests need to run at least once on each target machine. Once the self tests have run on the target machine the user could possibly then add the 2 fields into the configuration using some other mechanism.
-quietDo not output pass/fail messages. Implies -noout.
-corrupt_desc selftest_description, -corrupt_type selftest_typeThe corrupt options can be used to test failure of one or more self tests by name. Either option or both may be used to select the tests to corrupt. Refer to the entries for st-desc and st-type in OSSL_PROVIDER-FIPS(7) for values that can be used.
-config parent_configTest that a FIPS provider can be loaded from the specified configuration file. A previous call to this application needs to generate the extra configuration data that is included by the base "parent_config" configuration file. See config(5) for further information on how to set up a provider section. All other options are ignored if -config is used.
Self tests results are logged by default if the options -quiet and -noout are not specified, or if either of the options -corrupt_desc or -corrupt_type are used. If the base configuration file is set up to autoload the fips module, then the fips module will be loaded and self tested BEFORE the fipsinstall application has a chance to set up its own self test callback. As a result of this the self test output and the options -corrupt_desc and -corrupt_type will be ignored. For normal usage the base configuration file should use the default provider when generating the fips configuration file.
Calculate the mac of a FIPS module fips.so and run a FIPS self test for the module, and save the fips.cnf configuration file:
openssl fipsinstall -module ./fips.so -out fips.cnf -provider_name fips
Verify that the configuration file fips.cnf contains the correct info:
openssl fipsinstall -module ./fips.so -in fips.cnf -provider_name fips -verify
Corrupt any self tests which have the description "SHA1":
openssl fipsinstall -module ./fips.so -out fips.cnf -provider_name fips \
-corrupt_desc 'SHA1'
Validate that the fips module can be loaded from a base configuration file:
export OPENSSL_CONF_INCLUDE=<path of configuration files>
export OPENSSL_MODULES=<provider-path>
openssl fipsinstall -config' 'default.cnf'
Copyright 2019-2021 The OpenSSL Project Authors. All Rights Reserved.
Licensed under the Apache License 2.0 (the "License"). You may not use this file except in compliance with the License. You can obtain a copy in the file LICENSE in the source distribution or at https://www.openssl.org/source/license.html.
```Generated by phpman v4.9.26-1-g511901d · Markdown · JSON · MCP Author: Che Dong Under GNU General Public License
2026-08-04 07:23 @216.73.216.183
CrawledBy Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
Enhanced by LLM: deepseek-v4-flash / taotoken.net / www.chedong.com - original format