Blame SOURCES/README.FIPS

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