gloox 1.0.27
tlsopensslclient.cpp
1/*
2 Copyright (c) 2005-2023 by Jakob Schröter <js@camaya.net>
3 This file is part of the gloox library. http://camaya.net/gloox
4
5 This software is distributed under a license. The full license
6 agreement can be found in the file LICENSE in this distribution.
7 This software may not be copied, modified, sold or distributed
8 other than expressed in the named license agreement.
9
10 This software is distributed without any warranty.
11*/
12
13
14
15#include "tlsopensslclient.h"
16
17#ifdef HAVE_OPENSSL
18
19namespace gloox
20{
21
22 OpenSSLClient::OpenSSLClient( TLSHandler* th, const std::string& server )
23 : OpenSSLBase( th, server )
24 {
25 }
26
30
31 bool OpenSSLClient::setType()
32 {
33 m_ctx = SSL_CTX_new( SSLv23_client_method() );
34 if( !m_ctx )
35 return false;
36
37 SSL_CTX_set_options( m_ctx, SSL_OP_NO_SSLv3 );
38
39 return true;
40 }
41
43 {
44 return true;
45 }
46
47 const std::string OpenSSLClient::channelBinding() const
48 {
49 unsigned char* buf[128];
50 long res = SSL_get_finished( m_ssl, buf, 128 );
51 return std::string( reinterpret_cast<char*>( buf ), res );
52 }
53
54 int OpenSSLClient::handshakeFunction()
55 {
56 return SSL_connect( m_ssl );
57 }
58
59}
60
61#endif // HAVE_OPENSSL
virtual const std::string channelBinding() const
virtual bool hasChannelBinding() const
OpenSSLClient(TLSHandler *th, const std::string &server)
An interface that allows for interacting with TLS implementations derived from TLSBase.
Definition tlshandler.h:35
The namespace for the gloox library.
Definition adhoc.cpp:28