SSL结构的成员

时间:2016-09-06 21:02:12

标签: c ssl openssl

在OpenSSL的SSL / TLS客户端implementation中,定义了结构SSL。例如,这里通常是前几行(来自链接)。

SSL_CTX* ctx = NULL;
BIO *web = NULL, *out = NULL;
SSL *ssl = NULL;

init_openssl_library();

我无法在OpenSSL库的头文件中找到它的结构。如何了解SSL * ssl的内容?

2 个答案:

答案 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行中定义。

由于某些原因,这似乎是一个隐藏的定义,即使某些回调要求将此结构作为参数。