【发布时间】:2018-08-26 03:20:09
【问题描述】:
我正在编译一些在 Fedora 27(版本 1.1.0g-1)下使用 openssl 的“C”代码。我做了一些必要的更改(从我的代码的 1.0.2 版本开始),现在可以编译了。再次。
然后我尝试使用“OPENSSL_API_COMPAT=0x10100000L”选项进行编译,据我了解,这会导致编译器不包含 openssl 1.1 版中已弃用的 API。
现在,我的代码无法编译,并且似乎找不到 BN_bin2bn() 和 BN_free() 之类的定义。
查看标题,/usr/include/openssl/dh.h 甚至根本不包含带有此选项集的 bn.h。
那么,BN_xxxx 函数现在在 1.1 中是否已全部弃用?
在https://wiki.openssl.org/index.php/OpenSSL_1.1.0_Changes 之类的地方查看 openssl 1.1 文档并没有提到这种情况。
据我所知,https://www.openssl.org/docs/man1.1.0/crypto/BN_bin2bn.html 对 BN_bin2bn() 的描述并未表明它已被弃用。
我错过了什么吗?如果不推荐使用这些函数,我想知道我应该使用什么(用于 dh.h 的东西等)。
谢谢;
.....c:927:8: 错误:函数‘BN_bin2bn’的隐式声明;你的意思是“OBJ_nid2sn”吗? [-Werror=隐式函数声明]
p = BN_bin2bn(dh1024_p, dh1024_p 的大小, NULL); ^~~~~~~~~
【问题讨论】: