I am trying to build the FIPS Object Module for Windows on an AMD64
machine. I started with the instructions in section 4.3 of the User Guide
2.0, and was able to build the FIPS module itself, but the instructions for
building a FIPS-capable OpenSSL are specific to 32-bit Windows. I adjusted
the build procedure as follows:

perl Configure VC-WIN64A fips --with
fipslibdir=..\openssl-fips-2.0.5\out32dll
ms\do_win64a
nmake -f ms\nt.mak

This seems to work until the linking phase, when I get lots of linking
errors, most of them "unresolved external symbol OPENSSL_cleanse". Sure
enough, there is no mem_clr.obj anywhere. There are a few others as well:

libeayfips32.lib(cryptlib.obj) : error LNK2019: unresolved external symbol
OPENSSL_ia32_cpuid referenced in function OPENSSL_cpuid_setup
libeayfips32.lib(bn_mont.obj) : error LNK2019: unresolved external symbol
bn_mul_mont referenced in function BN_mod_mul_montgomery
libeayfips32.lib(bn_exp.obj) : error LNK2001: unresolved external symbol
bn_mul_mont
libeayfips32.lib(bn_exp.obj) : error LNK2019: unresolved external symbol
bn_gather5 referenced in function BN_mod_exp_mont_consttime
libeayfips32.lib(bn_exp.obj) : error LNK2019: unresolved external symbol
bn_mul_mont_gather5 referenced in function BN_mod_exp_mont_consttime
libeayfips32.lib(bn_exp.obj) : error LNK2019: unresolved external symbol
bn_scatter5 referenced in function BN_mod_exp_mont_consttime
libeayfips32.lib(aes_wrap.obj) : error LNK2019: unresolved external symbol
AES_encrypt referenced in function AES_wrap_key
libeayfips32.lib(aes_wrap.obj) : error LNK2019: unresolved external symbol
AES_decrypt referenced in function AES_unwrap_key
libeayfips32.lib(aes_misc.obj) : error LNK2019: unresolved external symbol
private_AES_set_encrypt_key referenced in function AES_set_encrypt_key
libeayfips32.lib(aes_misc.obj) : error LNK2019: unresolved external symbol
private_AES_set_decrypt_key referenced in function AES_set_decrypt_key
libeayfips32.lib(md5_dgst.obj) : error LNK2019: unresolved external symbol
md5_block_asm_data_order referenced in function MD5_Update
libeayfips32.lib(bn_gf2m.obj) : error LNK2019: unresolved external symbol
bn_GF2m_mul_2x2 referenced in function BN_GF2m_mod_mul_arr
out32\md4test.exe : fatal error LNK1120: 12 unresolved externals

Is there something missing from my modification to the build procedure?
Also (and more importantly), if I have to modify the build procedure for
the FIPS-capable OpenSSL but not for the FIPS Object Module itself, does
that mean my Module is not FIPS 140-2 validated?

Thank you
Graeme Perrow

______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
Development Mailing List                       [email protected]
Automated List Manager                           [email protected]

Reply via email to