首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不懂OpenSSL_add_all_algorithms方法

不懂OpenSSL_add_all_algorithms方法
EN

Stack Overflow用户
提问于 2013-01-23 21:29:22
回答 3查看 8.2K关注 0票数 10

文件上说

OpenSSL保存了摘要算法和密码的内部表。它使用此表通过EVP_get_cipher_byname()等函数查找密码。 OpenSSL_add_all_digests()将所有摘要算法添加到表中。

我的问题是,这张桌子存放在哪里?我的代码如何知道这个方法有executed?...how,它在内部工作吗?如果我想要更多的SSL连接,一个要添加所有的摘要,而另一个没有?有人知道这方面有什么好的文件吗?

谢谢

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-01-23 22:45:00

手册页的备注部分对此进行了总结:

一个典型的应用程序将在退出之前首先调用OpenSSL_add_all_algorithms()和EVP_cleanup()。

密码和摘要查找函数用于库的许多部分。如果没有初始化表,几个函数会出现错误行为,并抱怨它们找不到算法。这包括PEM、PKCS#12、SSL和S/MIME库。这是OpenSSL邮件列表中的常见查询。

因此,假设您正在编写一个典型的应用程序,您将将其添加到您的OpenSSL初始化代码中:

代码语言:javascript
复制
OpenSSL_add_all_algorithms();

下面是OpenSSL清理代码:

代码语言:javascript
复制
EVP_cleanup();

你就完蛋了。在使用OpenSSL的应用程序中,您总是负责自己调用它们。如果您想知道OpenSSL如何在内部存储表,use the source, Luke

要控制哪些密码对于特定的SSL上下文可用,可以使用list

至于比手册页面更好的文档,我可以推荐"Network Security with OpenSSL" by John Viega, Matt Messier & Pravir Chandra。这本书是旧的,没有涵盖更新版本的OpenSSL,但大多数仍然是非常适用的。

票数 11
EN

Stack Overflow用户

发布于 2020-05-01 19:14:52

更新的OpenSSL_add_all_algorithms版本不需要OpenSSL (),因此会被忽略。为了实现向后和向前兼容性,请使用以下命令:

代码语言:javascript
复制
# if OPENSSL_API_COMPAT < 0x10100000L
OpenSSL_add_all_algorithms();
# endif

代码语言:javascript
复制
# if OPENSSL_API_COMPAT < 0x10100000L
EVP_cleanup();
# endif

OpenSSL_add_all_ciphers()和OpenSSL_add_all_digests()也是如此。

有关更多详细信息,请参见digests.html的手册页

票数 2
EN

Stack Overflow用户

发布于 2020-09-22 16:06:54

这是个老问题。API在几年前就被废弃了:

OpenSSL_add_all_algorithms()、OpenSSL_add_all_ciphers()、OpenSSL_add_all_digests()和EVP_cleanup()函数在OpenSSL 1.1.0中被OPENSSL_init_crypto()废弃。

参考资料:algorithms.html

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14489731

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档