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]
