1d4afb5ceSopenharmony_ci// Copyright 2015-2016 Espressif Systems (Shanghai) PTE LTD 2d4afb5ceSopenharmony_ci// 3d4afb5ceSopenharmony_ci// Licensed under the Apache License, Version 2.0 (the "License"); 4d4afb5ceSopenharmony_ci// you may not use this file except in compliance with the License. 5d4afb5ceSopenharmony_ci// You may obtain a copy of the License at 6d4afb5ceSopenharmony_ci 7d4afb5ceSopenharmony_ci// http://www.apache.org/licenses/LICENSE-2.0 8d4afb5ceSopenharmony_ci// 9d4afb5ceSopenharmony_ci// Unless required by applicable law or agreed to in writing, software 10d4afb5ceSopenharmony_ci// distributed under the License is distributed on an "AS IS" BASIS, 11d4afb5ceSopenharmony_ci// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12d4afb5ceSopenharmony_ci// See the License for the specific language governing permissions and 13d4afb5ceSopenharmony_ci// limitations under the License. 14d4afb5ceSopenharmony_ci 15d4afb5ceSopenharmony_ci#include "private-lib-core.h" 16d4afb5ceSopenharmony_ci 17d4afb5ceSopenharmony_ci#include "ssl_methods.h" 18d4afb5ceSopenharmony_ci#include "ssl_pm.h" 19d4afb5ceSopenharmony_ci 20d4afb5ceSopenharmony_ci/** 21d4afb5ceSopenharmony_ci * TLS method function collection 22d4afb5ceSopenharmony_ci */ 23d4afb5ceSopenharmony_ciIMPLEMENT_TLS_METHOD_FUNC(TLS_method_func, 24d4afb5ceSopenharmony_ci ssl_pm_new, ssl_pm_free, 25d4afb5ceSopenharmony_ci ssl_pm_handshake, ssl_pm_shutdown, ssl_pm_clear, 26d4afb5ceSopenharmony_ci ssl_pm_read, ssl_pm_send, ssl_pm_pending, 27d4afb5ceSopenharmony_ci ssl_pm_set_fd, ssl_pm_get_fd, 28d4afb5ceSopenharmony_ci ssl_pm_set_bufflen, 29d4afb5ceSopenharmony_ci ssl_pm_get_verify_result, 30d4afb5ceSopenharmony_ci ssl_pm_get_state); 31d4afb5ceSopenharmony_ci 32d4afb5ceSopenharmony_ci/** 33d4afb5ceSopenharmony_ci * TLS or SSL client method collection 34d4afb5ceSopenharmony_ci */ 35d4afb5ceSopenharmony_ciIMPLEMENT_TLS_METHOD(TLS_ANY_VERSION, 0, TLS_method_func, TLS_client_method); 36d4afb5ceSopenharmony_ci 37d4afb5ceSopenharmony_ciIMPLEMENT_TLS_METHOD(TLS1_2_VERSION, 0, TLS_method_func, TLSv1_2_client_method); 38d4afb5ceSopenharmony_ci 39d4afb5ceSopenharmony_ci#if 0 40d4afb5ceSopenharmony_ciIMPLEMENT_TLS_METHOD(TLS1_1_VERSION, 0, TLS_method_func, TLSv1_1_client_method); 41d4afb5ceSopenharmony_ci 42d4afb5ceSopenharmony_ciIMPLEMENT_TLS_METHOD(TLS1_VERSION, 0, TLS_method_func, TLSv1_client_method); 43d4afb5ceSopenharmony_ci 44d4afb5ceSopenharmony_ciIMPLEMENT_SSL_METHOD(SSL3_VERSION, 0, TLS_method_func, SSLv3_client_method); 45d4afb5ceSopenharmony_ci#endif 46d4afb5ceSopenharmony_ci 47d4afb5ceSopenharmony_ci/** 48d4afb5ceSopenharmony_ci * TLS or SSL server method collection 49d4afb5ceSopenharmony_ci */ 50d4afb5ceSopenharmony_ciIMPLEMENT_TLS_METHOD(TLS_ANY_VERSION, 1, TLS_method_func, TLS_server_method); 51d4afb5ceSopenharmony_ci 52d4afb5ceSopenharmony_ciIMPLEMENT_TLS_METHOD(TLS1_2_VERSION, 1, TLS_method_func, TLSv1_2_server_method); 53d4afb5ceSopenharmony_ci 54d4afb5ceSopenharmony_ci#if 0 55d4afb5ceSopenharmony_ciIMPLEMENT_TLS_METHOD(TLS1_1_VERSION, 1, TLS_method_func, TLSv1_1_server_method); 56d4afb5ceSopenharmony_ci 57d4afb5ceSopenharmony_ciIMPLEMENT_TLS_METHOD(TLS1_VERSION, 0, TLS_method_func, TLSv1_server_method); 58d4afb5ceSopenharmony_ci 59d4afb5ceSopenharmony_ciIMPLEMENT_SSL_METHOD(SSL3_VERSION, 1, TLS_method_func, SSLv3_server_method); 60d4afb5ceSopenharmony_ci#endif 61d4afb5ceSopenharmony_ci 62d4afb5ceSopenharmony_ci/** 63d4afb5ceSopenharmony_ci * TLS or SSL method collection 64d4afb5ceSopenharmony_ci */ 65d4afb5ceSopenharmony_ciIMPLEMENT_TLS_METHOD(TLS_ANY_VERSION, -1, TLS_method_func, TLS_method); 66d4afb5ceSopenharmony_ci 67d4afb5ceSopenharmony_ciIMPLEMENT_SSL_METHOD(TLS1_2_VERSION, -1, TLS_method_func, TLSv1_2_method); 68d4afb5ceSopenharmony_ci 69d4afb5ceSopenharmony_ci#if 0 70d4afb5ceSopenharmony_ciIMPLEMENT_SSL_METHOD(TLS1_1_VERSION, -1, TLS_method_func, TLSv1_1_method); 71d4afb5ceSopenharmony_ci 72d4afb5ceSopenharmony_ciIMPLEMENT_SSL_METHOD(TLS1_VERSION, -1, TLS_method_func, TLSv1_method); 73d4afb5ceSopenharmony_ci 74d4afb5ceSopenharmony_ciIMPLEMENT_SSL_METHOD(SSL3_VERSION, -1, TLS_method_func, SSLv3_method); 75d4afb5ceSopenharmony_ci#endif 76d4afb5ceSopenharmony_ci 77d4afb5ceSopenharmony_ci/** 78d4afb5ceSopenharmony_ci * @brief get X509 object method 79d4afb5ceSopenharmony_ci */ 80d4afb5ceSopenharmony_ciIMPLEMENT_X509_METHOD(X509_method, 81d4afb5ceSopenharmony_ci x509_pm_new, x509_pm_free, 82d4afb5ceSopenharmony_ci x509_pm_load, x509_pm_show_info); 83d4afb5ceSopenharmony_ci 84d4afb5ceSopenharmony_ci/** 85d4afb5ceSopenharmony_ci * @brief get private key object method 86d4afb5ceSopenharmony_ci */ 87d4afb5ceSopenharmony_ciIMPLEMENT_PKEY_METHOD(EVP_PKEY_method, 88d4afb5ceSopenharmony_ci pkey_pm_new, pkey_pm_free, 89d4afb5ceSopenharmony_ci pkey_pm_load); 90