]> granicus.if.org Git - esp-idf/commitdiff
components/openssl: add API header for openssl compatibility layer
authordongheng <dongheng@espressif.com>
Wed, 14 Sep 2016 11:39:24 +0000 (19:39 +0800)
committerdongheng <dongheng@espressif.com>
Wed, 14 Sep 2016 11:39:24 +0000 (19:39 +0800)
components/openssl/include/openssl/ssl.h [new file with mode: 0644]

diff --git a/components/openssl/include/openssl/ssl.h b/components/openssl/include/openssl/ssl.h
new file mode 100644 (file)
index 0000000..b7b784f
--- /dev/null
@@ -0,0 +1,1651 @@
+#ifndef HEADER_SSL_H\r
+#define HEADER_SSL_H\r
+\r
+#include "ssl_types.h"\r
+\r
+/*\r
+{\r
+*/\r
+\r
+/*\r
+ * SSL_CTX_new - create a SSL context\r
+ *\r
+ * @param method - the SSL context method point\r
+ *\r
+ * @return the context point, if create failed return NULL\r
+ */\r
+SSL_CTX* SSL_CTX_new(const SSL_METHOD *method);\r
+\r
+/*\r
+ * SSL_CTX_free - free a SSL context\r
+ *\r
+ * @param method - the SSL context point\r
+ *\r
+ * @return none\r
+ */\r
+void SSL_CTX_free(SSL_CTX *ctx);\r
+\r
+/*\r
+ * SSL_new - create a SSL\r
+ *\r
+ * @param ctx - the SSL context point\r
+ *\r
+ * @return the SSL point or NULL if failed\r
+ */\r
+SSL* SSL_new(SSL_CTX *ctx);\r
+\r
+/*\r
+ * SSL_free - free the SSL\r
+ *\r
+ * @param ssl - the SSL point\r
+ *\r
+ * @return none\r
+ */\r
+void SSL_free(SSL *ssl);\r
+\r
+/*\r
+ * SSL_connect - connect to the remote SSL server\r
+ *\r
+ * @param ssl - the SSL point\r
+ *\r
+ * @return\r
+ *         1 : OK\r
+ *        -1 : failed\r
+ */\r
+int SSL_connect(SSL *ssl);\r
+\r
+/*\r
+ * SSL_accept - accept the remote connection\r
+ *\r
+ * @param ssl - the SSL point\r
+ *\r
+ * @return\r
+ *         1 : OK\r
+ *        -1 : failed\r
+ */\r
+int SSL_accept(SSL *ssl);\r
+\r
+/*\r
+ * SSL_read - read data from to remote\r
+ *\r
+ * @param ssl    - the SSL point which has been connected\r
+ * @param buffer - the received data buffer point\r
+ * @param len    - the received data length\r
+ *\r
+ * @return\r
+ *       > 0 : OK, and return received data bytes\r
+ *       = 0 : connection is closed\r
+ *       < 0 : an error catch\r
+ */\r
+int SSL_read(SSL *ssl, void *buffer, int len);\r
+\r
+/*\r
+ * SSL_write - send the data to remote\r
+ *\r
+ * @param ssl    - the SSL point which has been connected\r
+ * @param buffer - the send data buffer point\r
+ * @param len    - the send data length\r
+ *\r
+ * @return\r
+ *       > 0 : OK, and return sent data bytes\r
+ *       = 0 : connection is closed\r
+ *       < 0 : an error catch\r
+ */\r
+int SSL_write(SSL *ssl, const void *buffer, int len);\r
+\r
+/*\r
+ * SSL_get_verify_result - get the verifying result of the SSL certification\r
+ *\r
+ * @param ssl - the SSL point\r
+ *\r
+ * @return the result of verifying\r
+ */\r
+long SSL_get_verify_result(const SSL *ssl);\r
+\r
+/*\r
+ * SSL_shutdown - shutdown the connection\r
+ *\r
+ * @param ssl - the SSL point\r
+ *\r
+ * @return\r
+ *        1 : OK\r
+ *        0 : shutdown is not finished\r
+ *       -1 : an error catch\r
+ */\r
+int SSL_shutdown(SSL *ssl);\r
+\r
+/*\r
+ * SSL_set_fd - bind the socket file description into the SSL\r
+ *\r
+ * @param ssl - the SSL point\r
+ * @param fd  - socket handle\r
+ *\r
+ * @return\r
+ *        1 : OK\r
+ *        0 : failed\r
+ */\r
+int SSL_set_fd(SSL *ssl, int fd);\r
+\r
+/*\r
+ * SSL_CTX_use_PrivateKey - These functions load the private key into the SSL_CTX or SSL object\r
+ *\r
+ * @param ctx  - the SSL context point\r
+ * @param pkey - private key object point\r
+ *\r
+ * @return\r
+ *        1 : OK\r
+ *        0 : failed\r
+ */\r
+int SSL_CTX_use_PrivateKey(SSL_CTX *ctx, EVP_PKEY *pkey);\r
+\r
+/*\r
+ * SSL_CTX_use_PrivateKey - These functions load the certification into the SSL_CTX or SSL object\r
+ *\r
+ * @param ctx  - the SSL context point\r
+ * @param pkey - certification object point\r
+ *\r
+ * @return\r
+ *        1 : OK\r
+ *        0 : failed\r
+ */\r
+int SSL_CTX_use_certificate(SSL_CTX *ctx, X509 *x);\r
+\r
+/*\r
+ * SSLv23_client_method - create the target SSL context client method\r
+ *\r
+ * @param none\r
+ *\r
+ * @return the SSLV2.3 version SSL context client method\r
+ */\r
+const SSL_METHOD* SSLv23_client_method(void);\r
+\r
+/*\r
+ * TLSv1_client_method - create the target SSL context client method\r
+ *\r
+ * @param none\r
+ *\r
+ * @return the TLSV1.0 version SSL context client method\r
+ */\r
+const SSL_METHOD* TLSv1_client_method(void);\r
+\r
+/*\r
+ * SSLv3_client_method - create the target SSL context client method\r
+ *\r
+ * @param none\r
+ *\r
+ * @return the SSLV1.0 version SSL context client method\r
+ */\r
+const SSL_METHOD* SSLv3_client_method(void);\r
+\r
+/*\r
+ * TLSv1_1_client_method - create the target SSL context client method\r
+ *\r
+ * @param none\r
+ *\r
+ * @return the TLSV1.1 version SSL context client method\r
+ */\r
+const SSL_METHOD* TLSv1_1_client_method(void);\r
+\r
+\r
+/*\r
+ * SSLv23_server_method - create the target SSL context server method\r
+ *\r
+ * @param none\r
+ *\r
+ * @return the SSLV2.3 version SSL context server method\r
+ */\r
+const SSL_METHOD* SSLv23_server_method(void);\r
+\r
+/*\r
+ * TLSv1_1_server_method - create the target SSL context server method\r
+ *\r
+ * @param none\r
+ *\r
+ * @return the TLSV1.1 version SSL context server method\r
+ */\r
+const SSL_METHOD* TLSv1_1_server_method(void);\r
+\r
+/*\r
+ * TLSv1_server_method - create the target SSL context server method\r
+ *\r
+ * @param none\r
+ *\r
+ * @return the TLSV1.0 version SSL context server method\r
+ */\r
+const SSL_METHOD* TLSv1_server_method(void);\r
+\r
+/*\r
+ * SSLv3_server_method - create the target SSL context server method\r
+ *\r
+ * @param none\r
+ *\r
+ * @return the SSLV3.0 version SSL context server method\r
+ */\r
+const SSL_METHOD* SSLv3_server_method(void);\r
+\r
+/*\r
+ * SSL_CTX_set_alpn_select_cb - set the SSL context ALPN select callback function\r
+ *\r
+ * @param ctx - SSL context point\r
+ * @param cb  - ALPN select callback function\r
+ * @param arg - ALPN select callback function entry private data point\r
+ *\r
+ * @return none\r
+ */\r
+void SSL_CTX_set_alpn_select_cb(SSL_CTX *ctx,\r
+                                int (*cb) (SSL *ssl,\r
+                                           const unsigned char **out,\r
+                                           unsigned char *outlen,\r
+                                           const unsigned char *in,\r
+                                           unsigned int inlen,\r
+                                           void *arg),\r
+                                void *arg);\r
+\r
+\r
+/*\r
+ * SSL_CTX_set_alpn_protos - set the SSL context ALPN select protocol\r
+ *\r
+ * @param ctx        - SSL context point\r
+ * @param protos     - ALPN protocol name\r
+ * @param protos_len - ALPN protocol name bytes\r
+ *\r
+ * @return\r
+ *        0 : OK\r
+ *        1 : failed\r
+ */\r
+int SSL_CTX_set_alpn_protos(SSL_CTX *ctx, const unsigned char *protos, unsigned int protos_len);\r
+\r
+/*\r
+ * SSL_CTX_set_next_proto_select_cb - set the SSL context next ALPN select callback function\r
+ *\r
+ * @param ctx - SSL context point\r
+ * @param cb  - ALPN select callback function\r
+ * @param arg - ALPN select callback function entry private data point\r
+ *\r
+ * @return none\r
+ */\r
+void SSL_CTX_set_next_proto_select_cb(SSL_CTX *ctx,\r
+                                      int (*cb) (SSL *ssl,\r
+                                                 unsigned char **out,\r
+                                                 unsigned char *outlen,\r
+                                                 const unsigned char *in,\r
+                                                 unsigned int inlen,\r
+                                                 void *arg),\r
+                                      void *arg);\r
+\r
+/*\r
+ * SSL_get_error - get SSL error code\r
+ *\r
+ * @param ssl       - SSL point\r
+ * @param ret_code  - SSL return code\r
+ *\r
+ * @return SSL error number\r
+ */\r
+int SSL_get_error(const SSL *ssl, int ret_code);\r
+\r
+/*\r
+ * ERR_clear_error - clear the SSL error code\r
+ *\r
+ * @param none\r
+ *\r
+ * @return none\r
+ */\r
+void ERR_clear_error(void);\r
+\r
+/*\r
+ * ERR_get_error - get the current SSL error code\r
+ *\r
+ * @param none\r
+ *\r
+ * @return current SSL error number\r
+ */\r
+int ERR_get_error(void);\r
+\r
+/*\r
+ * ERR_load_SSL_strings - register the SSL error strings\r
+ *\r
+ * @param none\r
+ *\r
+ * @return none\r
+ */\r
+void ERR_load_SSL_strings(void);\r
+\r
+/*\r
+ * SSL_library_init - initialize the SSL library\r
+ *\r
+ * @param none\r
+ *\r
+ * @return none\r
+ */\r
+void SSL_library_init(void);\r
+\r
+/*\r
+ * ERR_error_string - generates a human-readable string representing the error code e\r
+ *                    and store it into the "ret" point memory\r
+ *\r
+ * @param e   - error code\r
+ * @param ret - memory point to store the string\r
+ *\r
+ * @return the result string point\r
+ */\r
+char *ERR_error_string(unsigned long e, char *ret);\r
+\r
+/*\r
+ * SSL_CTX_set_options - add the SSL context option\r
+ *\r
+ * @param ctx - SSL context point\r
+ * @param opt - new SSL context option\r
+ *\r
+ * @return the SSL context option\r
+ */\r
+unsigned long SSL_CTX_set_options(SSL_CTX *ctx, unsigned long opt);\r
+\r
+/*\r
+ * SSL_CTX_set_options - add the SSL context mode\r
+ *\r
+ * @param ctx - SSL context point\r
+ * @param mod - new SSL context mod\r
+ *\r
+ * @return\r
+ *        1 : OK\r
+ *        0 : failed\r
+ */\r
+int SSL_CTX_set_mode(SSL_CTX *ctx, int mod);\r
+\r
+/*\r
+}\r
+*/\r
+\r
+/*\r
+ * SSL_do_handshake - perform the SSL handshake\r
+ *\r
+ * @param ssl - SSL point\r
+ *\r
+ * @return\r
+ *        1 : OK\r
+ *        0 : failed\r
+ *       -1 : a error catch\r
+ */\r
+int SSL_do_handshake(SSL *ssl);\r
+\r
+/*\r
+ * SSL_get_version - get the SSL current version\r
+ *\r
+ * @param ssl - SSL point\r
+ *\r
+ * @return the version string\r
+ */\r
+const char *SSL_get_version(const SSL *ssl);\r
+\r
+/*\r
+ * SSL_CTX_set_ssl_version - set  the SSL context version\r
+ *\r
+ * @param ctx  - SSL context point\r
+ * @param meth - SSL method point\r
+ *\r
+ * @return\r
+ *        1 : OK\r
+ *        0 : failed\r
+ */\r
+int SSL_CTX_set_ssl_version(SSL_CTX *ctx, const SSL_METHOD *meth);\r
+\r
+/*\r
+ * SSL_CTX_get_ssl_method - get the SSL context current method\r
+ *\r
+ * @param ctx - SSL context point\r
+ *\r
+ * @return the SSL context current method\r
+ */\r
+const SSL_METHOD *SSL_CTX_get_ssl_method(SSL_CTX *ctx);\r
+\r
+/*\r
+ * SSL_CTX_get_ssl_method - get the SSL current method\r
+ *\r
+ * @param ssl - SSL point\r
+ *\r
+ * @return the SSL current method\r
+ */\r
+const SSL_METHOD *SSL_get_ssl_method(SSL *ssl);\r
+\r
+/*\r
+ * SSL_set_ssl_method - set the SSL method\r
+ *\r
+ * @param ssl  - SSL point\r
+ * @param meth - SSL method point\r
+ *\r
+ * @return\r
+ *        1 : OK\r
+ *        0 : failed\r
+ */\r
+int SSL_set_ssl_method(SSL *ssl, const SSL_METHOD *method);\r
+\r
+/*\r
+ * SSL_add_client_CA - add CA client certification into the SSL\r
+ *\r
+ * @param ssl - SSL point\r
+ * @param x   - CA certification point\r
+ *\r
+ * @return\r
+ *        1 : OK\r
+ *        0 : failed\r
+ */\r
+int SSL_add_client_CA(SSL *ssl, X509 *x);\r
+\r
+/*\r
+ * SSL_add_client_CA - add CA client certification into the SSL context\r
+ *\r
+ * @param ctx - SSL context point\r
+ * @param x   - CA certification point\r
+ *\r
+ * @return\r
+ *        1 : OK\r
+ *        0 : failed\r
+ */\r
+int SSL_CTX_add_client_CA(SSL_CTX *ctx, X509 *x);\r
+\r
+/*\r
+ * SSL_set_client_CA_list - set the SSL CA certification list\r
+ *\r
+ * @param ssl       - SSL point\r
+ * @param name_list - CA certification list\r
+ *\r
+ * @return none\r
+ */\r
+void SSL_set_client_CA_list(SSL *ssl, STACK_OF(X509_NAME) *name_list);\r
+\r
+/*\r
+ * SSL_CTX_set_client_CA_list - set the SSL context CA certification list\r
+ *\r
+ * @param ctx       - SSL context point\r
+ * @param name_list - CA certification list\r
+ *\r
+ * @return none\r
+ */\r
+void SSL_CTX_set_client_CA_list(SSL_CTX *ctx, STACK_OF(X509_NAME) *name_list);\r
+\r
+/*\r
+ * SSL_get_client_CA_list - get the SSL CA certification list\r
+ *\r
+ * @param ssl - SSL point\r
+ *\r
+ * @return CA certification list\r
+ */\r
+STACK_OF(X509_NAME) *SSL_get_client_CA_list(const SSL *ssl);\r
+\r
+/*\r
+ * SSL_CTX_get_client_CA_list - get the SSL context CA certification list\r
+ *\r
+ * @param ctx - SSL context point\r
+ *\r
+ * @return CA certification list\r
+ */\r
+STACK_OF(X509_NAME) *SSL_CTX_get_client_CA_list(const SSL_CTX *ctx);\r
+\r
+/*\r
+ * SSL_get_certificate - get the SSL certification point\r
+ *\r
+ * @param ssl - SSL point\r
+ *\r
+ * @return SSL certification point\r
+ */\r
+X509 *SSL_get_certificate(const SSL *ssl);\r
+\r
+/*\r
+ * SSL_get_privatekey - get the SSL private key point\r
+ *\r
+ * @param ssl - SSL point\r
+ *\r
+ * @return SSL private key point\r
+ */\r
+EVP_PKEY *SSL_get_privatekey(const SSL *ssl);\r
+\r
+/*\r
+ * SSL_set_info_callback - set the SSL information callback function\r
+ *\r
+ * @param ssl - SSL point\r
+ * @param cb  - information callback function\r
+ *\r
+ * @return none\r
+ */\r
+void SSL_set_info_callback(SSL *ssl, void (*cb) (const SSL *ssl, int type, int val));\r
+\r
+/*\r
+ * SSL_get_state - get the SSL state\r
+ *\r
+ * @param ssl - SSL point\r
+ *\r
+ * @return SSL state\r
+ */\r
+OSSL_HANDSHAKE_STATE SSL_get_state(const SSL *ssl);\r
+\r
+/*\r
+ * SSL_CTX_set_default_read_buffer_len - set the SSL context read buffer length\r
+ *\r
+ * @param ctx - SSL context point\r
+ * @param len - read buffer length\r
+ *\r
+ * @return none\r
+ */\r
+void SSL_CTX_set_default_read_buffer_len(SSL_CTX *ctx, size_t len);\r
+\r
+/*\r
+ * SSL_set_default_read_buffer_len - set the SSL read buffer length\r
+ *\r
+ * @param ssl - SSL point\r
+ * @param len - read buffer length\r
+ *\r
+ * @return none\r
+ */\r
+void SSL_set_default_read_buffer_len(SSL *ssl, size_t len);\r
+\r
+/*\r
+ * SSL_set_security_level - set the SSL security level\r
+ *\r
+ * @param ssl   - SSL point\r
+ * @param level - security level\r
+ *\r
+ * @return none\r
+ */\r
+void SSL_set_security_level(SSL *ssl, int level);\r
+\r
+/*\r
+ * SSL_get_security_level - get the SSL security level\r
+ *\r
+ * @param ssl - SSL point\r
+ *\r
+ * @return security level\r
+ */\r
+int SSL_get_security_level(const SSL *ssl);\r
+\r
+/*\r
+ * SSL_CTX_get_verify_mode - get the SSL verifying mode of the SSL context\r
+ *\r
+ * @param ctx - SSL context point\r
+ *\r
+ * @return verifying mode\r
+ */\r
+int SSL_CTX_get_verify_mode(const SSL_CTX *ctx);\r
+\r
+/*\r
+ * SSL_CTX_get_verify_depth - get the SSL verifying depth of the SSL context\r
+ *\r
+ * @param ctx - SSL context point\r
+ *\r
+ * @return verifying depth\r
+ */\r
+int SSL_CTX_get_verify_depth(const SSL_CTX *ctx);\r
+\r
+/*\r
+ * SSL_CTX_set_verify - set the SSL context verifying of the SSL context\r
+ *\r
+ * @param ctx             - SSL context point\r
+ * @param mode            - verifying mode\r
+ * @param verify_callback - verifying callback function\r
+ *\r
+ * @return none\r
+ */\r
+void SSL_CTX_set_verify(SSL_CTX *ctx, int mode, int (*verify_callback)(int, X509_STORE_CTX *));\r
+\r
+/*\r
+ * SSL_set_verify - set the SSL verifying of the SSL context\r
+ *\r
+ * @param ctx             - SSL point\r
+ * @param mode            - verifying mode\r
+ * @param verify_callback - verifying callback function\r
+ *\r
+ * @return none\r
+ */\r
+void SSL_set_verify(SSL *s, int mode, int (*verify_callback)(int, X509_STORE_CTX *));\r
+\r
+/*\r
+ * SSL_CTX_set_verify_depth - set the SSL verify depth of the SSL context\r
+ *\r
+ * @param ctx   - SSL context point\r
+ * @param depth - verifying depth\r
+ *\r
+ * @return one\r
+ */\r
+void SSL_CTX_set_verify_depth(SSL_CTX *ctx, int depth);\r
+\r
+/*\r
+ * verify_callback - certification verifying callback function\r
+ *\r
+ * @param preverify_ok - verifying result\r
+ * @param x509_ctx     - X509 certification point\r
+ *\r
+ * @return verifying result\r
+ */\r
+int verify_callback(int preverify_ok, X509_STORE_CTX *x509_ctx);\r
+\r
+/*\r
+ * SSL_CTX_set_timeout - set the session timeout time\r
+ *\r
+ * @param ctx - SSL context point\r
+ * @param t   - new session timeout time\r
+ *\r
+ * @return old session timeout time\r
+ */\r
+long SSL_CTX_set_timeout(SSL_CTX *ctx, long t);\r
+\r
+/*\r
+ * SSL_CTX_get_timeout - get the session timeout time\r
+ *\r
+ * @param ctx - SSL context point\r
+ *\r
+ * @return current session timeout time\r
+ */\r
+long SSL_CTX_get_timeout(const SSL_CTX *ctx);\r
+\r
+/*\r
+ * SSL_CTX_set_cipher_list - set the SSL context cipher through the list string\r
+ *\r
+ * @param ctx - SSL context point\r
+ * @param str - cipher controller list string\r
+ *\r
+ * @return\r
+ *         1 : OK\r
+ *         0 : failed\r
+ */\r
+int SSL_CTX_set_cipher_list(SSL_CTX *ctx, const char *str);\r
+\r
+/*\r
+ * SSL_set_cipher_list - set the SSL cipher through the list string\r
+ *\r
+ * @param ssl - SSL point\r
+ * @param str - cipher controller list string\r
+ *\r
+ * @return\r
+ *         1 : OK\r
+ *         0 : failed\r
+ */\r
+int SSL_set_cipher_list(SSL *ssl, const char *str);\r
+\r
+/*\r
+ * SSL_get_cipher_list - get the SSL cipher list string\r
+ *\r
+ * @param ssl - SSL point\r
+ *\r
+ * @return cipher controller list string\r
+ */\r
+const char *SSL_get_cipher_list(const SSL *ssl, int n);\r
+\r
+/*\r
+ * SSL_get_current_cipher - get the SSL cipher\r
+ *\r
+ * @param ssl - SSL point\r
+ *\r
+ * @return current cipher\r
+ */\r
+const SSL_CIPHER *SSL_get_current_cipher(const SSL *ssl);\r
+\r
+/*\r
+ * SSL_get_cipher - get the SSL cipher string\r
+ *\r
+ * @param ssl - SSL point\r
+ *\r
+ * @return cipher string\r
+ */\r
+const char *SSL_get_cipher(const SSL *ssl);\r
+\r
+/*\r
+ * SSL_CTX_get_cert_store - get the SSL context object X509 certification storage\r
+ *\r
+ * @param ctx - SSL context point\r
+ *\r
+ * @return x509 certification storage\r
+ */\r
+X509_STORE *SSL_CTX_get_cert_store(const SSL_CTX *ctx);\r
+\r
+/*\r
+ * SSL_CTX_set_cert_store - set the SSL context object X509 certification store\r
+ *\r
+ * @param ctx   - SSL context point\r
+ * @param store - X509 certification store\r
+ *\r
+ * @return none\r
+ */\r
+void SSL_CTX_set_cert_store(SSL_CTX *ctx, X509_STORE *store);\r
+\r
+/*\r
+ * SSL_want - get the SSL specifical statement\r
+ *\r
+ * @param ssl - SSL point\r
+ *\r
+ * @return specifical statement\r
+ */\r
+int SSL_want(const SSL *ssl);\r
+\r
+/*\r
+ * SSL_want_x509_lookup - check if the SSL is SSL_X509_LOOKUP state\r
+ *\r
+ * @param ssl - SSL point\r
+ *\r
+ * @return\r
+ *         1 : yes\r
+ *         0 : no\r
+ */\r
+int SSL_want_x509_lookup(const SSL *ssl);\r
+\r
+/*\r
+ * SSL_clear - reset the SSL\r
+ *\r
+ * @param ssl - SSL point\r
+ *\r
+ * @return\r
+ *         1 : yes\r
+ *         0 : no\r
+ */\r
+int SSL_clear(SSL *ssl);\r
+\r
+/*\r
+ * SSL_get_fd - get the socket handle of the SSL\r
+ *\r
+ * @param ssl - SSL point\r
+ *\r
+ * @return\r
+ *      >= 0 : yes, and return socket handle\r
+ *       < 0 : a error catch\r
+ */\r
+int SSL_get_fd(const SSL *ssl);\r
+\r
+/*\r
+ * SSL_get_rfd - get the read only socket handle of the SSL\r
+ *\r
+ * @param ssl - SSL point\r
+ *\r
+ * @return\r
+ *      >= 0 : yes, and return socket handle\r
+ *       < 0 : a error catch\r
+ */\r
+int SSL_get_rfd(const SSL *ssl);\r
+\r
+/*\r
+ * SSL_get_wfd - get the write only socket handle of the SSL\r
+ *\r
+ * @param ssl - SSL point\r
+ *\r
+ * @return\r
+ *      >= 0 : yes, and return socket handle\r
+ *       < 0 : a error catch\r
+ */\r
+int SSL_get_wfd(const SSL *ssl);\r
+\r
+/*\r
+ * SSL_set_read_ahead - set the SSL if we can read as many as data\r
+ *\r
+ * @param ssl - SSL point\r
+ * @param yes - enbale the function\r
+ *\r
+ * @return none\r
+ */\r
+void SSL_set_read_ahead(SSL *s, int yes);\r
+\r
+/*\r
+ * SSL_set_read_ahead - set the SSL context if we can read as many as data\r
+ *\r
+ * @param ctx - SSL context point\r
+ * @param yes - enbale the function\r
+ *\r
+ * @return none\r
+ */\r
+void SSL_CTX_set_read_ahead(SSL_CTX *ctx, int yes);\r
+\r
+/*\r
+ * SSL_set_read_ahead - get the SSL ahead signal if we can read as many as data\r
+ *\r
+ * @param ssl - SSL point\r
+ *\r
+ * @return SSL context ahead signal\r
+ */\r
+int SSL_get_read_ahead(const SSL *ssl);\r
+\r
+/*\r
+ * SSL_set_read_ahead - get the SSL context ahead signal if we can read as many as data\r
+ *\r
+ * @param ctx - SSL context point\r
+ *\r
+ * @return SSL context ahead signal\r
+ */\r
+long SSL_CTX_get_read_ahead(SSL_CTX *ctx);\r
+\r
+/*\r
+ * SSL_has_pending - check if some data can be read\r
+ *\r
+ * @param ssl - SSL point\r
+ *\r
+ * @return SSL context ahead signal\r
+ */\r
+int SSL_has_pending(const SSL *ssl);\r
+\r
+/*\r
+ * SSL_CTX_use_certificate - load the X509 certification into SSL context\r
+ *\r
+ * @param ctx - SSL context point\r
+ * @param x   - X509 certification point\r
+ *\r
+ * @return\r
+ *         1 : OK\r
+ *         0 : failed\r
+ */\r
+int SSL_CTX_use_certificate(SSL_CTX *ctx, X509 *x);//loads the certificate x into ctx\r
+\r
+/*\r
+ * SSL_CTX_use_certificate_ASN1 - load the ASN1 certification into SSL context\r
+ *\r
+ * @param ctx - SSL context point\r
+ * @param len - certification length\r
+ * @param d   - data point\r
+ *\r
+ * @return\r
+ *         1 : OK\r
+ *         0 : failed\r
+ */\r
+int SSL_CTX_use_certificate_ASN1(SSL_CTX *ctx, int len, unsigned char *d);\r
+\r
+/*\r
+ * SSL_CTX_use_certificate_file - load the certification file into SSL context\r
+ *\r
+ * @param ctx  - SSL context point\r
+ * @param file - certification file name\r
+ * @param type - certification encoding type\r
+ *\r
+ * @return\r
+ *         1 : OK\r
+ *         0 : failed\r
+ */\r
+int SSL_CTX_use_certificate_file(SSL_CTX *ctx, const char *file, int type);\r
+\r
+/*\r
+ * SSL_CTX_use_certificate_chain_file - load the certification chain file into SSL context\r
+ *\r
+ * @param ctx  - SSL context point\r
+ * @param file - certification chain file name\r
+ *\r
+ * @return\r
+ *         1 : OK\r
+ *         0 : failed\r
+ */\r
+int SSL_CTX_use_certificate_chain_file(SSL_CTX *ctx, const char *file);\r
+\r
+\r
+/*\r
+ * SSL_CTX_use_certificate_ASN1 - load the ASN1 private key into SSL context\r
+ *\r
+ * @param ctx - SSL context point\r
+ * @param d   - data point\r
+ * @param len - private key length\r
+ *\r
+ * @return\r
+ *         1 : OK\r
+ *         0 : failed\r
+ */\r
+int SSL_CTX_use_PrivateKey_ASN1(int pk, SSL_CTX *ctx, unsigned char *d,  long len);//adds the private key of type pk stored at memory location d (length len) to ctx\r
+\r
+/*\r
+ * SSL_CTX_use_certificate_file - load the private key file into SSL context\r
+ *\r
+ * @param ctx  - SSL context point\r
+ * @param file - private key file name\r
+ * @param type - private key encoding type\r
+ *\r
+ * @return\r
+ *         1 : OK\r
+ *         0 : failed\r
+ */\r
+int SSL_CTX_use_PrivateKey_file(SSL_CTX *ctx, const char *file, int type);//adds the first private key found in file to ctx, The formatting type of the certificate must be specified from the known types SSL_FILETYPE_PEM, SSL_FILETYPE_ASN1.\r
+\r
+/*\r
+ * SSL_CTX_use_certificate - load the RSA private key into SSL context\r
+ *\r
+ * @param ctx - SSL context point\r
+ * @param x   - RSA private key point\r
+ *\r
+ * @return\r
+ *         1 : OK\r
+ *         0 : failed\r
+ */\r
+int SSL_CTX_use_RSAPrivateKey(SSL_CTX *ctx, RSA *rsa);\r
+\r
+/*\r
+ * SSL_CTX_use_certificate_ASN1 - load the RSA ASN1 private key into SSL context\r
+ *\r
+ * @param ctx - SSL context point\r
+ * @param d   - data point\r
+ * @param len - RSA private key length\r
+ *\r
+ * @return\r
+ *         1 : OK\r
+ *         0 : failed\r
+ */\r
+int SSL_CTX_use_RSAPrivateKey_ASN1(SSL_CTX *ctx, unsigned char *d, long len);\r
+\r
+/*\r
+ * SSL_CTX_use_certificate_file - load the RSA private key file into SSL context\r
+ *\r
+ * @param ctx  - SSL context point\r
+ * @param file - RSA private key file name\r
+ * @param type - private key encoding type\r
+ *\r
+ * @return\r
+ *         1 : OK\r
+ *         0 : failed\r
+ */\r
+int SSL_CTX_use_RSAPrivateKey_file(SSL_CTX *ctx, const char *file, int type);\r
+\r
+\r
+/*\r
+ * SSL_CTX_check_private_key - check if the private key and certification is matched\r
+ *\r
+ * @param ctx  - SSL context point\r
+ *\r
+ * @return\r
+ *         1 : OK\r
+ *         0 : failed\r
+ */\r
+int SSL_CTX_check_private_key(const SSL_CTX *ctx);\r
+\r
+/*\r
+ * SSL_CTX_use_serverinfo - set the SSL context server information\r
+ *\r
+ * @param ctx               - SSL context point\r
+ * @param serverinfo        - server information string\r
+ * @param serverinfo_length - server information length\r
+ *\r
+ * @return\r
+ *         1 : OK\r
+ *         0 : failed\r
+ */\r
+int SSL_CTX_use_serverinfo(SSL_CTX *ctx, const unsigned char *serverinfo, size_t serverinfo_length);\r
+\r
+/*\r
+ * SSL_CTX_use_serverinfo - load  the SSL context server infomation file into SSL context\r
+ *\r
+ * @param ctx  - SSL context point\r
+ * @param file - server information file\r
+ *\r
+ * @return\r
+ *         1 : OK\r
+ *         0 : failed\r
+ */\r
+int SSL_CTX_use_serverinfo_file(SSL_CTX *ctx, const char *file);\r
+\r
+/*\r
+ * SSL_select_next_proto - SSL select next function\r
+ *\r
+ * @param out        - point of output data point\r
+ * @param outlen     - output data length\r
+ * @param in         - input data\r
+ * @param inlen      - input data length\r
+ * @param client     - client data point\r
+ * @param client_len -client data length\r
+ *\r
+ * @return\r
+ *         OPENSSL_NPN_UNSUPPORTED : not support\r
+ *         OPENSSL_NPN_NEGOTIATED  : negotiated\r
+ *         OPENSSL_NPN_NO_OVERLAP  : no overlap\r
+ */\r
+int SSL_select_next_proto(unsigned char **out, unsigned char *outlen,\r
+                          const unsigned char *in, unsigned int inlen,\r
+                          const unsigned char *client, unsigned int client_len);\r
+\r
+/*\r
+ * SSL_CTX_add_extra_chain_cert - load the extra certification chain into the SSL context\r
+ *\r
+ * @param ctx  - SSL context point\r
+ * @param x509 - X509 certification\r
+ *\r
+ * @return\r
+ *         1 : OK\r
+ *         0 : failed\r
+ */\r
+long SSL_CTX_add_extra_chain_cert(SSL_CTX *ctx, X509 *);\r
+\r
+/*\r
+ * SSL_CTX_ctrl - control the SSL context\r
+ *\r
+ * @param ctx  - SSL context point\r
+ * @param cmd  - command\r
+ * @param larg - parameter length\r
+ * @param parg - parameter point\r
+ *\r
+ * @return\r
+ *         1 : OK\r
+ *         0 : failed\r
+ */\r
+long SSL_CTX_ctrl(SSL_CTX *ctx, int cmd, long larg, char *parg);\r
+\r
+/*\r
+ * SSL_CTX_get_ciphers - get the SSL context cipher\r
+ *\r
+ * @param ctx - SSL context point\r
+ *\r
+ * @return SSL context cipher\r
+ */\r
+STACK *SSL_CTX_get_ciphers(const SSL_CTX *ctx);\r
+\r
+/*\r
+ * SSL_CTX_get_ciphers - check if the SSL context can read as many as data\r
+ *\r
+ * @param ctx - SSL context point\r
+ *\r
+ * @return\r
+ *         1 : Yes\r
+ *         0 : No\r
+ */\r
+long SSL_CTX_get_default_read_ahead(SSL_CTX *ctx);\r
+\r
+/*\r
+ * SSL_CTX_get_ex_data - get the SSL context extra data\r
+ *\r
+ * @param ctx - SSL context point\r
+ * @param idx - index\r
+ *\r
+ * @return data point\r
+ */\r
+char *SSL_CTX_get_ex_data(const SSL_CTX *ctx, int idx);\r
+\r
+/*\r
+ * SSL_CTX_get_quiet_shutdown - get the SSL context quiet shutdown option\r
+ *\r
+ * @param ctx - SSL context point\r
+ *\r
+ * @return quiet shutdown option\r
+ */\r
+int SSL_CTX_get_quiet_shutdown(const SSL_CTX *ctx);\r
+\r
+/*\r
+ * SSL_CTX_get_quiet_shutdown - load the SSL context CA file\r
+ *\r
+ * @param ctx    - SSL context point\r
+ * @param CAfile - CA certification file\r
+ * @param CApath - CA certification file path\r
+ *\r
+ * @return\r
+ *         1 : OK\r
+ *         0 : failed\r
+ */\r
+int SSL_CTX_load_verify_locations(SSL_CTX *ctx, const char *CAfile, const char *CApath);\r
+\r
+/*\r
+ * SSL_CTX_up_ref - add SSL context reference count by '1'\r
+ *\r
+ * @param ctx - SSL context point\r
+ *\r
+ * @return\r
+ *         1 : OK\r
+ *         0 : failed\r
+ */\r
+int SSL_CTX_up_ref(SSL_CTX *ctx);\r
+\r
+/*\r
+ * SSL_CTX_set_app_data - set SSL context application private data\r
+ *\r
+ * @param ctx - SSL context point\r
+ * @param arg - private data\r
+ *\r
+ * @return\r
+ *         1 : OK\r
+ *         0 : failed\r
+ */\r
+int SSL_CTX_set_app_data(SSL_CTX *ctx, void *arg);\r
+\r
+/*\r
+ * SSL_CTX_set_client_cert_cb - set SSL context client certification callback function\r
+ *\r
+ * @param ctx - SSL context point\r
+ * @param cb  - callback function\r
+ *\r
+ * @return none\r
+ */\r
+void SSL_CTX_set_client_cert_cb(SSL_CTX *ctx, int (*cb)(SSL *ssl, X509 **x509, EVP_PKEY **pkey));\r
+\r
+/*\r
+ * SSL_CTX_set_default_read_ahead - set the SSL context if we can read as many as data\r
+ *\r
+ * @param ctx - SSL context point\r
+ * @param m   - enable the fuction\r
+ *\r
+ * @return none\r
+ */\r
+void SSL_CTX_set_default_read_ahead(SSL_CTX *ctx, int m);\r
+\r
+/*\r
+ * SSL_CTX_set_default_verify_paths - set SSL context default verifying path\r
+ *\r
+ * @param ctx - SSL context point\r
+ *\r
+ * @return\r
+ *         1 : OK\r
+ *         0 : failed\r
+ */\r
+int SSL_CTX_set_default_verify_paths(SSL_CTX *ctx);\r
+\r
+/*\r
+ * SSL_CTX_set_default_verify_paths - set SSL context default verifying directory\r
+ *\r
+ * @param ctx - SSL context point\r
+ *\r
+ * @return\r
+ *         1 : OK\r
+ *         0 : failed\r
+ */\r
+int SSL_CTX_set_default_verify_dir(SSL_CTX *ctx);\r
+\r
+/*\r
+ * SSL_CTX_set_default_verify_paths - set SSL context default verifying file\r
+ *\r
+ * @param ctx - SSL context point\r
+ *\r
+ * @return\r
+ *         1 : OK\r
+ *         0 : failed\r
+ */\r
+int SSL_CTX_set_default_verify_file(SSL_CTX *ctx);\r
+\r
+/*\r
+ * SSL_CTX_set_ex_data - set SSL context extra data\r
+ *\r
+ * @param ctx - SSL context point\r
+ * @param idx - data index\r
+ * @param arg - data point\r
+ *\r
+ * @return\r
+ *         1 : OK\r
+ *         0 : failed\r
+ */\r
+int SSL_CTX_set_ex_data(SSL_CTX *s, int idx, char *arg);\r
+\r
+/*\r
+ * SSL_CTX_clear_options - clear the SSL context option bit of "op"\r
+ *\r
+ * @param ctx - SSL context point\r
+ * @param op  - option\r
+ *\r
+ * @return SSL context option\r
+ */\r
+unsigned long SSL_CTX_clear_options(SSL_CTX *ctx, unsigned long op);\r
+\r
+/*\r
+ * SSL_CTX_clear_options - get the SSL context option\r
+ *\r
+ * @param ctx - SSL context point\r
+ * @param op  - option\r
+ *\r
+ * @return SSL context option\r
+ */\r
+unsigned long SSL_CTX_get_options(SSL_CTX *ctx);\r
+\r
+/*\r
+ * SSL_CTX_set_quiet_shutdown - set the SSL context quiet shutdown mode\r
+ *\r
+ * @param ctx  - SSL context point\r
+ * @param mode - mode\r
+ *\r
+ * @return none\r
+ */\r
+void SSL_CTX_set_quiet_shutdown(SSL_CTX *ctx, int mode);\r
+\r
+/*\r
+ * SSL_CTX_get0_certificate - get the SSL context X509 certification\r
+ *\r
+ * @param ctx - SSL context point\r
+ *\r
+ * @return X509 certification\r
+ */\r
+X509 *SSL_CTX_get0_certificate(const SSL_CTX *ctx);\r
+\r
+/*\r
+ * SSL_CTX_get0_certificate - get the SSL context private key\r
+ *\r
+ * @param ctx - SSL context point\r
+ *\r
+ * @return private key\r
+ */\r
+EVP_PKEY *SSL_CTX_get0_privatekey(const SSL_CTX *ctx);\r
+\r
+/*\r
+ * SSL_CTX_use_psk_identity_hint - set SSL context PSK identity hint\r
+ *\r
+ * @param ctx  - SSL context point\r
+ * @param hint - PSK identity hint\r
+ *\r
+ * @return\r
+ *         1 : OK\r
+ *         0 : failed\r
+ */\r
+int SSL_CTX_use_psk_identity_hint(SSL_CTX *ctx, const char *hint);\r
+\r
+/*\r
+ * SSL_CTX_set_psk_server_callback - set SSL context PSK server callback function\r
+ *\r
+ * @param ctx      - SSL context point\r
+ * @param callback - callback function\r
+ *\r
+ */\r
+void SSL_CTX_set_psk_server_callback(SSL_CTX *ctx,\r
+                                     unsigned int (*callback)(SSL *ssl,\r
+                                                              const char *identity,\r
+                                                              unsigned char *psk,\r
+                                                              int max_psk_len));\r
+/*\r
+ * SSL_alert_desc_string - get alert description string\r
+ *\r
+ * @param value - alert value\r
+ *\r
+ * @return alert description string\r
+ */\r
+const char *SSL_alert_desc_string(int value);\r
+\r
+/*\r
+ * SSL_alert_desc_string - get alert description long string\r
+ *\r
+ * @param value - alert value\r
+ *\r
+ * @return alert description long string\r
+ */\r
+const char *SSL_alert_desc_string_long(int value);\r
+\r
+/*\r
+ * SSL_alert_type_string - get alert type string\r
+ *\r
+ * @param value - alert value\r
+ *\r
+ * @return alert type string\r
+ */\r
+const char *SSL_alert_type_string(int value);\r
+\r
+/*\r
+ * SSL_alert_type_string_long - get alert type long string\r
+ *\r
+ * @param value - alert value\r
+ *\r
+ * @return alert type long string\r
+ */\r
+const char *SSL_alert_type_string_long(int value);\r
+\r
+/*\r
+ * SSL_get_SSL_CTX - get SSL context of the SSL\r
+ *\r
+ * @param ssl - SSL point\r
+ *\r
+ * @return SSL context\r
+ */\r
+SSL_CTX *SSL_get_SSL_CTX(const SSL *ssl);\r
+\r
+/*\r
+ * SSL_get_app_data - get SSL application data\r
+ *\r
+ * @param ssl - SSL point\r
+ *\r
+ * @return application data\r
+ */\r
+char *SSL_get_app_data(SSL *ssl);\r
+\r
+/*\r
+ * SSL_get_cipher_bits - get SSL cipher bits\r
+ *\r
+ * @param ssl - SSL point\r
+ * @param alg_bits - algorithm bits\r
+ *\r
+ * @return strength bits\r
+ */\r
+int SSL_get_cipher_bits(const SSL *ssl, int *alg_bits);\r
+\r
+/*\r
+ * SSL_get_cipher_name - get SSL cipher name\r
+ *\r
+ * @param ssl - SSL point\r
+ *\r
+ * @return SSL cipher name\r
+ */\r
+char *SSL_get_cipher_name(const SSL *ssl);\r
+\r
+/*\r
+ * SSL_get_cipher_version - get SSL cipher version\r
+ *\r
+ * @param ssl - SSL point\r
+ *\r
+ * @return SSL cipher version\r
+ */\r
+char *SSL_get_cipher_version(const SSL *ssl);\r
+\r
+/*\r
+ * SSL_get_ex_data - get SSL extra data\r
+ *\r
+ * @param ssl - SSL point\r
+ * @param idx - data index\r
+ *\r
+ * @return extra data\r
+ */\r
+char *SSL_get_ex_data(const SSL *ssl, int idx);\r
+\r
+/*\r
+ * SSL_get_ex_data_X509_STORE_CTX_idx - get index of the SSL extra data X509 storage context\r
+ *\r
+ * @param none\r
+ *\r
+ * @return data index\r
+ */\r
+int SSL_get_ex_data_X509_STORE_CTX_idx(void);\r
+\r
+/*\r
+ * SSL_get_peer_cert_chain - get peer certification chain\r
+ *\r
+ * @param ssl - SSL point\r
+ *\r
+ * @return certification chain\r
+ */\r
+STACK *SSL_get_peer_cert_chain(const SSL *ssl);\r
+\r
+/*\r
+ * SSL_get_peer_certificate - get peer certification\r
+ *\r
+ * @param ssl - SSL point\r
+ *\r
+ * @return certification\r
+ */\r
+X509 *SSL_get_peer_certificate(const SSL *ssl);\r
+\r
+/*\r
+ * SSL_get_quiet_shutdown - get SSL quiet shutdown mode\r
+ *\r
+ * @param ssl - SSL point\r
+ *\r
+ * @return quiet shutdown mode\r
+ */\r
+int SSL_get_quiet_shutdown(const SSL *ssl);\r
+\r
+/*\r
+ * SSL_get_rbio - get SSL read only IO handle\r
+ *\r
+ * @param ssl - SSL point\r
+ *\r
+ * @return IO handle\r
+ */\r
+BIO *SSL_get_rbio(const SSL *ssl);\r
+\r
+/*\r
+ * SSL_get_shared_ciphers - get SSL shared ciphers\r
+ *\r
+ * @param ssl - SSL point\r
+ * @param buf - buffer to store the ciphers\r
+ * @param len - buffer len\r
+ *\r
+ * @return shared ciphers or NULL if failed\r
+ */\r
+char *SSL_get_shared_ciphers(const SSL *ssl, char *buf, int len);\r
+\r
+/*\r
+ * SSL_get_shutdown - get SSL shutdown mode\r
+ *\r
+ * @param ssl - SSL point\r
+ *\r
+ * @return shutdown mode\r
+ */\r
+int SSL_get_shutdown(const SSL *ssl);\r
+\r
+/*\r
+ * SSL_get_time - get SSL session time\r
+ *\r
+ * @param ssl - SSL point\r
+ *\r
+ * @return session time\r
+ */\r
+long SSL_get_time(const SSL *ssl);\r
+\r
+/*\r
+ * SSL_get_timeout - get SSL session timeout time\r
+ *\r
+ * @param ssl - SSL point\r
+ *\r
+ * @return session timeout time\r
+ */\r
+long SSL_get_timeout(const SSL *ssl);\r
+\r
+/*\r
+ * SSL_get_verify_mode - get SSL verifying mode\r
+ *\r
+ * @param ssl - SSL point\r
+ *\r
+ * @return verifying mode\r
+ */\r
+int SSL_get_verify_mode(const SSL *ssl);\r
+\r
+/*\r
+ * SSL_get_wbio - get SSL write only IO handle\r
+ *\r
+ * @param ssl - SSL point\r
+ *\r
+ * @return IO handle\r
+ */\r
+BIO *SSL_get_wbio(const SSL *ssl);\r
+\r
+/*\r
+ * SSL_load_client_CA_file - load SSL client CA certification file\r
+ *\r
+ * @param file - file name\r
+ *\r
+ * @return certification loading object\r
+ */\r
+STACK *SSL_load_client_CA_file(const char *file);\r
+\r
+/*\r
+ * SSL_up_ref - add SSL reference by '1'\r
+ *\r
+ * @param ssl - SSL point\r
+ *\r
+ * @return\r
+ *         1 : OK\r
+ *         0 : failed\r
+ */\r
+int SSL_up_ref(SSL *ssl);\r
+\r
+/*\r
+ * SSL_peek - read and put data into buf, but not clear the SSL low-level storage\r
+ *\r
+ * @param ssl - SSL point\r
+ * @param buf - storage buffer point\r
+ * @param num - data bytes\r
+ *\r
+ * @return\r
+ *         > 0 : OK, and return read bytes\r
+ *         = 0 : connect is closed\r
+ *         < 0 : a error catch\r
+ */\r
+int SSL_peek(SSL *ssl, void *buf, int num);\r
+\r
+/*\r
+ * SSL_renegotiate - make SSL renegotiate\r
+ *\r
+ * @param ssl - SSL point\r
+ *\r
+ * @return\r
+ *         1 : OK\r
+ *         0 : failed\r
+ */\r
+int SSL_renegotiate(SSL *ssl);\r
+\r
+/*\r
+ * SSL_rstate_string - get the state string where SSL is reading\r
+ *\r
+ * @param ssl - SSL point\r
+ *\r
+ * @return state string\r
+ */\r
+const char *SSL_rstate_string(SSL *ssl);\r
+\r
+/*\r
+ * SSL_rstate_string_long - get the statement long string where SSL is reading\r
+ *\r
+ * @param ssl - SSL point\r
+ *\r
+ * @return statement long string\r
+ */\r
+const char *SSL_rstate_string_long(SSL *ssl);\r
+\r
+/*\r
+ * SSL_set_accept_state - set SSL accept statement\r
+ *\r
+ * @param ssl - SSL point\r
+ *\r
+ * @return none\r
+ */\r
+void SSL_set_accept_state(SSL *ssl);\r
+\r
+/*\r
+ * SSL_set_app_data - set SSL application data\r
+ *\r
+ * @param ssl - SSL point\r
+ * @param arg - SSL application data point\r
+ *\r
+ * @return none\r
+ */\r
+void SSL_set_app_data(SSL *ssl, char *arg);\r
+\r
+/*\r
+ * SSL_set_bio - set SSL BIO\r
+ *\r
+ * @param ssl  - SSL point\r
+ * @param rbio - read only IO\r
+ * @param wbio - write only IO\r
+ *\r
+ * @return none\r
+ */\r
+void SSL_set_bio(SSL *ssl, BIO *rbio, BIO *wbio);\r
+\r
+/*\r
+ * SSL_clear_options - clear SSL option\r
+ *\r
+ * @param ssl - SSL point\r
+ * @param op  - clear option\r
+ *\r
+ * @return SSL option\r
+ */\r
+unsigned long SSL_clear_options(SSL *ssl, unsigned long op);\r
+\r
+/*\r
+ * SSL_clear_options - get SSL option\r
+ *\r
+ * @param ssl - SSL point\r
+ *\r
+ * @return SSL option\r
+ */\r
+unsigned long SSL_get_options(SSL *ssl);\r
+\r
+/*\r
+ * SSL_clear_options - clear SSL option\r
+ *\r
+ * @param ssl - SSL point\r
+ * @param op  - setting option\r
+ *\r
+ * @return SSL option\r
+ */\r
+unsigned long SSL_set_options(SSL *ssl, unsigned long op);\r
+\r
+/*\r
+ * SSL_set_quiet_shutdown - set SSL quiet shutdown mode\r
+ *\r
+ * @param ssl  - SSL point\r
+ * @param mode - quiet shutdown mode\r
+ *\r
+ * @return none\r
+ */\r
+void SSL_set_quiet_shutdown(SSL *ssl, int mode);\r
+\r
+/*\r
+ * SSL_set_quiet_shutdown - set SSL shutdown mode\r
+ *\r
+ * @param ssl  - SSL point\r
+ * @param mode - shutdown mode\r
+ *\r
+ * @return none\r
+ */\r
+void SSL_set_shutdown(SSL *ssl, int mode);\r
+\r
+/*\r
+ * SSL_set_time - set SSL session time\r
+ *\r
+ * @param ssl - SSL point\r
+ * @param t   - session time\r
+ *\r
+ * @return session time\r
+ */\r
+void SSL_set_time(SSL *ssl, long t);\r
+\r
+/*\r
+ * SSL_set_time - set SSL session timeout time\r
+ *\r
+ * @param ssl - SSL point\r
+ * @param t   - session timeout time\r
+ *\r
+ * @return session timeout time\r
+ */\r
+void SSL_set_timeout(SSL *ssl, long t);\r
+\r
+/*\r
+ * SSL_state_string - get SSL statement string\r
+ *\r
+ * @param ssl - SSL point\r
+ *\r
+ * @return SSL statement string\r
+ */\r
+char *SSL_state_string(const SSL *ssl);\r
+\r
+/*\r
+ * SSL_state_string_long - get SSL statement long string\r
+ *\r
+ * @param ssl - SSL point\r
+ *\r
+ * @return SSL statement long string\r
+ */\r
+char *SSL_state_string_long(const SSL *ssl);\r
+\r
+/*\r
+ * SSL_total_renegotiations - get SSL renegotiation count\r
+ *\r
+ * @param ssl - SSL point\r
+ *\r
+ * @return renegotiation count\r
+ */\r
+long SSL_total_renegotiations(SSL *ssl);\r
+\r
+/*\r
+ * SSL_version - get SSL version\r
+ *\r
+ * @param ssl - SSL point\r
+ *\r
+ * @return SSL version\r
+ */\r
+int SSL_version(const SSL *ssl);\r
+\r
+/*\r
+ * SSL_use_psk_identity_hint - set SSL PSK identity hint\r
+ *\r
+ * @param ssl  - SSL point\r
+ * @param hint - identity hint\r
+ *\r
+ * @return\r
+ *         1 : oK\r
+ *         0 : failed\r
+ */\r
+int SSL_use_psk_identity_hint(SSL *ssl, const char *hint);\r
+\r
+/*\r
+ * SSL_get_psk_identity_hint - get SSL PSK identity hint\r
+ *\r
+ * @param ssl - SSL point\r
+ *\r
+ * @return identity hint\r
+ */\r
+const char *SSL_get_psk_identity_hint(SSL *ssl);\r
+\r
+/*\r
+ * SSL_get_psk_identity - get SSL PSK identity\r
+ *\r
+ * @param ssl - SSL point\r
+ *\r
+ * @return identity\r
+ */\r
+const char *SSL_get_psk_identity(SSL *ssl);\r
+\r
+#endif\r