2016-09-28 07:40:05 -04:00
OpenSSL-APIs
2016-10-09 23:18:45 -04:00
------------
2016-09-28 07:40:05 -04:00
2021-02-25 07:22:40 -05:00
The code of this API (located in :component: `openssl` directory), does not contain OpenSSL itself but is intended as a wrapper for applications using the OpenSSL API.
2016-10-31 02:13:00 -04:00
It uses mbedTLS to do the actual work, so anyone compiling openssl code needs the mbedtls library and header file.
2016-10-31 02:06:29 -04:00
2016-10-09 23:18:45 -04:00
OpenSSL APIs not mentioned in this article are not open to public for the time,
also do not have the corresponding function.
2016-10-31 02:06:29 -04:00
If user calls it directly, it will always return an error or may show cannot link at compiling time.
2016-10-09 23:18:45 -04:00
2016-09-28 07:40:05 -04:00
Chapter Introduction
====================
2016-09-28 08:41:11 -04:00
- Chapter 1. SSL Context Method Create
2020-06-05 08:20:04 -04:00
- Chapter 2. SSL Context Function
- Chapter 3. SSL Function
2016-09-28 08:41:11 -04:00
- Chapter 4. SSL X509 Certification and Private Key Function
2016-09-28 07:40:05 -04:00
Chapter 1. SSL Context Method Create
====================================
2021-02-25 07:22:40 -05:00
.. highlight :: none
2016-10-09 23:18:45 -04:00
1.1 const SSL_METHOD* `` SSLv3_client_method `` (void)
2016-09-28 08:41:11 -04:00
Arguments::
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
none
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
Return::
2016-09-28 07:40:05 -04:00
2016-10-09 23:18:45 -04:00
SSLV3.0 version SSL context client method point
2016-09-28 08:41:11 -04:00
Description::
create the target SSL context method
Example::
2016-09-28 07:40:05 -04:00
void example(void)
{
2016-10-09 23:18:45 -04:00
const SSL_METHOD *method = SSLv3_client_method();
2016-09-28 07:40:05 -04:00
...
}
2016-09-28 08:46:45 -04:00
1.2 const SSL_METHOD* `` TLSv1_client_method `` (void)
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
Arguments::
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
none
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
Return::
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
TLSV1.0 version SSL context client method point
Description::
create the target SSL context method
Example::
2016-09-28 07:40:05 -04:00
void example(void)
{
const SSL_METHOD *method = TLSv1_client_method();
...
}
2016-10-09 23:18:45 -04:00
1.3 const SSL_METHOD* `` TLSv1_1_client_method `` (void)
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
Arguments::
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
none
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
Return::
2016-09-28 07:40:05 -04:00
2016-10-09 23:18:45 -04:00
TLSV1.1 version SSL context client method point
2016-09-28 08:41:11 -04:00
Description::
create the target SSL context method
Example::
2016-09-28 07:40:05 -04:00
void example(void)
{
2016-10-09 23:18:45 -04:00
const SSL_METHOD *method = TLSv1_1_client_method();
2016-09-28 07:40:05 -04:00
...
}
2016-10-09 23:18:45 -04:00
1.4 const SSL_METHOD* `` TLSv1_2_client_method `` (void)
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
Arguments::
2016-09-28 07:40:05 -04:00
2016-10-09 23:18:45 -04:00
none
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
Return::
2016-09-28 07:40:05 -04:00
2016-10-09 23:18:45 -04:00
TLSV1.2 version SSL context client method point
2016-09-28 08:41:11 -04:00
Description::
2016-10-09 23:18:45 -04:00
create the target SSL context method
2016-09-28 08:41:11 -04:00
Example::
2016-09-28 07:40:05 -04:00
void example(void)
{
2016-10-09 23:18:45 -04:00
const SSL_METHOD *method = TLSv1_2_client_method();
2016-09-28 07:40:05 -04:00
...
}
2016-10-09 23:18:45 -04:00
1.5 const SSL_METHOD* `` TLS_client_method `` (void)
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
Arguments::
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
none
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
Return::
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
TLSV1.2 version SSL context client method point
Description::
2016-10-09 23:18:45 -04:00
create the default SSL context method, it's always to be TLSV1.2
2016-09-28 08:41:11 -04:00
Example::
2016-09-28 07:40:05 -04:00
void example(void)
{
const SSL_METHOD *method = TLSv1_2_client_method();
...
2016-10-09 23:18:45 -04:00
}
2016-09-28 07:40:05 -04:00
2016-10-09 23:18:45 -04:00
1.6 const SSL_METHOD* `` SSLv3_server_method `` (void)
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
Arguments::
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
none
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
Return::
2016-09-28 07:40:05 -04:00
2016-10-09 23:18:45 -04:00
SSLV3.0 version SSL context server method point
2016-09-28 08:41:11 -04:00
Description::
create the target SSL context method
Example::
2016-09-28 07:40:05 -04:00
void example(void)
{
2016-10-09 23:18:45 -04:00
const SSL_METHOD *method = SSLv3_server_method();
2016-09-28 07:40:05 -04:00
...
}
2016-10-09 23:18:45 -04:00
1.7 const SSL_METHOD* `` TLSv1_server_method `` (void)
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
Arguments::
none
Return::
2016-09-28 07:40:05 -04:00
2016-10-09 23:18:45 -04:00
TLSV1.0 version SSL context server method point
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
Description::
create the target SSL context method
2016-09-28 07:40:05 -04:00
2016-10-09 23:18:45 -04:00
Example::
2016-09-28 07:40:05 -04:00
void example(void)
{
2016-10-09 23:18:45 -04:00
const SSL_METHOD *method = TLSv1_server_method();
2016-09-28 07:40:05 -04:00
...
}
2016-10-09 23:18:45 -04:00
1.8 const SSL_METHOD* `` TLSv1_1_server_method `` (void)
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
Arguments::
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
none
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
Return::
2016-09-28 07:40:05 -04:00
2016-10-09 23:18:45 -04:00
TLSV1.1 version SSL context server method point
2016-09-28 08:41:11 -04:00
Description::
create the target SSL context method
2021-02-25 07:22:40 -05:00
Example::
2016-09-28 07:40:05 -04:00
void example(void)
{
2016-10-09 23:18:45 -04:00
const SSL_METHOD *method = TLSv1_1_server_method();
2016-09-28 07:40:05 -04:00
...
}
2016-10-09 23:18:45 -04:00
1.9 const SSL_METHOD* `` TLSv1_2_server_method `` (void)
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
Arguments::
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
none
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
Return::
2016-09-28 07:40:05 -04:00
2016-10-09 23:18:45 -04:00
TLSV1.2 version SSL context server method point
2016-09-28 08:41:11 -04:00
Description::
create the target SSL context method
Example::
2016-09-28 07:40:05 -04:00
void example(void)
{
2016-10-09 23:18:45 -04:00
const SSL_METHOD *method = TLSv1_2_server_method();
2016-09-28 07:40:05 -04:00
...
}
2016-10-09 23:18:45 -04:00
1.10 const SSL_METHOD* `` TLS_server_method `` (void)
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
Arguments::
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
none
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
Return::
2016-09-28 07:40:05 -04:00
2016-10-09 23:18:45 -04:00
TLSV1.2 version SSL context server method point
2016-09-28 08:41:11 -04:00
Description::
2016-10-09 23:18:45 -04:00
create the default SSL context method, it's always to be TLSV1.2
2016-09-28 08:41:11 -04:00
Example::
2016-09-28 07:40:05 -04:00
void example(void)
{
2016-10-09 23:18:45 -04:00
const SSL_METHOD *method = TLSv1_2_server_method();
2016-09-28 07:40:05 -04:00
...
}
2021-02-25 07:22:40 -05:00
Chapter 2. SSL Context Function
2016-09-28 07:40:05 -04:00
===============================
2021-02-25 07:22:40 -05:00
2.1 SSL_CTX* ``SSL_CTX_new`` (const SSL_METHOD * method)
2016-09-28 08:41:11 -04:00
Arguments::
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
method - the SSL context method point
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
Return::
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
context point
Description::
create a SSL context
Example::
2016-09-28 07:40:05 -04:00
void example(void)
{
SSL_CTX *ctx = SSL_CTX_new(SSLv3_server_method());
...
}
2021-02-25 07:22:40 -05:00
2.2 `` void SSL_CTX_free `` (SSL_CTX * ctx)
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
Arguments::
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
ctx - the SSL context point
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
Return::
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
none
Description::
free a SSL context
Example::
2016-09-28 07:40:05 -04:00
void example(void)
{
SSL_CTX *ctx;
... ...
SSL_CTX_free(ctx);
}
2021-02-25 07:22:40 -05:00
2.3 `` int SSL_CTX_set_ssl_version `` (SSL_CTX * ctx, const SSL_METHOD * meth)
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
Arguments::
ctx - SSL context point
meth - SSL method point
Return::
2016-09-28 07:40:05 -04:00
1 : OK
0 : failed
2016-09-28 08:41:11 -04:00
Description::
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
set the SSL context version
Example::
2016-09-28 07:40:05 -04:00
void example(void)
{
SSL_CTX *ctx;
const SSL_METHOD *meth;
... ...
SSL_CTX_set_ssl_version(ctx, meth);
}
2021-02-25 07:22:40 -05:00
2.4 const SSL_METHOD* ``SSL_CTX_get_ssl_method`` (SSL_CTX * ctx)
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
Arguments::
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
ctx - SSL context point
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
Return::
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
SSL context method
Description::
get the SSL context method
Example::
2016-09-28 07:40:05 -04:00
void example(void)
{
const SSL_METHOD *method;
SSL_CTX *ctx;
... ...
method = SSL_CTX_get_ssl_method(ctx);
}
2021-02-25 07:22:40 -05:00
Chapter 3. SSL Function
2016-09-28 07:40:05 -04:00
=======================
2021-02-25 07:22:40 -05:00
3.1 SSL* ``SSL_new`` (SSL_CTX * ctx)
2016-09-28 08:41:11 -04:00
Arguments::
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
ctx - SSL context point
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
Return::
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
SSL method
Description::
create a SSL
Example::
2016-09-28 07:40:05 -04:00
void example(void)
{
SSL *ssl;
SSL_CTX *ctx;
... ...
ssl = SSL_new(ctx);
}
2021-02-25 07:22:40 -05:00
3.2 void `` SSL_free `` (SSL * ssl)
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
Arguments::
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
ssl - SSL point
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
Return::
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
none
Description::
free SSL
Example::
2016-09-28 07:40:05 -04:00
void example(void)
{
SSL *ssl;
... ...
SSL_free(ssl);
}
2021-02-25 07:22:40 -05:00
3.3 int `` SSL_do_handshake `` (SSL * ssl)
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
Arguments::
ssl - SSL point
Return::
2016-09-28 07:40:05 -04:00
1 : OK
0 : failed, connect is close by remote
-1 : a error catch
2016-09-28 08:41:11 -04:00
Description::
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
perform the SSL handshake
Example::
2016-09-28 07:40:05 -04:00
void example(void)
{
SSL *ssl;
int ret;
... ...
ret = SSL_do_handshake(ssl);
}
2021-02-25 07:22:40 -05:00
3.4 int `` SSL_connect `` (SSL * ssl)
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
Arguments::
ssl - SSL point
Return::
2016-09-28 07:40:05 -04:00
1 : OK
0 : failed, connect is close by remote
-1 : a error catch
2016-09-28 08:41:11 -04:00
Description::
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
connect to the remote SSL server
Example::
2016-09-28 07:40:05 -04:00
void example(void)
{
SSL *ssl;
int ret;
... ...
ret = SSL_connect(ssl);
}
2021-02-25 07:22:40 -05:00
3.5 int `` SSL_accept `` (SSL * ssl)
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
Arguments::
ssl - SSL point
Return::
2016-09-28 07:40:05 -04:00
1 : OK
0 : failed, connect is close by remote
-1 : a error catch
2016-09-28 08:41:11 -04:00
Description::
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
accept the remote connection
Example::
2016-09-28 07:40:05 -04:00
void example(void)
{
SSL *ssl;
int ret;
... ...
ret = SSL_accept(ssl);
}
2021-02-25 07:22:40 -05:00
3.6 int `` SSL_shutdown `` (SSL * ssl)
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
Arguments::
ssl - SSL point
Return::
2016-09-28 07:40:05 -04:00
1 : OK
0 : failed, connect is close by remote
-1 : a error catch
2016-09-28 08:41:11 -04:00
Description::
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
shutdown the connection
Example::
2016-09-28 07:40:05 -04:00
void example(void)
{
SSL *ssl;
int ret;
... ...
ret = SSL_shutdown(ssl);
}
2021-02-25 07:22:40 -05:00
3.7 int `` SSL_clear `` (SSL * ssl)
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
Arguments::
ssl - SSL point
Return::
2016-09-28 07:40:05 -04:00
1 : OK
0 : failed
2016-09-28 08:41:11 -04:00
Description::
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
shutdown the connection
Example::
2016-09-28 07:40:05 -04:00
void example(void)
{
SSL *ssl;
int ret;
... ...
ret = SSL_clear(ssl);
}
2021-02-25 07:22:40 -05:00
3.8 int `` SSL_read `` (SSL * ssl, void * buffer, int len)
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
Arguments::
ssl - point
buffer - data buffer point
len - data length
Return::
2016-09-28 07:40:05 -04:00
> 0 : OK, and return received data bytes
= 0 : no data received or connection is closed
< 0 : an error catch
2016-09-28 08:41:11 -04:00
Description::
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
read data from remote
Example::
2016-09-28 07:40:05 -04:00
void example(void)
{
SSL *ssl;
char *buf;
int len;
int ret;
... ...
ret = SSL_read(ssl, buf, len);
}
2021-02-25 07:22:40 -05:00
3.9 int `` SSL_write `` (SSL * ssl, const void * buffer, int len)
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
Arguments::
ssl - SSL point
buffer - data buffer point
len - data length
Return::
2016-09-28 07:40:05 -04:00
> 0 : OK, and return received data bytes
= 0 : no data sent or connection is closed
< 0 : an error catch
2016-09-28 08:41:11 -04:00
Description::
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
send the data to remote
Example::
2016-09-28 07:40:05 -04:00
void example(void)
{
SSL *ssl;
char *buf;
int len;
int ret;
... ...
ret = SSL_write(ssl, buf, len);
}
2021-02-25 07:22:40 -05:00
3.10 `` SSL_CTX *SSL_get_SSL_CTX `` (const SSL * ssl)
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
Arguments::
ssl - SSL point
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
Return::
SSL context
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
Description::
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
get SSL context of the SSL
Example::
2016-09-28 07:40:05 -04:00
void example(void)
{
SSL *ssl;
SSL_CTX *ctx;
... ...
ctx = SSL_get_SSL_CTX(ssl);
}
2021-02-25 07:22:40 -05:00
3.11 int `` SSL_get_shutdown `` (const SSL * ssl)
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
Arguments::
ssl - SSL point
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
Return::
shutdown mode
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
Description::
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
get SSL shutdown mode
Example::
2016-09-28 07:40:05 -04:00
void example(void)
{
SSL *ssl;
int mode;
... ...
mode = SSL_get_SSL_CTX(ssl);
}
2021-02-25 07:22:40 -05:00
3.12 void `` SSL_set_shutdown `` (SSL * ssl, int mode)
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
Arguments::
ssl - SSL point
Return::
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
shutdown mode
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
Description::
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
set SSL shutdown mode
Example::
2016-09-28 07:40:05 -04:00
void example(void)
{
SSL *ssl;
int mode = 0;
... ...
SSL_set_shutdown(ssl, mode);
}
2021-02-25 07:22:40 -05:00
3.13 const SSL_METHOD* ``SSL_get_ssl_method`` (SSL * ssl)
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
Arguments::
ssl - SSL point
Return::
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
SSL method
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
Description::
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
set SSL shutdown mode
Example::
2016-09-28 07:40:05 -04:00
void example(void)
{
SSL *ssl;
const SSL_METHOD *method;
... ...
method = SSL_get_ssl_method(ssl);
}
2021-02-25 07:22:40 -05:00
3.14 int `` SSL_set_ssl_method `` (SSL * ssl, const SSL_METHOD * method)
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
Arguments::
ssl - SSL point
meth - SSL method point
Return::
2016-09-28 07:40:05 -04:00
1 : OK
0 : failed
2016-09-28 08:41:11 -04:00
Description::
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
set the SSL method
Example::
2016-09-28 07:40:05 -04:00
void example(void)
{
int ret;
SSL *ssl;
const SSL_METHOD *method;
... ...
ret = SSL_set_ssl_method(ssl, method);
}
2021-02-25 07:22:40 -05:00
3.15 int `` SSL_pending `` (const SSL * ssl)
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
Arguments::
ssl - SSL point
Return::
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
data bytes
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
Description::
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
get received data bytes
Example::
2016-09-28 07:40:05 -04:00
void example(void)
{
int ret;
SSL *ssl;
... ...
ret = SSL_pending(ssl);
}
2021-02-25 07:22:40 -05:00
3.16 int `` SSL_has_pending `` (const SSL * ssl)
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
Arguments::
ssl - SSL point
Return::
2016-09-28 07:40:05 -04:00
1 : Yes
0 : No
2016-09-28 08:41:11 -04:00
Description::
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
check if data is received
Example::
2016-09-28 07:40:05 -04:00
void example(void)
{
int ret;
SSL *ssl;
... ...
ret = SSL_has_pending(ssl);
}
2021-02-25 07:22:40 -05:00
3.17 int `` SSL_get_fd `` (const SSL * ssl)
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
Arguments::
ssl - SSL point
Return::
2016-09-28 07:40:05 -04:00
>= 0 : socket id
< 0 : a error catch
2016-09-28 08:41:11 -04:00
Description::
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
get the socket of the SSL
Example::
2016-09-28 07:40:05 -04:00
void example(void)
{
int ret;
SSL *ssl;
... ...
ret = SSL_get_fd(ssl);
}
2021-02-25 07:22:40 -05:00
3.18 int `` SSL_get_rfd `` (const SSL * ssl)
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
Arguments::
ssl - SSL point
Return::
2016-09-28 07:40:05 -04:00
>= 0 : socket id
< 0 : a error catch
2016-09-28 08:41:11 -04:00
Description::
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
get the read only socket of the SSL
Example::
2016-09-28 07:40:05 -04:00
void example(void)
{
int ret;
SSL *ssl;
... ...
ret = SSL_get_rfd(ssl);
}
2021-02-25 07:22:40 -05:00
3.19 int `` SSL_get_wfd `` (const SSL * ssl)
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
Arguments::
ssl - SSL point
Return::
2016-09-28 07:40:05 -04:00
>= 0 : socket id
< 0 : a error catch
2016-09-28 08:41:11 -04:00
Description::
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
get the write only socket of the SSL
Example::
2016-09-28 07:40:05 -04:00
void example(void)
{
int ret;
SSL *ssl;
... ...
ret = SSL_get_wfd(ssl);
}
2021-02-25 07:22:40 -05:00
3.20 int `` SSL_set_fd `` (SSL * ssl, int fd)
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
Arguments::
ssl - SSL point
fd - socket id
Return::
2016-09-28 07:40:05 -04:00
1 : OK
0 : failed
2016-09-28 08:41:11 -04:00
Description::
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
set socket to SSL
Example::
2016-09-28 07:40:05 -04:00
void example(void)
{
int ret;
SSL *ssl;
int socket;
... ...
ret = SSL_set_fd(ssl, socket);
}
2021-02-25 07:22:40 -05:00
3.21 int `` SSL_set_rfd `` (SSL * ssl, int fd)
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
Arguments::
ssl - SSL point
fd - socket id
Return::
2016-09-28 07:40:05 -04:00
1 : OK
0 : failed
2016-09-28 08:41:11 -04:00
Description::
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
set read only socket to SSL
Example::
2016-09-28 07:40:05 -04:00
void example(void)
{
int ret;
SSL *ssl;
int socket;
... ...
ret = SSL_set_rfd(ssl, socket);
}
2021-02-25 07:22:40 -05:00
3.22 int `` SSL_set_wfd `` (SSL * ssl, int fd)
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
Arguments::
ssl - SSL point
fd - socket id
Return::
2016-09-28 07:40:05 -04:00
1 : OK
0 : failed
2016-09-28 08:41:11 -04:00
Description::
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
set write only socket to SSL
Example::
2016-09-28 07:40:05 -04:00
void example(void)
{
int ret;
SSL *ssl;
int socket;
... ...
ret = SSL_set_wfd(ssl, socket);
}
2021-02-25 07:22:40 -05:00
3.23 int `` SSL_version `` (const SSL * ssl)
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
Arguments::
ssl - SSL point
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
Return::
SSL version
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
Description::
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
get SSL version
Example::
2016-09-28 07:40:05 -04:00
void example(void)
{
int version;
SSL *ssl;
... ...
version = SSL_version(ssl);
}
2021-02-25 07:22:40 -05:00
3.24 const char* ``SSL_get_version`` (const SSL * ssl)
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
Arguments::
ssl - SSL point
Return::
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
SSL version string
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
Description::
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
get the SSL current version string
Example::
2016-09-28 07:40:05 -04:00
void example(void)
{
char *version;
SSL *ssl;
... ...
version = SSL_get_version(ssl);
}
2021-02-25 07:22:40 -05:00
3.25 OSSL_HANDSHAKE_STATE `` SSL_get_state `` (const SSL * ssl)
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
Arguments::
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
ssl - SSL point
Return::
SSL state
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
Description::
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
get the SSL state
Example::
2016-09-28 07:40:05 -04:00
void example(void)
{
OSSL_HANDSHAKE_STATE state;
SSL *ssl;
... ...
state = SSL_get_state(ssl);
}
2016-09-28 08:46:45 -04:00
3.26 const char* `` SSL_alert_desc_string `` (int value)
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
Arguments::
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
value - SSL description
Return::
alert value string
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
Description::
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
get alert description string
Example::
2016-09-28 07:40:05 -04:00
void example(void)
{
int val;
char *str;
... ...
str = SSL_alert_desc_string(val);
}
2016-09-28 08:46:45 -04:00
3.27 const char* `` SSL_alert_desc_string_long `` (int value)
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
Arguments::
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
value - SSL description
Return::
alert value long string
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
Description::
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
get alert description long string
Example::
2016-09-28 07:40:05 -04:00
void example(void)
{
int val;
char *str;
... ...
str = SSL_alert_desc_string_long(val);
}
2016-09-28 08:46:45 -04:00
3.28 const char* `` SSL_alert_type_string `` (int value)
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
Arguments::
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
value - SSL type description
Return::
alert type string
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
Description::
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
get alert type string
Example::
2016-09-28 07:40:05 -04:00
void example(void)
{
int val;
char *str;
... ...
str = SSL_alert_type_string(val);
}
2016-09-28 08:46:45 -04:00
3.29 const char* `` SSL_alert_type_string_long `` (int value)
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
Arguments::
value - SSL type description
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
Return::
alert type long string
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
Description::
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
get alert type long string
Example::
2016-09-28 07:40:05 -04:00
void example(void)
{
int val;
char *str;
... ...
str = SSL_alert_type_string_long(val);
}
2021-02-25 07:22:40 -05:00
3.30 const char* ``SSL_rstate_string`` (SSL * ssl)
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
Arguments::
ssl - SSL point
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
Return::
state string
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
Description::
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
get the state string where SSL is reading
Example::
2016-09-28 07:40:05 -04:00
void example(void)
{
SSL *ssl;
char *str;
... ...
str = SSL_rstate_string(ssl);
}
2021-02-25 07:22:40 -05:00
3.31 const char* ``SSL_rstate_string_long`` (SSL * ssl)
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
Arguments::
ssl - SSL point
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
Return::
state long string
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
Description::
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
get the state long string where SSL is reading
Example::
2016-09-28 07:40:05 -04:00
void example(void)
{
SSL *ssl;
char *str;
... ...
str = SSL_rstate_string_long(ssl);
}
2021-02-25 07:22:40 -05:00
3.32 const char* ``SSL_state_string`` (const SSL * ssl)
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
Arguments::
ssl - SSL point
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
Return::
state string
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
Description::
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
get the state string
Example::
2016-09-28 07:40:05 -04:00
void example(void)
{
SSL *ssl;
2016-09-28 08:41:11 -04:00
const char *str;
2016-09-28 07:40:05 -04:00
... ...
str = SSL_state_string(ssl);
}
2021-02-25 07:22:40 -05:00
3.33 char* ``SSL_state_string_long`` (const SSL * ssl)
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
Arguments::
ssl - SSL point
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
Return::
state long string
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
Description::
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
get the state long string
Example::
2016-09-28 07:40:05 -04:00
void example(void)
{
SSL *ssl;
char *str;
... ...
str = SSL_state_string(ssl);
}
2021-02-25 07:22:40 -05:00
3.34 int `` SSL_get_error `` (const SSL * ssl, int ret_code)
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
Arguments::
ssl - SSL point
ret_code - SSL return code
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
Return::
SSL error number
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
Description::
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
get SSL error code
Example::
2016-09-28 07:40:05 -04:00
void example(void)
{
SSL *ssl;
int ret;
int err;
... ...
err = SSL_get_error(ssl, ret);
}
2021-02-25 07:22:40 -05:00
3.35 int `` SSL_want `` (const SSL * ssl)
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
Arguments::
ssl - SSL point
Return::
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
specifical statement
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
Description::
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
get the SSL specifical statement
Example::
2016-09-28 07:40:05 -04:00
void example(void)
{
SSL *ssl;
int state;
... ...
state = SSL_want(ssl);
}
2021-02-25 07:22:40 -05:00
3.36 int `` SSL_want_nothing `` (const SSL * ssl)
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
Arguments::
ssl - SSL point
Return::
2016-09-28 07:40:05 -04:00
0 : false
1 : true
2016-09-28 08:41:11 -04:00
Description::
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
check if SSL want nothing
Example::
2016-09-28 07:40:05 -04:00
void example(void)
{
SSL *ssl;
int ret;
... ...
ret = SSL_want(ssl);
}
2021-02-25 07:22:40 -05:00
3.37 int `` SSL_want_read `` (const SSL * ssl)
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
Arguments::
ssl - SSL point
Return::
2016-09-28 07:40:05 -04:00
0 : false
1 : true
2016-09-28 08:41:11 -04:00
Description::
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
check if SSL want to read
Example::
2016-09-28 07:40:05 -04:00
void example(void)
{
SSL *ssl;
int ret;
... ...
ret = SSL_want_read(ssl);
}
2021-02-25 07:22:40 -05:00
3.38 int `` SSL_want_write `` (const SSL * ssl)
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
Arguments::
ssl - SSL point
Return::
2016-09-28 07:40:05 -04:00
0 : false
1 : true
2016-09-28 08:41:11 -04:00
Description::
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
check if SSL want to write
Example::
2016-09-28 07:40:05 -04:00
void example(void)
{
SSL *ssl;
int ret;
... ...
ret = SSL_want_write(ssl);
}
Chapter 4. SSL X509 Certification and Private Key Function
==========================================================
2021-02-25 07:22:40 -05:00
4.1 X509 * ``d2i_X509`` (X509 * * cert, const unsigned char * buffer, long len)
2016-09-28 08:41:11 -04:00
Arguments::
cert - a point pointed to X509 certification
buffer - a point pointed to the certification context memory point
length - certification bytes
Return::
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
X509 certification object point
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
Description::
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
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
Example::
2016-09-28 07:40:05 -04:00
void example(void)
{
X509 *new;
X509 *cert;
unsigned char *buffer;
long len;
... ...
new = d2i_X509(&cert, buffer, len);
}
2021-02-25 07:22:40 -05:00
4.2 int `` SSL_add_client_CA `` (SSL * ssl, X509 * x)
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
Arguments::
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
ssl - SSL point
x - CA certification point
Return::
2016-09-28 07:40:05 -04:00
1 : OK
0 : failed
2016-09-28 08:41:11 -04:00
Description::
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
add CA client certification into the SSL
Example::
2016-09-28 07:40:05 -04:00
void example(void)
{
int ret;
SSL *ssl;
X509 *new;
... ...
ret = SSL_add_client_CA(ssl, new);
}
2021-02-25 07:22:40 -05:00
4.3 int `` SSL_CTX_add_client_CA `` (SSL_CTX * ctx, X509 * x)
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
Arguments::
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
ctx - SSL context point
x - CA certification point
Return::
2016-09-28 07:40:05 -04:00
1 : OK
0 : failed
2016-09-28 08:41:11 -04:00
Description::
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
add CA client certification into the SSL context
Example::
2016-09-28 07:40:05 -04:00
void example(void)
{
int ret;
SSL_CTX *ctx;
X509 *new;
... ...
ret = SSL_add_clSSL_CTX_add_client_CAient_CA(ctx, new);
}
2021-02-25 07:22:40 -05:00
4.4 X509* ``SSL_get_certificate`` (const SSL * ssl)
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
Arguments::
ssl - SSL point
Return::
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
SSL certification point
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
Description::
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
get the SSL certification point
Example::
2016-09-28 07:40:05 -04:00
void example(void)
{
SSL *ssl;
X509 *cert;
... ...
cert = SSL_get_certificate(ssl);
}
2021-02-25 07:22:40 -05:00
4.5 long `` SSL_get_verify_result `` (const SSL * ssl)
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
Arguments::
ssl - SSL point
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
Return::
the result of verifying
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
Description::
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
get the verifying result of the SSL certification
Example::
2016-09-28 07:40:05 -04:00
void example(void)
{
SSL *ssl;
long ret;
... ...
ret = SSL_get_verify_result(ssl);
}
2021-02-25 07:22:40 -05:00
4.6 int `` SSL_CTX_use_certificate `` (SSL_CTX * ctx, X509 * x)
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
Arguments::
ctx - the SSL context point
pkey - certification object point
Return::
2016-09-28 07:40:05 -04:00
1 : OK
0 : failed
2016-09-28 08:41:11 -04:00
Description::
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
load the certification into the SSL_CTX or SSL object
2021-02-25 07:22:40 -05:00
2016-09-28 08:41:11 -04:00
Example::
2016-09-28 07:40:05 -04:00
void example(void)
{
int ret;
SSL_CTX *ctx
X509 *new;
... ...
ret = SSL_CTX_use_certificate(ctx, new);
}
2021-02-25 07:22:40 -05:00
4.7 int `` SSL_CTX_use_certificate_ASN1 `` (SSL_CTX * ctx, int len, const unsigned char * d)
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
Arguments::
ctx - SSL context point
len - certification length
d - data point
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
Return::
2016-09-28 07:40:05 -04:00
1 : OK
0 : failed
2016-09-28 08:41:11 -04:00
Description::
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
load the ASN1 certification into SSL context
Example::
2016-09-28 07:40:05 -04:00
void example(void)
{
int ret;
SSL_CTX *ctx;
const unsigned char *buf;
int len;
... ...
ret = SSL_CTX_use_certificate_ASN1(ctx, len, buf);
}
2021-02-25 07:22:40 -05:00
4.8 int `` SSL_CTX_use_PrivateKey `` (SSL_CTX * ctx, EVP_PKEY * pkey)
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
Arguments::
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
ctx - SSL context point
pkey - private key object point
Return::
2016-09-28 07:40:05 -04:00
1 : OK
0 : failed
2016-09-28 08:41:11 -04:00
Description::
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
load the private key into the context object
Example::
2016-09-28 07:40:05 -04:00
void example(void)
{
int ret;
SSL_CTX *ctx;
EVP_PKEY *pkey;
... ...
ret = SSL_CTX_use_PrivateKey(ctx, pkey);
}
2021-02-25 07:22:40 -05:00
4.9 int `` SSL_CTX_use_PrivateKey_ASN1 `` (int pk, SSL_CTX * ctx, const unsigned char * d, long len)
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
Arguments::
ctx - SSL context point
d - data point
len - private key length
Return::
2016-09-28 07:40:05 -04:00
1 : OK
0 : failed
2016-09-28 08:41:11 -04:00
Description::
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
load the ASN1 private key into SSL context
Example::
2016-09-28 07:40:05 -04:00
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);
}
2021-02-25 07:22:40 -05:00
4.10 int `` SSL_CTX_use_RSAPrivateKey_ASN1 `` (SSL_CTX * ctx, const unsigned char * d, long len)
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
Arguments::
ctx - SSL context point
d - data point
len - private key length
Return::
2016-09-28 07:40:05 -04:00
1 : OK
0 : failed
2016-09-28 08:41:11 -04:00
Description::
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
load the RSA ASN1 private key into SSL context
Example::
2016-09-28 07:40:05 -04:00
void example(void)
{
int ret;
SSL_CTX *ctx;
const unsigned char *buf;
long len;
... ...
ret = SSL_CTX_use_RSAPrivateKey_ASN1(ctx, buf, len);
}
2021-02-25 07:22:40 -05:00
4.11 int `` SSL_use_certificate_ASN1 `` (SSL * ssl, int len, const unsigned char * d)
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
Arguments::
ssl - SSL point
len - data bytes
d - data point
Return::
2016-09-28 07:40:05 -04:00
1 : OK
0 : failed
2016-09-28 08:41:11 -04:00
Description::
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
load certification into the SSL
Example::
2016-09-28 07:40:05 -04:00
void example(void)
{
int ret;
SSL *ssl;
const unsigned char *buf;
long len;
... ...
ret = SSL_use_certificate_ASN1(ssl, len, buf);
}
2021-02-25 07:22:40 -05:00
4.12 X509* ``SSL_get_peer_certificate`` (const SSL * ssl)
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
Arguments::
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
ssl - SSL point
Return::
peer certification
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
Description::
2016-09-28 07:40:05 -04:00
2016-09-28 08:41:11 -04:00
get peer certification
Example::
2016-09-28 07:40:05 -04:00
void example(void)
{
SSL *ssl;
X509 *peer;
... ...
peer = SSL_get_peer_certificate(ssl);
}