1e1051a39Sopenharmony_ci/* 2e1051a39Sopenharmony_ci * Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved. 3e1051a39Sopenharmony_ci * 4e1051a39Sopenharmony_ci * Licensed under the Apache License 2.0 (the "License"). You may not use 5e1051a39Sopenharmony_ci * this file except in compliance with the License. You can obtain a copy 6e1051a39Sopenharmony_ci * in the file LICENSE in the source distribution or at 7e1051a39Sopenharmony_ci * https://www.openssl.org/source/license.html 8e1051a39Sopenharmony_ci */ 9e1051a39Sopenharmony_ci 10e1051a39Sopenharmony_ci#include <stdio.h> 11e1051a39Sopenharmony_ci#include <openssl/macros.h> 12e1051a39Sopenharmony_ci#include <openssl/objects.h> 13e1051a39Sopenharmony_ci#include "ssl_local.h" 14e1051a39Sopenharmony_ci 15e1051a39Sopenharmony_ci/*- 16e1051a39Sopenharmony_ci * TLS/SSLv3 methods 17e1051a39Sopenharmony_ci */ 18e1051a39Sopenharmony_ci 19e1051a39Sopenharmony_ciIMPLEMENT_tls_meth_func(TLS_ANY_VERSION, 0, 0, 20e1051a39Sopenharmony_ci TLS_method, 21e1051a39Sopenharmony_ci ossl_statem_accept, 22e1051a39Sopenharmony_ci ossl_statem_connect, TLSv1_2_enc_data) 23e1051a39Sopenharmony_ciIMPLEMENT_tls_meth_func(TLS1_3_VERSION, 0, SSL_OP_NO_TLSv1_3, 24e1051a39Sopenharmony_ci tlsv1_3_method, 25e1051a39Sopenharmony_ci ossl_statem_accept, 26e1051a39Sopenharmony_ci ossl_statem_connect, TLSv1_3_enc_data) 27e1051a39Sopenharmony_ci#ifndef OPENSSL_NO_TLS1_2_METHOD 28e1051a39Sopenharmony_ciIMPLEMENT_tls_meth_func(TLS1_2_VERSION, 0, SSL_OP_NO_TLSv1_2, 29e1051a39Sopenharmony_ci tlsv1_2_method, 30e1051a39Sopenharmony_ci ossl_statem_accept, 31e1051a39Sopenharmony_ci ossl_statem_connect, TLSv1_2_enc_data) 32e1051a39Sopenharmony_ci#endif 33e1051a39Sopenharmony_ci#ifndef OPENSSL_NO_TLS1_1_METHOD 34e1051a39Sopenharmony_ciIMPLEMENT_tls_meth_func(TLS1_1_VERSION, SSL_METHOD_NO_SUITEB, SSL_OP_NO_TLSv1_1, 35e1051a39Sopenharmony_ci tlsv1_1_method, 36e1051a39Sopenharmony_ci ossl_statem_accept, 37e1051a39Sopenharmony_ci ossl_statem_connect, TLSv1_1_enc_data) 38e1051a39Sopenharmony_ci#endif 39e1051a39Sopenharmony_ci#ifndef OPENSSL_NO_TLS1_METHOD 40e1051a39Sopenharmony_ciIMPLEMENT_tls_meth_func(TLS1_VERSION, SSL_METHOD_NO_SUITEB, SSL_OP_NO_TLSv1, 41e1051a39Sopenharmony_ci tlsv1_method, 42e1051a39Sopenharmony_ci ossl_statem_accept, ossl_statem_connect, TLSv1_enc_data) 43e1051a39Sopenharmony_ci#endif 44e1051a39Sopenharmony_ci#ifndef OPENSSL_NO_SSL3_METHOD 45e1051a39Sopenharmony_ciIMPLEMENT_ssl3_meth_func(sslv3_method, ossl_statem_accept, ossl_statem_connect) 46e1051a39Sopenharmony_ci#endif 47e1051a39Sopenharmony_ci/*- 48e1051a39Sopenharmony_ci * TLS/SSLv3 server methods 49e1051a39Sopenharmony_ci */ 50e1051a39Sopenharmony_ciIMPLEMENT_tls_meth_func(TLS_ANY_VERSION, 0, 0, 51e1051a39Sopenharmony_ci TLS_server_method, 52e1051a39Sopenharmony_ci ossl_statem_accept, 53e1051a39Sopenharmony_ci ssl_undefined_function, TLSv1_2_enc_data) 54e1051a39Sopenharmony_ciIMPLEMENT_tls_meth_func(TLS1_3_VERSION, 0, SSL_OP_NO_TLSv1_3, 55e1051a39Sopenharmony_ci tlsv1_3_server_method, 56e1051a39Sopenharmony_ci ossl_statem_accept, 57e1051a39Sopenharmony_ci ssl_undefined_function, TLSv1_3_enc_data) 58e1051a39Sopenharmony_ci#ifndef OPENSSL_NO_TLS1_2_METHOD 59e1051a39Sopenharmony_ciIMPLEMENT_tls_meth_func(TLS1_2_VERSION, 0, SSL_OP_NO_TLSv1_2, 60e1051a39Sopenharmony_ci tlsv1_2_server_method, 61e1051a39Sopenharmony_ci ossl_statem_accept, 62e1051a39Sopenharmony_ci ssl_undefined_function, TLSv1_2_enc_data) 63e1051a39Sopenharmony_ci#endif 64e1051a39Sopenharmony_ci#ifndef OPENSSL_NO_TLS1_1_METHOD 65e1051a39Sopenharmony_ciIMPLEMENT_tls_meth_func(TLS1_1_VERSION, SSL_METHOD_NO_SUITEB, SSL_OP_NO_TLSv1_1, 66e1051a39Sopenharmony_ci tlsv1_1_server_method, 67e1051a39Sopenharmony_ci ossl_statem_accept, 68e1051a39Sopenharmony_ci ssl_undefined_function, TLSv1_1_enc_data) 69e1051a39Sopenharmony_ci#endif 70e1051a39Sopenharmony_ci#ifndef OPENSSL_NO_TLS1_METHOD 71e1051a39Sopenharmony_ciIMPLEMENT_tls_meth_func(TLS1_VERSION, SSL_METHOD_NO_SUITEB, SSL_OP_NO_TLSv1, 72e1051a39Sopenharmony_ci tlsv1_server_method, 73e1051a39Sopenharmony_ci ossl_statem_accept, 74e1051a39Sopenharmony_ci ssl_undefined_function, TLSv1_enc_data) 75e1051a39Sopenharmony_ci#endif 76e1051a39Sopenharmony_ci#ifndef OPENSSL_NO_SSL3_METHOD 77e1051a39Sopenharmony_ciIMPLEMENT_ssl3_meth_func(sslv3_server_method, 78e1051a39Sopenharmony_ci ossl_statem_accept, ssl_undefined_function) 79e1051a39Sopenharmony_ci#endif 80e1051a39Sopenharmony_ci/*- 81e1051a39Sopenharmony_ci * TLS/SSLv3 client methods 82e1051a39Sopenharmony_ci */ 83e1051a39Sopenharmony_ciIMPLEMENT_tls_meth_func(TLS_ANY_VERSION, 0, 0, 84e1051a39Sopenharmony_ci TLS_client_method, 85e1051a39Sopenharmony_ci ssl_undefined_function, 86e1051a39Sopenharmony_ci ossl_statem_connect, TLSv1_2_enc_data) 87e1051a39Sopenharmony_ciIMPLEMENT_tls_meth_func(TLS1_3_VERSION, 0, SSL_OP_NO_TLSv1_3, 88e1051a39Sopenharmony_ci tlsv1_3_client_method, 89e1051a39Sopenharmony_ci ssl_undefined_function, 90e1051a39Sopenharmony_ci ossl_statem_connect, TLSv1_3_enc_data) 91e1051a39Sopenharmony_ci#ifndef OPENSSL_NO_TLS1_2_METHOD 92e1051a39Sopenharmony_ciIMPLEMENT_tls_meth_func(TLS1_2_VERSION, 0, SSL_OP_NO_TLSv1_2, 93e1051a39Sopenharmony_ci tlsv1_2_client_method, 94e1051a39Sopenharmony_ci ssl_undefined_function, 95e1051a39Sopenharmony_ci ossl_statem_connect, TLSv1_2_enc_data) 96e1051a39Sopenharmony_ci#endif 97e1051a39Sopenharmony_ci#ifndef OPENSSL_NO_TLS1_1_METHOD 98e1051a39Sopenharmony_ciIMPLEMENT_tls_meth_func(TLS1_1_VERSION, SSL_METHOD_NO_SUITEB, SSL_OP_NO_TLSv1_1, 99e1051a39Sopenharmony_ci tlsv1_1_client_method, 100e1051a39Sopenharmony_ci ssl_undefined_function, 101e1051a39Sopenharmony_ci ossl_statem_connect, TLSv1_1_enc_data) 102e1051a39Sopenharmony_ci#endif 103e1051a39Sopenharmony_ci#ifndef OPENSSL_NO_TLS1_METHOD 104e1051a39Sopenharmony_ciIMPLEMENT_tls_meth_func(TLS1_VERSION, SSL_METHOD_NO_SUITEB, SSL_OP_NO_TLSv1, 105e1051a39Sopenharmony_ci tlsv1_client_method, 106e1051a39Sopenharmony_ci ssl_undefined_function, 107e1051a39Sopenharmony_ci ossl_statem_connect, TLSv1_enc_data) 108e1051a39Sopenharmony_ci#endif 109e1051a39Sopenharmony_ci#ifndef OPENSSL_NO_SSL3_METHOD 110e1051a39Sopenharmony_ciIMPLEMENT_ssl3_meth_func(sslv3_client_method, 111e1051a39Sopenharmony_ci ssl_undefined_function, ossl_statem_connect) 112e1051a39Sopenharmony_ci#endif 113e1051a39Sopenharmony_ci/*- 114e1051a39Sopenharmony_ci * DTLS methods 115e1051a39Sopenharmony_ci */ 116e1051a39Sopenharmony_ci#ifndef OPENSSL_NO_DTLS1_METHOD 117e1051a39Sopenharmony_ciIMPLEMENT_dtls1_meth_func(DTLS1_VERSION, SSL_METHOD_NO_SUITEB, SSL_OP_NO_DTLSv1, 118e1051a39Sopenharmony_ci dtlsv1_method, 119e1051a39Sopenharmony_ci ossl_statem_accept, 120e1051a39Sopenharmony_ci ossl_statem_connect, DTLSv1_enc_data) 121e1051a39Sopenharmony_ci#endif 122e1051a39Sopenharmony_ci#ifndef OPENSSL_NO_DTLS1_2_METHOD 123e1051a39Sopenharmony_ciIMPLEMENT_dtls1_meth_func(DTLS1_2_VERSION, 0, SSL_OP_NO_DTLSv1_2, 124e1051a39Sopenharmony_ci dtlsv1_2_method, 125e1051a39Sopenharmony_ci ossl_statem_accept, 126e1051a39Sopenharmony_ci ossl_statem_connect, DTLSv1_2_enc_data) 127e1051a39Sopenharmony_ci#endif 128e1051a39Sopenharmony_ciIMPLEMENT_dtls1_meth_func(DTLS_ANY_VERSION, 0, 0, 129e1051a39Sopenharmony_ci DTLS_method, 130e1051a39Sopenharmony_ci ossl_statem_accept, 131e1051a39Sopenharmony_ci ossl_statem_connect, DTLSv1_2_enc_data) 132e1051a39Sopenharmony_ci 133e1051a39Sopenharmony_ci/*- 134e1051a39Sopenharmony_ci * DTLS server methods 135e1051a39Sopenharmony_ci */ 136e1051a39Sopenharmony_ci#ifndef OPENSSL_NO_DTLS1_METHOD 137e1051a39Sopenharmony_ciIMPLEMENT_dtls1_meth_func(DTLS1_VERSION, SSL_METHOD_NO_SUITEB, SSL_OP_NO_DTLSv1, 138e1051a39Sopenharmony_ci dtlsv1_server_method, 139e1051a39Sopenharmony_ci ossl_statem_accept, 140e1051a39Sopenharmony_ci ssl_undefined_function, DTLSv1_enc_data) 141e1051a39Sopenharmony_ci#endif 142e1051a39Sopenharmony_ci#ifndef OPENSSL_NO_DTLS1_2_METHOD 143e1051a39Sopenharmony_ciIMPLEMENT_dtls1_meth_func(DTLS1_2_VERSION, 0, SSL_OP_NO_DTLSv1_2, 144e1051a39Sopenharmony_ci dtlsv1_2_server_method, 145e1051a39Sopenharmony_ci ossl_statem_accept, 146e1051a39Sopenharmony_ci ssl_undefined_function, DTLSv1_2_enc_data) 147e1051a39Sopenharmony_ci#endif 148e1051a39Sopenharmony_ciIMPLEMENT_dtls1_meth_func(DTLS_ANY_VERSION, 0, 0, 149e1051a39Sopenharmony_ci DTLS_server_method, 150e1051a39Sopenharmony_ci ossl_statem_accept, 151e1051a39Sopenharmony_ci ssl_undefined_function, DTLSv1_2_enc_data) 152e1051a39Sopenharmony_ci 153e1051a39Sopenharmony_ci/*- 154e1051a39Sopenharmony_ci * DTLS client methods 155e1051a39Sopenharmony_ci */ 156e1051a39Sopenharmony_ci#ifndef OPENSSL_NO_DTLS1_METHOD 157e1051a39Sopenharmony_ciIMPLEMENT_dtls1_meth_func(DTLS1_VERSION, SSL_METHOD_NO_SUITEB, SSL_OP_NO_DTLSv1, 158e1051a39Sopenharmony_ci dtlsv1_client_method, 159e1051a39Sopenharmony_ci ssl_undefined_function, 160e1051a39Sopenharmony_ci ossl_statem_connect, DTLSv1_enc_data) 161e1051a39Sopenharmony_ciIMPLEMENT_dtls1_meth_func(DTLS1_BAD_VER, SSL_METHOD_NO_SUITEB, SSL_OP_NO_DTLSv1, 162e1051a39Sopenharmony_ci dtls_bad_ver_client_method, 163e1051a39Sopenharmony_ci ssl_undefined_function, 164e1051a39Sopenharmony_ci ossl_statem_connect, DTLSv1_enc_data) 165e1051a39Sopenharmony_ci#endif 166e1051a39Sopenharmony_ci#ifndef OPENSSL_NO_DTLS1_2_METHOD 167e1051a39Sopenharmony_ciIMPLEMENT_dtls1_meth_func(DTLS1_2_VERSION, 0, SSL_OP_NO_DTLSv1_2, 168e1051a39Sopenharmony_ci dtlsv1_2_client_method, 169e1051a39Sopenharmony_ci ssl_undefined_function, 170e1051a39Sopenharmony_ci ossl_statem_connect, DTLSv1_2_enc_data) 171e1051a39Sopenharmony_ci#endif 172e1051a39Sopenharmony_ciIMPLEMENT_dtls1_meth_func(DTLS_ANY_VERSION, 0, 0, 173e1051a39Sopenharmony_ci DTLS_client_method, 174e1051a39Sopenharmony_ci ssl_undefined_function, 175e1051a39Sopenharmony_ci ossl_statem_connect, DTLSv1_2_enc_data) 176e1051a39Sopenharmony_ci#ifndef OPENSSL_NO_DEPRECATED_1_1_0 177e1051a39Sopenharmony_ci# ifndef OPENSSL_NO_TLS1_2_METHOD 178e1051a39Sopenharmony_ciconst SSL_METHOD *TLSv1_2_method(void) 179e1051a39Sopenharmony_ci{ 180e1051a39Sopenharmony_ci return tlsv1_2_method(); 181e1051a39Sopenharmony_ci} 182e1051a39Sopenharmony_ci 183e1051a39Sopenharmony_ciconst SSL_METHOD *TLSv1_2_server_method(void) 184e1051a39Sopenharmony_ci{ 185e1051a39Sopenharmony_ci return tlsv1_2_server_method(); 186e1051a39Sopenharmony_ci} 187e1051a39Sopenharmony_ci 188e1051a39Sopenharmony_ciconst SSL_METHOD *TLSv1_2_client_method(void) 189e1051a39Sopenharmony_ci{ 190e1051a39Sopenharmony_ci return tlsv1_2_client_method(); 191e1051a39Sopenharmony_ci} 192e1051a39Sopenharmony_ci# endif 193e1051a39Sopenharmony_ci 194e1051a39Sopenharmony_ci# ifndef OPENSSL_NO_TLS1_1_METHOD 195e1051a39Sopenharmony_ciconst SSL_METHOD *TLSv1_1_method(void) 196e1051a39Sopenharmony_ci{ 197e1051a39Sopenharmony_ci return tlsv1_1_method(); 198e1051a39Sopenharmony_ci} 199e1051a39Sopenharmony_ci 200e1051a39Sopenharmony_ciconst SSL_METHOD *TLSv1_1_server_method(void) 201e1051a39Sopenharmony_ci{ 202e1051a39Sopenharmony_ci return tlsv1_1_server_method(); 203e1051a39Sopenharmony_ci} 204e1051a39Sopenharmony_ci 205e1051a39Sopenharmony_ciconst SSL_METHOD *TLSv1_1_client_method(void) 206e1051a39Sopenharmony_ci{ 207e1051a39Sopenharmony_ci return tlsv1_1_client_method(); 208e1051a39Sopenharmony_ci} 209e1051a39Sopenharmony_ci# endif 210e1051a39Sopenharmony_ci 211e1051a39Sopenharmony_ci# ifndef OPENSSL_NO_TLS1_METHOD 212e1051a39Sopenharmony_ciconst SSL_METHOD *TLSv1_method(void) 213e1051a39Sopenharmony_ci{ 214e1051a39Sopenharmony_ci return tlsv1_method(); 215e1051a39Sopenharmony_ci} 216e1051a39Sopenharmony_ci 217e1051a39Sopenharmony_ciconst SSL_METHOD *TLSv1_server_method(void) 218e1051a39Sopenharmony_ci{ 219e1051a39Sopenharmony_ci return tlsv1_server_method(); 220e1051a39Sopenharmony_ci} 221e1051a39Sopenharmony_ci 222e1051a39Sopenharmony_ciconst SSL_METHOD *TLSv1_client_method(void) 223e1051a39Sopenharmony_ci{ 224e1051a39Sopenharmony_ci return tlsv1_client_method(); 225e1051a39Sopenharmony_ci} 226e1051a39Sopenharmony_ci# endif 227e1051a39Sopenharmony_ci 228e1051a39Sopenharmony_ci# ifndef OPENSSL_NO_SSL3_METHOD 229e1051a39Sopenharmony_ciconst SSL_METHOD *SSLv3_method(void) 230e1051a39Sopenharmony_ci{ 231e1051a39Sopenharmony_ci return sslv3_method(); 232e1051a39Sopenharmony_ci} 233e1051a39Sopenharmony_ci 234e1051a39Sopenharmony_ciconst SSL_METHOD *SSLv3_server_method(void) 235e1051a39Sopenharmony_ci{ 236e1051a39Sopenharmony_ci return sslv3_server_method(); 237e1051a39Sopenharmony_ci} 238e1051a39Sopenharmony_ci 239e1051a39Sopenharmony_ciconst SSL_METHOD *SSLv3_client_method(void) 240e1051a39Sopenharmony_ci{ 241e1051a39Sopenharmony_ci return sslv3_client_method(); 242e1051a39Sopenharmony_ci} 243e1051a39Sopenharmony_ci# endif 244e1051a39Sopenharmony_ci 245e1051a39Sopenharmony_ci# ifndef OPENSSL_NO_DTLS1_2_METHOD 246e1051a39Sopenharmony_ciconst SSL_METHOD *DTLSv1_2_method(void) 247e1051a39Sopenharmony_ci{ 248e1051a39Sopenharmony_ci return dtlsv1_2_method(); 249e1051a39Sopenharmony_ci} 250e1051a39Sopenharmony_ci 251e1051a39Sopenharmony_ciconst SSL_METHOD *DTLSv1_2_server_method(void) 252e1051a39Sopenharmony_ci{ 253e1051a39Sopenharmony_ci return dtlsv1_2_server_method(); 254e1051a39Sopenharmony_ci} 255e1051a39Sopenharmony_ci 256e1051a39Sopenharmony_ciconst SSL_METHOD *DTLSv1_2_client_method(void) 257e1051a39Sopenharmony_ci{ 258e1051a39Sopenharmony_ci return dtlsv1_2_client_method(); 259e1051a39Sopenharmony_ci} 260e1051a39Sopenharmony_ci# endif 261e1051a39Sopenharmony_ci 262e1051a39Sopenharmony_ci# ifndef OPENSSL_NO_DTLS1_METHOD 263e1051a39Sopenharmony_ciconst SSL_METHOD *DTLSv1_method(void) 264e1051a39Sopenharmony_ci{ 265e1051a39Sopenharmony_ci return dtlsv1_method(); 266e1051a39Sopenharmony_ci} 267e1051a39Sopenharmony_ci 268e1051a39Sopenharmony_ciconst SSL_METHOD *DTLSv1_server_method(void) 269e1051a39Sopenharmony_ci{ 270e1051a39Sopenharmony_ci return dtlsv1_server_method(); 271e1051a39Sopenharmony_ci} 272e1051a39Sopenharmony_ci 273e1051a39Sopenharmony_ciconst SSL_METHOD *DTLSv1_client_method(void) 274e1051a39Sopenharmony_ci{ 275e1051a39Sopenharmony_ci return dtlsv1_client_method(); 276e1051a39Sopenharmony_ci} 277e1051a39Sopenharmony_ci# endif 278e1051a39Sopenharmony_ci 279e1051a39Sopenharmony_ci#endif 280