错误:隐式声明函数'FIPS_crypto_set_id_callback'

时间:2016-09-29 21:32:43

标签: openssl fips

尝试将OpenSSL从版本1.0.2h集成到1.0.2j时出现以下错误。

o_init.c:77:5: error: implicit declaration of function 'FIPS_crypto_set_id_callback' is
    invalid in C99 [-Werror,-Wimplicit-function-declaration]
FIPS_crypto_set_id_callback(CRYPTO_thread_id);

1 个答案:

答案 0 :(得分:2)

该方法调用包含" #ifndef OPENSSL_NO_DEPRECATED",它看起来像是从1.1.0分支后端移植的代码。

1.1.0的更改历史意味着他们一直在更改代码以改进OpenSSL API级别的管理。您可以尝试添加"不弃用"你的"配置"参数,但我不确定,因为它看起来是一个1.1.0配置选项。或者修改源代码以删除新的3行代码,因为您之前的版本无论如何都没有调用已弃用的方法。

--- a/crypto/o_init.c
+++ b/crypto/o_init.c
@@ -73,9 +73,6 @@
     done = 1;
 #ifdef OPENSSL_FIPS
     FIPS_set_locking_callbacks(CRYPTO_lock, CRYPTO_add_lock);
-# ifndef OPENSSL_NO_DEPRECATED
-    FIPS_crypto_set_id_callback(CRYPTO_thread_id);
-# endif
     FIPS_set_error_callbacks(ERR_put_error, ERR_add_error_vdata);
     FIPS_set_malloc_callbacks(CRYPTO_malloc, CRYPTO_free);
     RAND_init_fips();