⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tlsdefault.cpp

📁 Jabber code library, developed with c
💻 CPP
字号:
/* * Copyright (c) 2007-2008 by Jakob Schroeter <js@camaya.net> * This file is part of the gloox library. http://camaya.net/gloox * * This software is distributed under a license. The full license * agreement can be found in the file LICENSE in this distribution. * This software may not be copied, modified, sold or distributed * other than expressed in the named license agreement. * * This software is distributed without any warranty. */#include "tlsdefault.h"#include "tlshandler.h"#ifdef _WIN32# include "../config.h.win"#elif defined( _WIN32_WCE )# include "../config.h.win"#else# include "config.h"#endif#if defined( HAVE_OPENSSL )# define HAVE_TLS# include "tlsopenssl.h"#elif defined( HAVE_GNUTLS )# define HAVE_TLS# include "tlsgnutlsclient.h"# include "tlsgnutlsclientanon.h"# include "tlsgnutlsserveranon.h"#elif defined( HAVE_WINTLS )# define HAVE_TLS# include "tlsschannel.h"#endifnamespace gloox{  TLSDefault::TLSDefault( TLSHandler *th, const std::string server, Type type )    : TLSBase( th, server ), m_impl( 0 )  {    switch( type )    {      case VerifyingClient:#ifdef HAVE_GNUTLS        m_impl = new GnuTLSClient( th, server );#elif defined( HAVE_OPENSSL )        m_impl = new OpenSSL( th, server );#elif defined( HAVE_WINTLS )        m_impl = new SChannel( th, server );#endif        break;      case AnonymousClient:#ifdef HAVE_GNUTLS        m_impl = new GnuTLSClientAnon( th );#endif        break;      case AnonymousServer:#ifdef HAVE_GNUTLS        m_impl = new GnuTLSServerAnon( th );#endif        break;      case VerifyingServer:        break;      default:        break;    }  }  TLSDefault::~TLSDefault()  {    delete m_impl;  }  int TLSDefault::types()  {    int types = 0;#ifdef HAVE_GNUTLS    types |= VerifyingClient;    types |= AnonymousClient;    types |= AnonymousServer;#elif defined( HAVE_OPENSSL )    types |= VerifyingClient;#elif defined( HAVE_WINTLS )    types |= VerifyingClient;#endif    return types;  }  bool TLSDefault::encrypt( const std::string& data )  {    if( m_impl )      return m_impl->encrypt( data );    return false;  }  int TLSDefault::decrypt( const std::string& data )  {    if( m_impl )      return m_impl->decrypt( data );    return 0;  }  void TLSDefault::cleanup()  {    if( m_impl )      m_impl->cleanup();  }  bool TLSDefault::handshake()  {    if( m_impl )      return m_impl->handshake();    return false;  }  bool TLSDefault::isSecure() const  {    if( m_impl )      return m_impl->isSecure();    return false;  }  void TLSDefault::setCACerts( const StringList& cacerts )  {    if( m_impl )      m_impl->setCACerts( cacerts );  }  const CertInfo& TLSDefault::fetchTLSInfo() const  {    if( m_impl )      return m_impl->fetchTLSInfo();    return m_certInfo;  }  void TLSDefault::setClientCert( const std::string& clientKey, const std::string& clientCerts )  {    if( m_impl )      m_impl->setClientCert( clientKey, clientCerts );  }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -