Note

当前文档对应的 ESP-IDF 版本支持期限已满,版本停止更新维护。最新稳定版本是 v5.4

OpenSSL-APIs

注解

The OpenSSL-API will be discontinued in ESP-IDF from v5.0. Please use ESP-TLS <esp_tls> instead.

The code of this API (located in openssl directory), does not contain OpenSSL itself but is intended as a wrapper for applications using the OpenSSL API. It uses mbedTLS to do the actual work, so anyone compiling openssl code needs the mbedtls library and header file.

OpenSSL APIs not mentioned in this article are not open to public for the time, also do not have the corresponding function. If user calls it directly, it will always return an error or may show cannot link at compiling time.

Chapter Introduction

  • Chapter 1. SSL Context Method Create

  • Chapter 2. SSL Context Function

  • Chapter 3. SSL Function

  • Chapter 4. SSL X509 Certification and Private Key Function

Chapter 1. SSL Context Method Create

1.1 const SSL_METHOD* SSLv3_client_method (void)

Arguments:

none
Copy to clipboard

Return:

SSLV3.0 version SSL context client method point
Copy to clipboard

Description:

create the target SSL context method
Copy to clipboard

Example:

void example(void)
{
    const SSL_METHOD *method = SSLv3_client_method();

    ...
}
Copy to clipboard

1.2 const SSL_METHOD* TLSv1_client_method (void)

Arguments:

none
Copy to clipboard

Return:

TLSV1.0 version SSL context client method point
Copy to clipboard

Description:

create the target SSL context method
Copy to clipboard

Example:

void example(void)
{
    const SSL_METHOD *method = TLSv1_client_method();

    ...
}
Copy to clipboard

1.3 const SSL_METHOD* TLSv1_1_client_method (void)

Arguments:

none
Copy to clipboard

Return:

TLSV1.1 version SSL context client method point
Copy to clipboard

Description:

create the target SSL context method
Copy to clipboard

Example:

void example(void)
{
    const SSL_METHOD *method = TLSv1_1_client_method();

    ...
}
Copy to clipboard

1.4 const SSL_METHOD* TLSv1_2_client_method (void)

Arguments:

none
Copy to clipboard

Return:

TLSV1.2 version SSL context client method point
Copy to clipboard

Description:

create the target SSL context method
Copy to clipboard

Example:

void example(void)
{
    const SSL_METHOD *method = TLSv1_2_client_method();

    ...
}
Copy to clipboard

1.5 const SSL_METHOD* TLS_client_method (void)

Arguments:

none
Copy to clipboard

Return:

TLSV1.2 version SSL context client method point
Copy to clipboard

Description:

create the default SSL context method, it's always to be TLSV1.2
Copy to clipboard

Example:

void example(void)
{
    const SSL_METHOD *method = TLSv1_2_client_method();

    ...
}
Copy to clipboard

1.6 const SSL_METHOD* SSLv3_server_method (void)

Arguments:

none
Copy to clipboard

Return:

SSLV3.0 version SSL context server method point
Copy to clipboard

Description:

create the target SSL context method
Copy to clipboard

Example:

void example(void)
{
    const SSL_METHOD *method = SSLv3_server_method();

    ...
}
Copy to clipboard

1.7 const SSL_METHOD* TLSv1_server_method (void)

Arguments:

none
Copy to clipboard

Return:

TLSV1.0 version SSL context server method point
Copy to clipboard

Description:

create the target SSL context method
Copy to clipboard

Example:

void example(void)
{
    const SSL_METHOD *method = TLSv1_server_method();

    ...
}
Copy to clipboard

1.8 const SSL_METHOD* TLSv1_1_server_method (void)

Arguments:

none
Copy to clipboard

Return:

TLSV1.1 version SSL context server method point
Copy to clipboard

Description:

create the target SSL context method
Copy to clipboard

Example:

void example(void)
{
    const SSL_METHOD *method = TLSv1_1_server_method();

    ...
}
Copy to clipboard

1.9 const SSL_METHOD* TLSv1_2_server_method (void)

Arguments:

none
Copy to clipboard

Return:

