Blame SOURCES/README.FIPS

aa8173
User guide for the FIPS Red Hat Enterprise Linux - OpenSSL Module
aa8173
=================================================================
aa8173
aa8173
This package contains libraries which comprise the FIPS 140-2
aa8173
Red Hat Enterprise Linux - OPENSSL Module.
aa8173
aa8173
The module files
aa8173
================
aa8173
/usr/lib[64]/libcrypto.so.1.0.2j
aa8173
/usr/lib[64]/libssl.so.1.0.2j
aa8173
/usr/lib[64]/.libcrypto.so.1.0.2j.hmac
aa8173
/usr/lib[64]/.libssl.so.1.0.2j.hmac
aa8173
aa8173
Dependencies
aa8173
============
aa8173
aa8173
The approved mode of operation requires kernel with /dev/urandom RNG running
aa8173
with properties as defined in the security policy of the module. This is
aa8173
provided by kernel packages with validated Red Hat Enterprise Linux - IPSec
aa8173
Crytographic Module.
aa8173
aa8173
Installation
aa8173
============
aa8173
aa8173
The RPM package of the module can be installed by standard tools recommended
aa8173
for installation of RPM packages on the Red Hat Enterprise Linux system (yum,
aa8173
rpm, RHN remote management tool).
aa8173
aa8173
For proper operation of the in-module integrity verification the prelink has to
aa8173
be disabled. This can be done with setting PRELINKING=no in the
aa8173
/etc/sysconfig/prelink configuration file. If the libraries were already
aa8173
prelinked the prelink should be undone on all the system files with the
aa8173
'prelink -u -a' command.
aa8173
aa8173
Usage and API
aa8173
=============
aa8173
aa8173
The module respects kernel command line FIPS setting. If the kernel command
aa8173
line contains option fips=1 the module will initialize in the FIPS approved
aa8173
mode of operation automatically. To allow for the automatic initialization the
aa8173
application using the module has to call one of the following API calls:
aa8173
aa8173
- void OPENSSL_init_library(void) - this will do only a basic initialization
aa8173
of the library and does initialization of the FIPS approved mode without setting
aa8173
up EVP API with supported algorithms.
aa8173
aa8173
- void OPENSSL_add_all_algorithms(void) - this API function calls
aa8173
OPENSSL_init() implicitly and also adds all approved algorithms to the EVP API
aa8173
in the approved mode 
aa8173
aa8173
- void SSL_library_init(void) - it calls OPENSSL_init() implicitly and also
aa8173
adds algorithms which are necessary for TLS protocol support and initializes
aa8173
the SSL library.
aa8173
aa8173
To explicitely put the library to the approved mode the application can call
aa8173
the following function:
aa8173
aa8173
- int FIPS_mode_set(int on) - if called with 1 as a parameter it will switch
aa8173
the library from the non-approved to the approved mode. If any of the selftests
aa8173
and integrity verification tests fail, the library is put into the error state
aa8173
and 0 is returned. If they succeed the return value is 1.
aa8173
aa8173
To query the module whether it is in the approved mode or not:
aa8173
aa8173
- int FIPS_mode(void) - returns 1 if the module is in the approved mode,
aa8173
0 otherwise.
aa8173
aa8173
To query whether the module is in the error state:
aa8173
aa8173
- int FIPS_selftest_failed(void) - returns 1 if the module is in the error
aa8173
state, 0 otherwise.
aa8173
aa8173
To zeroize the FIPS RNG key and internal state the application calls:
aa8173
aa8173
- void RAND_cleanup(void)