Blame SOURCES/README.FIPS

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