Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C openssl 1.1中是否不推荐使用BIGNUM BN_uu函数?_C_Linux_Openssl - Fatal编程技术网

C openssl 1.1中是否不推荐使用BIGNUM BN_uu函数?

C openssl 1.1中是否不推荐使用BIGNUM BN_uu函数?,c,linux,openssl,C,Linux,Openssl,我正在编译一些在Fedora27(版本1.1.0g-1)下使用openssl的“C”代码。我做了一些必要的修改(从我的代码的1.0.2版本开始),现在一切都恢复正常了 然后,我尝试使用选项“OPENSSL\u API\u COMPAT=0x10100000L”进行编译,据我所知,该选项导致编译器不包含OPENSSL版本1.1中不推荐使用的API 现在,我的代码无法编译,而且似乎找不到诸如BN_bin2bn()和BN_free()之类的定义 看看这些头文件,/usr/include/openssl

我正在编译一些在Fedora27(版本1.1.0g-1)下使用openssl的“C”代码。我做了一些必要的修改(从我的代码的1.0.2版本开始),现在一切都恢复正常了

然后,我尝试使用选项“OPENSSL\u API\u COMPAT=0x10100000L”进行编译,据我所知,该选项导致编译器不包含OPENSSL版本1.1中不推荐使用的API

现在,我的代码无法编译,而且似乎找不到诸如BN_bin2bn()和BN_free()之类的定义

看看这些头文件,/usr/include/openssl/dh.h甚至不包含bn.h

那么,BN_xxxx函数现在是否都在1.1中弃用了

在类似的地方查看openssl 1.1文档并没有提到这种情况

就我所见,对at的BN_bin2bn()的描述并没有表明这是不推荐的

我错过什么了吗?如果这些函数被弃用,我想知道我应该使用什么来代替(对于dh.h之类的东西)

谢谢,

…c:927:8:错误:函数'BN_bin2bn'的隐式声明;你是说“OBJ_nid2sn”吗?[-Werror=隐式函数声明]

p=BN_bin2bn(dh1024_p,dh1024_p的大小,空);
^~~~~~~

BN函数仍然存在,未被弃用。检查是否缺少相关的
#如果

看起来他们一定刚刚做了一些头重构来消除头耦合。事实上,在1.1的dh标题中,我们现在看到

# if OPENSSL_API_COMPAT < 0x10100000L
#  include <openssl/bn.h>
# endif
#如果OPENSSL_API_COMPAT<0x10100000L
#包括
#恩迪夫
在中的第20行。所以向前看,它们不会自动包含bignum头。这听起来就像是改进了收割台耦合


尝试在包含dh.h之后显式添加
#include

我显式添加dh.h和bn.h,它现在可以用OPENSSL_API_COMPAT=0x10100000L编译。我的目标是当我在附近的时候更新任何过时的东西。