TLSV1.2 version SSL context server method point
Copy to clipboard

Description:

create the target SSL context method
Copy to clipboard

Example:

void example(void)
{
    const SSL_METHOD *method = TLSv1_2_server_method();

    ...
}
Copy to clipboard

1.10 const SSL_METHOD* TLS_server_method (void)

Arguments:

none
Copy to clipboard

Return:

TLSV1.2 version SSL context server method point
Copy to clipboard

Description:

create the default SSL context method, it's always to be TLSV1.2
Copy to clipboard

Example:

void example(void)
{
    const SSL_METHOD *method = TLSv1_2_server_method();

    ...
}
Copy to clipboard

Chapter 2. SSL Context Function

2.1 SSL_CTX* SSL_CTX_new (const SSL_METHOD * method)

Arguments:

method - the SSL context method point
Copy to clipboard

Return:

context point
Copy to clipboard

Description:

create a SSL context
Copy to clipboard

Example:

void example(void)
{
    SSL_CTX *ctx = SSL_CTX_new(SSLv3_server_method());

    ...
}
Copy to clipboard

2.2 void SSL_CTX_free (SSL_CTX * ctx)

Arguments:

ctx - the SSL context point
Copy to clipboard

Return:

none
Copy to clipboard

Description:

free a SSL context
Copy to clipboard

Example:

void example(void)
{
    SSL_CTX *ctx;

    ... ...

    SSL_CTX_free(ctx);
}
Copy to clipboard

2.3 int SSL_CTX_set_ssl_version (SSL_CTX * ctx, const SSL_METHOD * meth)

Arguments:

ctx  - SSL context point
meth - SSL method point
Copy to clipboard

Return:

1 : OK
0 : failed
Copy to clipboard

Description:

set the SSL context version
Copy to clipboard

Example:

void example(void)
{
    SSL_CTX *ctx;
    const SSL_METHOD *meth;

    ... ...

    SSL_CTX_set_ssl_version(ctx, meth);
}
Copy to clipboard

2.4 const SSL_METHOD* SSL_CTX_get_ssl_method (SSL_CTX * ctx)

Arguments:

ctx - SSL context point
Copy to clipboard

Return:

SSL context method
Copy to clipboard

Description:

get the SSL context method
Copy to clipboard

Example:

void example(void)
{
    const SSL_METHOD *method;
    SSL_CTX *ctx;

    ... ...

    method = SSL_CTX_get_ssl_method(ctx);
}
Copy to clipboard

Chapter 3. SSL Function

3.1 SSL* SSL_new (SSL_CTX * ctx)

Arguments:

ctx - SSL context point
Copy to clipboard

Return:

SSL method
Copy to clipboard

Description:

create a SSL
Copy to clipboard

Example:

void example(void)
{
    SSL *ssl;
    SSL_CTX *ctx;

    ... ...

    ssl = SSL_new(ctx);
}
Copy to clipboard

3.2 void SSL_free (SSL * ssl)

Arguments:

ssl - SSL point
Copy to clipboard

Return:

none
Copy to clipboard

Description:

free SSL
Copy to clipboard

Example:

void example(void)
{
    SSL *ssl;

    ... ...

    SSL_free(ssl);
}
Copy to clipboard

3.3 int SSL_do_handshake (SSL * ssl)

Arguments:

ssl - SSL point
Copy to clipboard

Return:

 1 : OK
 0 : failed, connect is close by remote
-1 : a error catch
Copy to clipboard

Description:

perform the SSL handshake
Copy to clipboard

Example:

void example(void)
{
    SSL *ssl;
    int ret;

    ... ...

    ret = SSL_do_handshake(ssl);
}
Copy to clipboard

3.4 int SSL_connect (SSL * ssl)

Arguments:

ssl - SSL point
Copy to clipboard

Return:

 1 : OK
 0 : failed, connect is close by remote
-1 : a error catch
Copy to clipboard

Description:

connect to the remote SSL server
Copy to clipboard

Example:

void example(void)
{
    SSL *ssl;
    int ret;

    ... ...

    ret = SSL_connect(ssl);
}
Copy to clipboard

