我正在分别使用openssl- FIPS -ecp-2.0.9和openssl-1.0.1j为FIPS Object Module和fips兼容OpenSSL构建。
其中FIPS one成功编译。但根据User Guide,使用./config添加fips选项会给出错误:
march=mips32 -fomit-frame-pointer -Wall -Ifips/openssl-fips-ecp-2.0.9/include -DSHA1_ASM -DSHA256_ASM -DAES_ASM -c -o o_fips.o o_fips.c
o_fips.c:60:26: fatal error: openssl/fips.h: No such file or directory
compilation terminated.
make[6]: *** [o_fips.o] Error 1crypto的Makefile使用的是o_fips.c,而o_fips.c的代码如下:
#include "cryptlib.h"
#ifdef OPENSSL_FIPS
#include <openssl/fips.h>
#include <openssl/fips_rand.h>
#include <openssl/rand.h>
#endif因为1.0.1版本之后的库中没有fips文件夹可供包含。有谁能帮帮我吗?
发布于 2015-04-14 19:24:36
通过提供适当的--openssldir和--with-fipsdir选项解决了问题。
发布于 2016-07-22 20:20:46
我的当前代码将两个库openssl-1.0.2h和openssl-fips-ecp-2.0.12并行放置在一个名为libraries的文件夹中。这是我在Makefile中使用的代码:
export HOSTCC=gcc
export FIPSLD_CC=gcc
export FIPSDIR=$(OPENSSLFIPS_TOP_DIR)/../fips_install
export OPENSSLDIR=$(OPENSSL_TOP_DIR)
export PREMAIN_DSO=openssl-1.0.2h/fips_premain_dso其中'OPENSSL_TOP_DIR‘和'OPENSSLFIPS_TOP_DIR’是各自库的路径。稍后在Makefile中,我们必须像这样构建库:
@cd openssl-fips-ecp-2.0.12 path; \
./Configure --cross-compile-prefix=$(CROSS_COMPILE) $(PLATFORM) \
-fPIC no-ec2m
$(MAKE) -C $(OPENSSLFIPS_DIR)
mkdir -p $(FIPSDIR)
$(MAKE) -C $(OPENSSLFIPS_DIR) install
@cd openssl-1.0.2h path; \
./Configure --cross-compile-prefix=$(CROSS_COMPILE) $(PLATFORM) \
fips no-ec2m
$(MAKE) -C $(OPENSSL_DIR)
cp -f $(OPENSSL_DIR)/libssl.so $(LIB_DIR)/libssl.so.1.0.0
cp -f $(OPENSSL_DIR)/libcrypto.so $(LIB_DIR)/libcrypto.so.1.0.0在这里,在设置所有特定于平台的(交叉编译)变量之后,您应该使用./config而不是./Configure。请参阅openSSL FIPS用户指南Section 3.4。
第一个构建将在fips_install(FIPSDIR)文件夹中生成fipscanister和其他文件。此FIPSDIR将由openssl库在内部使用,并在提到“fips”的基础上构建
https://stackoverflow.com/questions/29495429
复制相似问题