文件说
OpenSSL保留了摘要算法和密码的内部表.它使用此表通过EVP_get_cipher_byname()等函数查找密码.
OpenSSL_add_all_digests()将所有摘要算法添加到表中.
我的问题是,这个表存放在哪里?我的代码如何知道这个方法已经执行了?...它是如何在内部工作的,如果我想要更多的SSL连接,一个是添加所有摘要而另一个不是?有谁知道这方面的任何好文件?
谢谢
手册页的NOTES部分总结了很多:
典型应用程序最初将调用OpenSSL_add_all_algorithms(),并在退出之前调用EVP_cleanup().
和
密码和摘要查找函数用于库的许多部分.如果表没有初始化,则几个函数会出错,并抱怨他们找不到算法.这包括PEM,PKCS#12,SSL和S/MIME库.这是OpenSSL邮件列表中的常见查询.
因此,假设您正在编写典型应用程序,则将其添加到OpenSSL初始化代码中:
OpenSSL_add_all_algorithms();
Run Code Online (Sandbox Code Playgroud)
这对OpenSSL清理代码:
EVP_cleanup();
Run Code Online (Sandbox Code Playgroud)
你完成了 您始终有责任在使用OpenSSL的应用程序中自行调用它们.如果您想知道OpenSSL如何在内部存储表,请使用源代码Luke.
要控制哪些密码可用于特定SSL上下文,您可以使用SSL_CTX_set_cipher_list.
至于比手册页更好的文档,我可以推荐John Viega,Matt Messier和Pravir Chandra的"OpenSSL网络安全".这本书很旧,并没有涵盖较新版本的OpenSSL,但大部分版本仍然非常适用.