3.5 int SSL_accept (SSL * ssl)

Arguments:

ssl - SSL point
Copy to clipboard

Return:

 1 : OK
 0 : failed, connect is close by remote
-1 : a error catch
Copy to clipboard

Description:

accept the remote connection
Copy to clipboard

Example:

void example(void)
{
    SSL *ssl;
    int ret;

    ... ...

    ret = SSL_accept(ssl);
}
Copy to clipboard

3.6 int SSL_shutdown (SSL * ssl)

Arguments:

ssl - SSL point
Copy to clipboard

Return:

 1 : OK
 0 : failed, connect is close by remote
-1 : a error catch
Copy to clipboard

Description:

shutdown the connection
Copy to clipboard

Example:

void example(void)
{
    SSL *ssl;
    int ret;

    ... ...

    ret = SSL_shutdown(ssl);
}
Copy to clipboard

3.7 int SSL_clear (SSL * ssl)

Arguments:

ssl - SSL point
Copy to clipboard

Return:

1 : OK
0 : failed
Copy to clipboard

Description:

shutdown the connection
Copy to clipboard

Example:

void example(void)
{
    SSL *ssl;
    int ret;

    ... ...

    ret = SSL_clear(ssl);
}
Copy to clipboard

3.8 int SSL_read (SSL * ssl, void * buffer, int len)

Arguments:

ssl    - point
buffer - data buffer point
len    - data length
Copy to clipboard

Return:

> 0 : OK, and return received data bytes
= 0 : no data received or connection is closed
< 0 : an error catch
Copy to clipboard

Description:

read data from remote
Copy to clipboard

Example:

void example(void)
{
    SSL *ssl;
    char *buf;
    int len;
    int ret;

    ... ...

    ret = SSL_read(ssl, buf, len);
}
Copy to clipboard

3.9 int SSL_write (SSL * ssl, const void * buffer, int len)

Arguments:

ssl    - SSL point
buffer - data buffer point
len    - data length
Copy to clipboard

Return:

> 0 : OK, and return received data bytes
= 0 : no data sent or connection is closed
< 0 : an error catch
Copy to clipboard

Description:

send the data to remote
Copy to clipboard

Example:

void example(void)
{
    SSL *ssl;
    char *buf;
    int len;
    int ret;

    ... ...

    ret = SSL_write(ssl, buf, len);
}
Copy to clipboard

3.10 SSL_CTX *SSL_get_SSL_CTX (const SSL * ssl)

Arguments:

ssl - SSL point
Copy to clipboard

Return:

SSL context
Copy to clipboard

Description:

get SSL context of the SSL
Copy to clipboard

Example:

void example(void)
{
    SSL *ssl;
    SSL_CTX *ctx;

    ... ...

    ctx = SSL_get_SSL_CTX(ssl);
}
Copy to clipboard

3.11 int SSL_get_shutdown (const SSL * ssl)

Arguments:

ssl - SSL point
Copy to clipboard

Return:

shutdown mode
Copy to clipboard

Description:

get SSL shutdown mode
Copy to clipboard

Example:

void example(void)
{
    SSL *ssl;
    int mode;

    ... ...

    mode = SSL_get_SSL_CTX(ssl);
}
Copy to clipboard

3.12 void SSL_set_shutdown (SSL * ssl, int mode)

Arguments:

ssl - SSL point
Copy to clipboard

Return:

shutdown mode
Copy to clipboard

Description:

set SSL shutdown mode
Copy to clipboard

Example:

void example(void)
{
    SSL *ssl;
    int mode = 0;

    ... ...

    SSL_set_shutdown(ssl, mode);
}
Copy to clipboard

3.13 const SSL_METHOD* SSL_get_ssl_method (SSL * ssl)

Arguments:

ssl - SSL point
Copy to clipboard

Return:

SSL method
Copy to clipboard

Description:

set SSL shutdown mode
Copy to clipboard

Example:

void example(void)
{
    SSL *ssl;
    const SSL_METHOD *method;

    ... ...

    method = SSL_get_ssl_method(ssl);
}
Copy to clipboard

3.14 int SSL_set_ssl_method (SSL * ssl, const SSL_METHOD * method)

