2014-02-11 146 views
1

我正在用FIPS編譯OpenSSL。在FIPS模式下OpenSSL 1.0.1e失敗

當我試圖通過出口OPENSSL_FIPS = 1運行在FIPS模式OpenSSL的二進制文件,這是給下面的錯誤,

47657709811344:error:2D06B06F:FIPS routines:FIPS_check_incore_fingerprint:fingerprint does not match:fips.c:232: 

我的平臺SUSE Linux的。

請幫忙。

編輯1:

我使用下面的命令來構建

./Configure no-idea fips --prefix=build/Linux.2.6.16_x86-64_gcc-4.1.2/result --with-fipslibdir=Current/lib/Linux.2.6.16_x86-64_gcc-4.1.2/ --with-fipsdir=Current linux-x86_64 --openssldir=/opt/VRTSssl shared no-zlib no-sse2 no-ec2m 

make depend ; make ; make install 
+0

你是如何編譯的?你使用靜態鏈接到OpenSSL,還是動態鏈接?如果是靜態的,你究竟如何調用GCC和/或make? – jww

+0

請參閱編輯1. – pratibha

+0

這可能是一個愚蠢的問題,但您是否構建並安裝'openssl-fips-2.0.N'? '--with-fipslibdir'和朋友應該指向'openssl-fips-2.0.N'安裝。 – jww

回答

1

化妝依賴;製造make install

做一個make all而不僅僅是make。這裏的一個問題是make install構建的東西,而不是隻是安裝的東西。它過去破壞了其他平臺,比如Android。我知道在安裝過程中避免構建東西的一種方法是發佈make all

嵌入指紋的OpenSSL腳本的另一個壞處是它無聲無息地失敗。我也瞭解到Android上的難題。


--with-fipsdir =當前的Linux-x86_64的

這個空間可能是造成問題。


--with-fipsdir = ...

我依稀記得FIPS目錄應該包括fips-2.0地方。它與openssldir有點不同。


--with-fipslibdir =電流/ lib目錄/ Linux.2.6.16_x86-64_gcc-4.1.2/

由於您使用--with-fipsdir,我不相信你需要--with-fipslibdir


是否OpenSSL的二進制有libcrypto.so依賴或rpath集?我現在在Mac上,所以我無法檢查Linux的功能。

+0

我試着做所有,但它失敗了相同的錯誤。我不明白「這個空間可能會導致問題。」評論。是的,這取決於libcrypto。 – pratibha

+0

是的,_RPATH_設置由_openssl_可執行版本完成。同樣'--with-fipsdir'等價於爲'Configure'設置_FIPSDIR_ var。默認_openssl-fips_ install目錄是:_/usr/local/ssl/fips-2.0_。 – CristiFati