This file is indexed.

/usr/include/gloox/tlsdefault.h is in libgloox-dev 1.0.13-3build1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
/*
 * Copyright (c) 2007-2015 by Jakob Schröter <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 TLSDEFAULT_H__
#define TLSDEFAULT_H__

#include "tlsbase.h"

namespace gloox
{

  class TLSHandler;

  /**
   * @brief This is an abstraction of the various TLS backends.
   *
   * You should use an instance of this class should you whish to use TLS encryption.
   * TLS support for the main XMPP connection is managed by Client/ClientBase directly.
   *
   * @author Jakob Schröter <js@camaya.net>
   * @since 0.9
   */
  class GLOOX_API TLSDefault : public TLSBase
  {
    public:

      /**
       * Supported TLS types.
       */
      enum Type
      {
        VerifyingClient   =  1,     /**< TLS client, verifying, available for all
                                     * TLS implementations. */
        AnonymousClient   =  2,     /**< Anonymous TLS client (non-verifying), available with
                                     * GnuTLS. */
        VerifyingServer   =  4,     /**< TLS server, verifying, currently not available. */
        AnonymousServer   =  8      /**< Anonymous TLS server (non-verifying), available with
                                     * GnuTLS. */
      };

      /**
       * Constructs a new TLS wrapper.
       * @param th The TLSHandler to handle TLS-related events.
       * @param server The server to use in certificate verification.
       * @param type What you want to use this TLS object for.
       */
      TLSDefault( TLSHandler* th, const std::string server, Type type = VerifyingClient );

      /**
       * Virtual Destructor.
       */
      virtual ~TLSDefault();

      // reimplemented from TLSBase
      virtual bool init( const std::string& clientKey = EmptyString,
                         const std::string& clientCerts = EmptyString,
                         const StringList& cacerts = StringList() );

      // 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 bool isSecure() const;

      // reimplemented from TLSBase
      virtual bool hasChannelBinding() const;

      // reimplemented from TLSBase
      virtual const std::string channelBinding() const;

      // reimplemented from TLSBase
      virtual void setCACerts( const StringList& cacerts );

      // reimplemented from TLSBase
      virtual const CertInfo& fetchTLSInfo() const;

      // reimplemented from TLSBase
      virtual void setClientCert( const std::string& clientKey, const std::string& clientCerts );

      /**
       * Returns an ORed list of supported TLS types.
       * @return ORed TLSDefault::type members.
       */
      static int types();

    private:
      TLSBase* m_impl;

  };
}

#endif // TLSDEFAULT_H__