Arguments:

ssl  - SSL point
meth - SSL method point
Copy to clipboard

Return:

1 : OK
0 : failed
Copy to clipboard

Description:

set the SSL method
Copy to clipboard

Example:

void example(void)
{
    int ret;
    SSL *ssl;
    const SSL_METHOD *method;

    ... ...

    ret = SSL_set_ssl_method(ssl, method);
}
Copy to clipboard

3.15 int SSL_pending (const SSL * ssl)

Arguments:

ssl - SSL point
Copy to clipboard

Return:

data bytes
Copy to clipboard

Description:

get received data bytes
Copy to clipboard

Example:

void example(void)
{
    int ret;
    SSL *ssl;

    ... ...

    ret = SSL_pending(ssl);
}
Copy to clipboard

3.16 int SSL_has_pending (const SSL * ssl)

Arguments:

ssl - SSL point
Copy to clipboard

Return:

1 : Yes
0 : No
Copy to clipboard

Description:

check if data is received
Copy to clipboard

Example:

void example(void)
{
    int ret;
    SSL *ssl;

    ... ...

    ret = SSL_has_pending(ssl);
}
Copy to clipboard

3.17 int SSL_get_fd (const SSL * ssl)

Arguments:

ssl - SSL point
Copy to clipboard

Return:

>= 0 : socket id
 < 0 : a error catch
Copy to clipboard

Description:

get the socket of the SSL
Copy to clipboard

Example:

void example(void)
{
    int ret;
    SSL *ssl;

    ... ...

    ret = SSL_get_fd(ssl);
}
Copy to clipboard

3.18 int SSL_get_rfd (const SSL * ssl)

Arguments:

ssl - SSL point
Copy to clipboard

Return:

>= 0 : socket id
 < 0 : a error catch
Copy to clipboard

Description:

get the read only socket of the SSL
Copy to clipboard

Example:

void example(void)
{
    int ret;
    SSL *ssl;

    ... ...

    ret = SSL_get_rfd(ssl);
}
Copy to clipboard

3.19 int SSL_get_wfd (const SSL * ssl)

Arguments:

ssl - SSL point
Copy to clipboard

Return:

>= 0 : socket id
 < 0 : a error catch
Copy to clipboard

Description:

get the write only socket of the SSL
Copy to clipboard

Example:

void example(void)
{
    int ret;
    SSL *ssl;

    ... ...

    ret = SSL_get_wfd(ssl);
}
Copy to clipboard

3.20 int SSL_set_fd (SSL * ssl, int fd)

Arguments:

ssl - SSL point
fd  - socket id
Copy to clipboard

Return:

1 : OK
0 : failed
Copy to clipboard

Description:

set socket to SSL
Copy to clipboard

Example:

void example(void)
{
    int ret;
    SSL *ssl;
    int socket;

    ... ...

    ret = SSL_set_fd(ssl, socket);
}
Copy to clipboard

3.21 int SSL_set_rfd (SSL * ssl, int fd)

Arguments:

ssl - SSL point
fd  - socket id
Copy to clipboard

Return:

1 : OK
0 : failed
Copy to clipboard

Description:

set read only socket to SSL
Copy to clipboard

Example:

void example(void)
{
    int ret;
    SSL *ssl;
    int socket;

    ... ...

    ret = SSL_set_rfd(ssl, socket);
}
Copy to clipboard

3.22 int SSL_set_wfd (SSL * ssl, int fd)

Arguments:

ssl - SSL point
fd  - socket id
Copy to clipboard

Return:

1 : OK
0 : failed
Copy to clipboard

Description:

set write only socket to SSL
Copy to clipboard

Example:

void example(void)
{
    int ret;
    SSL *ssl;
    int socket;

    ... ...

    ret = SSL_set_wfd(ssl, socket);
}
Copy to clipboard

3.23 int SSL_version (const SSL * ssl)

Arguments:

ssl - SSL point
Copy to clipboard

Return:

SSL version
Copy to clipboard

Description:

get SSL version
Copy to clipboard

Example:

