FIPS algorithm blocking.
authorDr. Stephen Henson <steve@openssl.org>
Wed, 26 Jan 2005 20:00:40 +0000 (20:00 +0000)
committerDr. Stephen Henson <steve@openssl.org>
Wed, 26 Jan 2005 20:00:40 +0000 (20:00 +0000)
commitd0edffc7da3bd2572bd899411943b8062b1c6d8a
tree2a6b5b135b53a3650ceae901f2f0f23d5b494e36
parent12dfa8431092e61c3fa6bb37cd304ab8d26d568b
FIPS algorithm blocking.

Non FIPS algorithms are not normally allowed in FIPS mode.

Any attempt to use them via high level functions will return an error.

The low level non-FIPS algorithm functions cannot return errors so they
produce assertion failures. HMAC also has to give an assertion error because
it (erroneously) can't return an error either.

There are exceptions (such as MD5 in TLS and non cryptographic use of
algorithms) and applications can override the blocking and use non FIPS
algorithms anyway.

For low level functions the override is perfomed by prefixing the algorithm
initalization function with "private_" for example private_MD5_Init().

For high level functions an override is performed by setting a flag in
the context.
53 files changed:
apps/dgst.c
apps/pkcs12.c
crypto/bf/bf_skey.c
crypto/bf/blowfish.h
crypto/cast/c_skey.c
crypto/cast/cast.h
crypto/crypto.h
crypto/evp/bio_md.c
crypto/evp/digest.c
crypto/evp/e_aes.c
crypto/evp/e_des.c
crypto/evp/e_des3.c
crypto/evp/evp.h
crypto/evp/evp_enc.c
crypto/evp/evp_err.c
crypto/evp/evp_locl.h
crypto/evp/m_dss.c
crypto/evp/m_md2.c
crypto/evp/m_md4.c
crypto/evp/m_md5.c
crypto/evp/m_mdc2.c
crypto/evp/m_sha.c
crypto/evp/m_sha1.c
crypto/evp/names.c
crypto/hmac/hmac.c
crypto/hmac/hmac.h
crypto/idea/i_skey.c
crypto/idea/idea.h
crypto/md2/md2.h
crypto/md2/md2_dgst.c
crypto/md32_common.h
crypto/md4/md4.h
crypto/md4/md4_dgst.c
crypto/md5/md5.h
crypto/md5/md5_dgst.c
crypto/mdc2/mdc2.h
crypto/mdc2/mdc2dgst.c
crypto/rc2/rc2.h
crypto/rc2/rc2_skey.c
crypto/rc4/rc4.h
crypto/rc4/rc4_skey.c
crypto/rc5/rc5.h
crypto/rc5/rc5_skey.c
crypto/ripemd/ripemd.h
crypto/ripemd/rmd_dgst.c
crypto/sha/sha.h
crypto/sha/sha_locl.h
crypto/x509/x509_cmp.c
crypto/x509/x509_vfy.c
ssl/s3_clnt.c
ssl/s3_enc.c
ssl/s3_srvr.c
ssl/t1_enc.c