This file is indexed.

/usr/include/libktorrent/dht/key.h is in libktorrent-dev 1.3.1-5.

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
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
/***************************************************************************
 *   Copyright (C) 2005 by Joris Guisson                                   *
 *   joris.guisson@gmail.com                                               *
 *                                                                         *
 *   This program is free software; you can redistribute it and/or modify  *
 *   it under the terms of the GNU General Public License as published by  *
 *   the Free Software Foundation; either version 2 of the License, or     *
 *   (at your option) any later version.                                   *
 *                                                                         *
 *   This program is distributed in the hope that it will be useful,       *
 *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
 *   GNU General Public License for more details.                          *
 *                                                                         *
 *   You should have received a copy of the GNU General Public License     *
 *   along with this program; if not, write to the                         *
 *   Free Software Foundation, Inc.,                                       *
 *   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.             *
 ***************************************************************************/
#ifndef DHTKEY_H
#define DHTKEY_H

#include <QByteArray>
#include <util/sha1hash.h>
#include <ktorrent_export.h>


namespace dht
{

	/**
	 * @author Joris Guisson
	 * @brief Key in the distributed hash table
	 *
	 * Key's in the distributed hash table are just SHA-1 hashes.
	 * Key provides all necesarry operators to be used as a value.
	 */
	class KTORRENT_EXPORT Key : public bt::SHA1Hash
	{
	public:
		/**
		 * Constructor, sets key to 0.
		 */
		Key();

		/**
		 * Copy constructor. Seeing that Key doesn't add any data
		 * we just pass a SHA1Hash, Key's are automatically covered by this
		 * @param k Hash to copy
		 */
		Key(const bt::SHA1Hash & k);

		/**
		 * Make a key out of a bytearray
		 * @param ba The QByteArray
		 */
		Key(const QByteArray & ba);

		/**
		 * Make a key out of a 20 byte array.
		 * @param d The array
		 */
		Key(const bt::Uint8* d);

		/// Destructor.
		virtual ~Key();

		/**
		 * Create a random key.
		 * @return A random Key
		 */
		static Key random();
		
		/// Get the minimum key (all zeros)
		static Key min();
		
		/// Get the maximum key (all FF)
		static Key max();

		/**
		 * Equality operator.
		 * @param other The key to compare
		 * @return true if this key is equal to other
		 */
		bool operator == (const Key & other) const;

		/**
		 * Inequality operator.
		 * @param other The key to compare
		 * @return true if this key is not equal to other
		 */
		bool operator != (const Key & other) const;

		/**
		 * Smaller then operator.
		 * @param other The key to compare
		 * @return rue if this key is smaller then other
		 */
		bool operator < (const Key & other) const;


		/**
		 * Smaller then or equal operator.
		 * @param other The key to compare
		 * @return rue if this key is smaller then or equal to other
		 */
		bool operator <= (const Key & other) const;


		/**
		 * Greater then operator.
		 * @param other The key to compare
		 * @return rue if this key is greater then other
		 */
		bool operator > (const Key & other) const;

		/**
		 * Greater then or equal operator.
		 * @param other The key to compare
		 * @return rue if this key is greater then or equal to other
		 */
		bool operator >= (const Key & other) const;
		
		/**
		 * Divide by a number operator
		 */
		Key operator / (int value) const;
		
		/**
		 * Addition for keys
		 * @param a The first key
		 * @param b The second key
		 */
		friend KTORRENT_EXPORT Key operator + (const Key & a, const Key & b);
		
		/**
		 * Subtraction for keys
		 * @param a The first key
		 * @param b The second key
		 */
		friend KTORRENT_EXPORT Key operator - (const Key & a, const Key & b);
		
		/**
		 * Addition for key and a value
		 * @param a The key
		 * @param b The value
		 */
		friend KTORRENT_EXPORT Key operator + (const Key & a, bt::Uint8 value);

		/**
		 * The distance of two keys is the keys xor together.
		 * @param a The first key
		 * @param b The second key
		 * @return a xor b
		 */
		static Key distance(const Key & a, const Key & b);

		/**
		 * Calculate the middle between two keys.
		 * @param a The first key
		 * @param b The second key
		 * @return The middle
		 */
		static Key mid(const Key & a, const Key & b);
	};

}

#endif