void example(void)
{
    int version;
    SSL *ssl;

    ... ...

    version = SSL_version(ssl);
}
Copy to clipboard

3.24 const char* SSL_get_version (const SSL * ssl)

Arguments:

ssl - SSL point
Copy to clipboard

Return:

SSL version string
Copy to clipboard

Description:

get the SSL current version string
Copy to clipboard

Example:

void example(void)
{
    char *version;
    SSL *ssl;

    ... ...

    version = SSL_get_version(ssl);
}
Copy to clipboard

3.25 OSSL_HANDSHAKE_STATE SSL_get_state (const SSL * ssl)

Arguments:

ssl - SSL point
Copy to clipboard

Return:

SSL state
Copy to clipboard

Description:

get the SSL state
Copy to clipboard

Example:

void example(void)
{
    OSSL_HANDSHAKE_STATE state;
    SSL *ssl;

    ... ...

    state = SSL_get_state(ssl);
}
Copy to clipboard

3.26 const char* SSL_alert_desc_string (int value)

Arguments:

value - SSL description
Copy to clipboard

Return:

alert value string
Copy to clipboard

Description:

get alert description string
Copy to clipboard

Example:

void example(void)
{
    int val;
    char *str;

    ... ...

    str = SSL_alert_desc_string(val);
}
Copy to clipboard

3.27 const char* SSL_alert_desc_string_long (int value)

Arguments:

value - SSL description
Copy to clipboard

Return:

alert value long string
Copy to clipboard

Description:

get alert description long string
Copy to clipboard

Example:

void example(void)
{
    int val;
    char *str;

    ... ...

    str = SSL_alert_desc_string_long(val);
}
Copy to clipboard

3.28 const char* SSL_alert_type_string (int value)

Arguments:

value - SSL type description
Copy to clipboard

Return:

alert type string
Copy to clipboard

Description:

get alert type string
Copy to clipboard

Example:

void example(void)
{
    int val;
    char *str;

    ... ...

    str = SSL_alert_type_string(val);
}
Copy to clipboard

3.29 const char* SSL_alert_type_string_long (int value)

Arguments:

value - SSL type description
Copy to clipboard

Return:

alert type long string
Copy to clipboard

Description:

get alert type long string
Copy to clipboard

Example:

void example(void)
{
    int val;
    char *str;

    ... ...

    str = SSL_alert_type_string_long(val);
}
Copy to clipboard

3.30 const char* SSL_rstate_string (SSL * ssl)

Arguments:

ssl - SSL point
Copy to clipboard

Return:

state string
Copy to clipboard

Description:

get the state string where SSL is reading
Copy to clipboard

Example:

void example(void)
{
    SSL *ssl;
    char *str;

    ... ...

    str = SSL_rstate_string(ssl);
}
Copy to clipboard

3.31 const char* SSL_rstate_string_long (SSL * ssl)

Arguments:

ssl - SSL point
Copy to clipboard

Return:

state long string
Copy to clipboard

Description:

get the state long string where SSL is reading
Copy to clipboard

Example:

void example(void)
{
    SSL *ssl;
    char *str;

    ... ...

    str = SSL_rstate_string_long(ssl);
}
Copy to clipboard

3.32 const char* SSL_state_string (const SSL * ssl)

Arguments:

ssl - SSL point
Copy to clipboard

Return:

state string
Copy to clipboard

Description:

get the state string
Copy to clipboard

Example:

void example(void)
{
    SSL *ssl;
    const char *str;

    ... ...

    str = SSL_state_string(ssl);
}
Copy to clipboard

3.33 char* SSL_state_string_long (const SSL * ssl)

Arguments:

ssl - SSL point
Copy to clipboard

Return:

state long string
Copy to clipboard

Description:

get the state long string
Copy to clipboard

Example:

void example(void)
{
    SSL *ssl;
    char *str;

    ... ...

    str = SSL_state_string(ssl);
}
Copy to clipboard

3.34 int SSL_get_error (const SSL * ssl, int ret_code)

Arguments:

ssl      - SSL point
ret_code - SSL return code
Copy to clipboard

Return:

SSL error number
Copy to clipboard

Description:

