在OpenSSL的SSL / TLS客户端implementation中,定义了结构SSL
。例如,这里通常是前几行(来自链接)。
SSL_CTX* ctx = NULL;
BIO *web = NULL, *out = NULL;
SSL *ssl = NULL;
init_openssl_library();
我无法在OpenSSL库的头文件中找到它的结构。如何了解SSL * ssl
的内容?
答案 0 :(得分:4)
我无法在openssl库的头文件中找到它的结构类型。
目前还不清楚你所指的是哪个版本的openssl以及你是怎么看的,但是grep -r ' SSL;' /usr/include/openssl/
很快就在openssl / ossl_typ.h中为openssl 1.0.2发了一个匹配:
typedef struct ssl_st SSL;
以下grep for ssl_st'在openssl / ssl.h中定义它的定义:
#ifndef OPENSSL_NO_SSL_INTERN
struct ssl_st
{
/* protocol version
* (one of SSL2_VERSION, SSL3_VERSION, TLS1_VERSION, DTLS1_VERSION)
*/
int version;
int type; /* SSL_ST_CONNECT or SSL_ST_ACCEPT */
...
请注意,在其他版本的openssl中,结构的位置和内容可能会有所不同。
答案 1 :(得分:1)
在openssl 1.1.1中,ssl_st
在/ssl/ssl_local.h的第1080行中定义。
由于某些原因,这似乎是一个隐藏的定义,即使某些回调要求将此结构作为参数。