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

📄 tlsschannel.h

📁 Jabber code library, developed with c
💻 H
字号:
/* * 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. */#ifndef TLSSCHANNEL_H__#define TLSSCHANNEL_H__#include "tlsbase.h"#ifdef _WIN32# include "../config.h.win"#elif defined( _WIN32_WCE )# include "../config.h.win"#else# include "config.h"#endif#ifdef HAVE_WINTLS#include <ctime>#define SECURITY_WIN32#include <windows.h>#include <security.h>#include <schnlsp.h>namespace gloox{  /**   * This class implements a TLS backend using SChannel.   *   * @author Jakob Schr鰐er <js@camaya.net>   * @since 0.9   */  class SChannel : public TLSBase  {    public:      /**       * Constructor.       * @param th The TLSHandler to handle TLS-related events.       * @param server The server to use in certificate verification.       */      SChannel( TLSHandler* th, const std::string& server );      /**       * Virtual destructor.       */      virtual ~SChannel();      // reimplemented from TLSBase      virtual bool encrypt( const std::string& data );      // reimplemented from TLSBase      virtual int decrypt( const std::string& data );      // reimplemented from TLSBase      virtual void cleanup();      // reimplemented from TLSBase      virtual bool handshake();      // reimplemented from TLSBase      virtual void setCACerts( const StringList& cacerts );      // reimplemented from TLSBase      virtual void setClientCert( const std::string& clientKey, const std::string& clientCerts );    private:      void handshakeStage( const std::string& data );      void setSizes();      int filetime2int( FILETIME t );      void validateCert();      void connectionInfos();      void certData();      void setCertinfos();      CredHandle m_credHandle;      CtxtHandle m_context;      SecPkgContext_StreamSizes m_sizes;      size_t m_header_max;      size_t m_message_max;      size_t m_trailer_max;      std::string m_buffer;      bool m_cleanedup;      // windows error outputs//       void print_error( int errorcode, const char* place = 0 );  };}#endif // HAVE_WINTLS#endif // TLSSCHANNEL_H__

⌨️ 快捷键说明

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