get SSL error code
Copy to clipboard

Example:

void example(void)
{
    SSL *ssl;
    int ret;
    int err;

    ... ...

    err = SSL_get_error(ssl, ret);
}
Copy to clipboard

3.35 int SSL_want (const SSL * ssl)

Arguments:

ssl - SSL point
Copy to clipboard

Return:

specifical statement
Copy to clipboard

Description:

get the SSL specifical statement
Copy to clipboard

Example:

void example(void)
{
    SSL *ssl;
    int state;

    ... ...

    state = SSL_want(ssl);
}
Copy to clipboard

3.36 int SSL_want_nothing (const SSL * ssl)

Arguments:

ssl - SSL point
Copy to clipboard

Return:

0 : false
1 : true
Copy to clipboard

Description:

check if SSL want nothing
Copy to clipboard

Example:

void example(void)
{
    SSL *ssl;
    int ret;

    ... ...

    ret = SSL_want(ssl);
}
Copy to clipboard

3.37 int SSL_want_read (const SSL * ssl)

Arguments:

ssl - SSL point
Copy to clipboard

Return:

0 : false
1 : true
Copy to clipboard

Description:

check if SSL want to read
Copy to clipboard

Example:

void example(void)
{
    SSL *ssl;
    int ret;

    ... ...

    ret = SSL_want_read(ssl);
}
Copy to clipboard

3.38 int SSL_want_write (const SSL * ssl)

Arguments:

ssl - SSL point
Copy to clipboard

Return:

0 : false
1 : true
Copy to clipboard

Description:

check if SSL want to write
Copy to clipboard

Example:

void example(void)
{
    SSL *ssl;
    int ret;

    ... ...

    ret = SSL_want_write(ssl);
}
Copy to clipboard

Chapter 4. SSL X509 Certification and Private Key Function

4.1 X509 * d2i_X509 (X509 ** cert, const unsigned char * buffer, long len)

Arguments:

cert   - a point pointed to X509 certification
buffer - a point pointed to the certification context memory point
length - certification bytes
Copy to clipboard

Return:

X509 certification object point
Copy to clipboard

Description:

load a character certification context into system context. If '*cert' is pointed to the
certification, then load certification into it. Or create a new X509 certification object
Copy to clipboard

Example:

void example(void)
{
    X509 *new;
    X509 *cert;
    unsigned char *buffer;
    long len;
    ... ...

    new = d2i_X509(&cert, buffer, len);
}
Copy to clipboard

4.2 int SSL_add_client_CA (SSL * ssl, X509 * x)

Arguments:

ssl - SSL point
x   - CA certification point
Copy to clipboard

Return:

1 : OK
0 : failed
Copy to clipboard

Description:

add CA client certification into the SSL
Copy to clipboard

Example:

void example(void)
{
    int ret;
    SSL *ssl;
    X509 *new;

    ... ...

    ret = SSL_add_client_CA(ssl, new);
}
Copy to clipboard

4.3 int SSL_CTX_add_client_CA (SSL_CTX * ctx, X509 * x)

Arguments:

ctx - SSL context point
 x   - CA certification point
Copy to clipboard

Return:

1 : OK
0 : failed
Copy to clipboard

Description:

add CA client certification into the SSL context
Copy to clipboard

Example:

void example(void)
{
    int ret;
    SSL_CTX *ctx;
    X509 *new;

    ... ...

    ret = SSL_add_clSSL_CTX_add_client_CAient_CA(ctx, new);
}
Copy to clipboard

4.4 X509* SSL_get_certificate (const SSL * ssl)

Arguments:

ssl - SSL point
Copy to clipboard

Return:

SSL certification point
Copy to clipboard

Description:

get the SSL certification point
Copy to clipboard

Example:

void example(void)
{
    SSL *ssl;
    X509 *cert;

    ... ...

    cert = SSL_get_certificate(ssl);
}
Copy to clipboard

4.5 long SSL_get_verify_result (const SSL * ssl)

Arguments:

ssl - SSL point
Copy to clipboard

Return:

the result of verifying
Copy to clipboard

Description:

get the verifying result of the SSL certification
Copy to clipboard

