I've been working on getting a FIPS Capable OpenSSL into OpenSolaris.

Due to the way the FIPS Capable OpenSSL is built it ends up with older
implementations of ciphers (all the ones that fipscanister.o
implements). These cipher implementations are used regardless of being
in FIPS mode or not. As the ciphers from fipscanister.o (FIPS object
module 1.2) come from an older release of OpenSSL they do not perform as
well as the current implementations (e.g. AES is *much* slower on Intel
Core 2 CPUs).
The net result of this is that we'll probably deliver two versions of
libcrypto. One using the latest cipher implementations (0.9.8k) but not
FIPS enabled and the other FIPS enabled with the more poorly performing
cipher implementations.
This is seems to be an inherent problem as certification always takes
some time - the FIPS certified cipher implementations will always lag
the latest and greatest stable version.
Is this something we just have to live with or is there a plan to
somehow get the best of both worlds (speed and FIPS in one library)?

A consequence of delivering two libcryptos is that one will have the
FIPS_* symbols and the other will not. This makes building applications
which support the FIPS mode problematic if they are to run with both
libcrypto versions. They could be patched to use dlsym() but it would be
nice to avoid such hackery.
Is there any reason the regular non-FIPS Capable OpenSSL couldn't
contain the FIPS_* symbols (which would always fail when called) ?

I'm new to the list so if these things have been discussed before feel
free to send me to an archive of that previous discussion.

Thanks,

-M

______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
Development Mailing List                       openssl-dev@openssl.org
Automated List Manager                           majord...@openssl.org

Reply via email to