+#include <openssl/buffer.h>
+#include <openssl/rand.h>
+#include <openssl/objects.h>
+#include <openssl/evp.h>
+
+static const SSL_METHOD *tls1_get_client_method(int ver);
+static const SSL_METHOD *tls1_get_client_method(int ver)
+{
+ if (ver == TLS_ANY_VERSION)
+ return TLS_client_method();
+ if (ver == TLS1_2_VERSION)
+ return TLSv1_2_client_method();
+ if (ver == TLS1_1_VERSION)
+ return TLSv1_1_client_method();
+ if (ver == TLS1_VERSION)
+ return TLSv1_client_method();
+#ifndef OPENSSL_NO_SSL3
+ if (ver == SSL3_VERSION)
+ return (SSLv3_client_method());
+#endif
+ return NULL;
+}
+
+IMPLEMENT_tls_meth_func(TLS_ANY_VERSION, TLS_client_method,
+ ssl_undefined_function,
+ ssl3_connect,
+ tls1_get_client_method, TLSv1_2_enc_data)