Openssl 未定义对“FIPS”模式的引用';

Openssl 未定义对“FIPS”模式的引用';,openssl,fips,Openssl,Fips,我将FIPS 140-2模块与OpenSSL()一起使用。我正在编写一个只获取FIPS模式的应用程序 这是我的Makefile: TOOLCHAIN:=/home/marcos/work/nitere/gcc-linaro-arm-linux-gnueabihf-4.9-2014.09_linux/bin:$PATH CROSS_COMPILE:=arm-linux-gnueabihf- OPENSSLDIR = /usr/local/ssl INCLUDES = -I$(OPENSSLDIR

我将FIPS 140-2模块与OpenSSL()一起使用。我正在编写一个只获取FIPS模式的应用程序

这是我的Makefile:

TOOLCHAIN:=/home/marcos/work/nitere/gcc-linaro-arm-linux-gnueabihf-4.9-2014.09_linux/bin:$PATH
CROSS_COMPILE:=arm-linux-gnueabihf-

OPENSSLDIR = /usr/local/ssl
INCLUDES = -I$(OPENSSLDIR)/include -I$(OPENSSLDIR)/fips-2.0/include
LIBS= -lcrypto

PATH:=${TOOLCHAIN}:${PATH}

all:
    ${CROSS_COMPILE}gcc fipsctl.c -o fipsctl $(INCLUDES) $(LIBS)

clean:
    rm -Rf *.o fipsctl
这是我的代码:

#include <openssl/crypto.h>
#include <stdio.h>

...
int mode = FIPS_mode();
if(mode == 0)
{
    printf("*** FIPS module is disabled. ***");
}
if(mode == 1)
{
    printf("*** FIPS module is enabled. ***");
}
有人知道我为什么会犯这个错误吗

任何提示都会非常有用,
谢谢。

我不知道我是否正确安装了FIPS模块。我遵循以下命令:

安装FIP:

root@arm:~# cd
root@arm:~# cd openssl-fips-2.0.10
root@arm:~# ./config
root@arm:~# make
root@arm:~# make install
安装具有FIPS支持的OpenSSL:

root@arm:~# cd 
root@arm:~# wget http://www.openssl.org/source/openssl-1.0.2e.tar.gz
root@arm:~# tar -xzvf openssl-1.0.2e.tar.gz
root@arm:~# cd openssl-1.0.2e
root@arm:~# ./config fips 
root@arm:~# make depend
root@arm:~# make 
root@arm:~# make install

是否正确?

如果是,您是否使用FIPS ecp分布 在编译openssl时,请尝试使用no-ec2m选项,如下所示:

root@arm:~#cd openssl-1.0.2e root@arm:~#/配置fips编号ec2m

在UserGuide2.pdf中还提到:
“请注意,在使用“ecp”发行版时,必须使用noec2m选项构建相应的“支持FIPS的”OpenSSL。”

我相信您需要构建/安装FIPS对象模块。这是
*-fips-*
下载。例如,.makefile显示的是
-lcrypto
小写的ell,而日志显示的是
-lcrypto
大写的ell;是哪一个?如果您的makefile中实际上有大写字母,那就错了@jww:应用程序不直接调用FIPS模块,只通过“支持FIPS”的OpenSSL库调用。如果
FIPS\u mode
确实链接,但执行时返回false,则可能是缺少FIPS模块。感谢您的回答!我使用./config FIPS安装了FIPS对象模块和OpenSSL。我是否忘记包含一些参数?有没有办法检查我的OpenSSL安装是否支持FIPS 140-2?应该可以。这就是指导。
root@arm:~# cd 
root@arm:~# wget http://www.openssl.org/source/openssl-1.0.2e.tar.gz
root@arm:~# tar -xzvf openssl-1.0.2e.tar.gz
root@arm:~# cd openssl-1.0.2e
root@arm:~# ./config fips 
root@arm:~# make depend
root@arm:~# make 
root@arm:~# make install