Example:

void example(void)
{
    SSL *ssl;
    long ret;

    ... ...

    ret = SSL_get_verify_result(ssl);
}
Copy to clipboard

4.6 int SSL_CTX_use_certificate (SSL_CTX * ctx, X509 * x)

Arguments:

ctx  - the SSL context point
pkey - certification object point
Copy to clipboard

Return:

1 : OK
0 : failed
Copy to clipboard

Description:

load the certification into the SSL_CTX or SSL object
Copy to clipboard

Example:

void example(void)
{
    int ret;
    SSL_CTX *ctx
    X509 *new;

    ... ...

    ret = SSL_CTX_use_certificate(ctx, new);
}
Copy to clipboard

4.7 int SSL_CTX_use_certificate_ASN1 (SSL_CTX * ctx, int len, const unsigned char * d)

Arguments:

ctx - SSL context point
len - certification length
d   - data point
Copy to clipboard

Return:

1 : OK
0 : failed
Copy to clipboard

Description:

load the ASN1 certification into SSL context
Copy to clipboard

Example:

void example(void)
{
    int ret;
    SSL_CTX *ctx;
    const unsigned char *buf;
    int len;

    ... ...

    ret = SSL_CTX_use_certificate_ASN1(ctx, len, buf);
}
Copy to clipboard

4.8 int SSL_CTX_use_PrivateKey (SSL_CTX * ctx, EVP_PKEY * pkey)

Arguments:

ctx - SSL context point
pkey - private key object point
Copy to clipboard

Return:

1 : OK
0 : failed
Copy to clipboard

Description:

load the private key into the context object
Copy to clipboard

Example:

void example(void)
{
    int ret;
    SSL_CTX *ctx;
    EVP_PKEY *pkey;

    ... ...

    ret = SSL_CTX_use_PrivateKey(ctx, pkey);
}
Copy to clipboard

4.9 int SSL_CTX_use_PrivateKey_ASN1 (int pk, SSL_CTX * ctx, const unsigned char * d, long len)

Arguments:

ctx - SSL context point
d   - data point
len - private key length
Copy to clipboard

Return:

1 : OK
0 : failed
Copy to clipboard

Description:

load the ASN1 private key into SSL context
Copy to clipboard

Example:

void example(void)
{
    int ret;
    int pk;
    SSL_CTX *ctx;
    const unsigned char *buf;
    long len;

    ... ...

    ret = SSL_CTX_use_PrivateKey_ASN1(pk, ctx, buf, len);
}
Copy to clipboard

4.10 int SSL_CTX_use_RSAPrivateKey_ASN1 (SSL_CTX * ctx, const unsigned char * d, long len)

Arguments:

ctx - SSL context point
d   - data point
len - private key length
Copy to clipboard

Return:

1 : OK
0 : failed
Copy to clipboard

Description:

load the RSA ASN1 private key into SSL context
Copy to clipboard

Example:

void example(void)
{
    int ret;
    SSL_CTX *ctx;
    const unsigned char *buf;
    long len;

    ... ...

    ret = SSL_CTX_use_RSAPrivateKey_ASN1(ctx, buf, len);
}
Copy to clipboard

4.11 int SSL_use_certificate_ASN1 (SSL * ssl, int len, const unsigned char * d)

Arguments:

ssl - SSL point
len - data bytes
d   - data point
Copy to clipboard

Return:

1 : OK
0 : failed
Copy to clipboard

Description:

load certification into the SSL
Copy to clipboard

Example:

void example(void)
{
    int ret;
    SSL *ssl;
    const unsigned char *buf;
    long len;

    ... ...

    ret = SSL_use_certificate_ASN1(ssl, len, buf);
}
Copy to clipboard

4.12 X509* SSL_get_peer_certificate (const SSL * ssl)

Arguments:

ssl - SSL point
Copy to clipboard

Return:

peer certification
Copy to clipboard

Description:

get peer certification
Copy to clipboard

Example:

void example(void)
{
    SSL *ssl;
    X509 *peer;

    ... ...

    peer = SSL_get_peer_certificate(ssl);
}
Copy to clipboard