Blame SOURCES/README.FIPS

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