On 12/09/2012 04:33 AM, Jeffrey Walton wrote:
> Hi All,
> 
> On page 133 of the User Guide 2.0 for the OpenSSL FIPS Object Module
> v2.0, the document (book?) talks about symbol renaming. The discussion
> occurs in "Appendix I, API Entry Points by Source File," and the text
> is below.
> 
> Why does symbol renaming occur?

Short answer: to avoid symbol name conflicts for static linking.

Long answer:

The FIPS module source distro is a separate smaller tarball, but
instead of storing it in a completely distinct source tree it is created
on the fly from the larger openssl source tree. Note we wanted to remove
extraneous source from the FIPS module source distribution so as to
simplify the validation process.

The resulting FIPS module can be statically linked (and usually is, for
the "FIPS capable" shared library). But, unlike earlier modules we
wanted to preserve separate implementations of the FIPS algorithms for
non-FIPS mode, as the FIPS module code can't be changed. So the symbol
renaming is done to avoid symbol conflicts between the two different
implementations of the FIPS approved algorithms and associated code.

That way the non-FIPS implementations can continue to improve over time
(bugfixes and optimizations) while the FIPS module proper remains frozen
in time. The 2.0 module should also be compatible with the evolving
baseline OpenSSL for longer.

-Steve M.

-- 
Steve Marquess
OpenSSL Software Foundation, Inc.
1829 Mount Ephraim Road
Adamstown, MD  21710
USA
+1 877 673 6775 s/b
+1 301 874 2571 direct
marqu...@opensslfoundation.com
marqu...@openssl.com
______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
User Support Mailing List                    openssl-users@openssl.org
Automated List Manager                           majord...@openssl.org

Reply via email to