This file is indexed.

/usr/include/KF5/KLDAP/kldap/ber.h is in libkf5ldap-dev 17.12.3-0ubuntu1.

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
/*
  This file is part of libkldap.
  Copyright (c) 2004-2006 Szombathelyi György <gyurco@freemail.hu>

  This library is free software; you can redistribute it and/or
  modify it under the terms of the GNU Library General  Public
  License as published by the Free Software Foundation; either
  version 2 of the License, or (at your option) any later version.

  This library 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
  Library General Public License for more details.

  You should have received a copy of the GNU Library General Public License
  along with this library; see the file COPYING.LIB.  If not, write to
  the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
  Boston, MA 02110-1301, USA.
*/

#ifndef KLDAP_BER_H
#define KLDAP_BER_H

#include <QByteArray>

#include "kldap_export.h"

// clazy:excludeall=copyable-polymorphic

namespace KLDAP
{

/**
 * This class allows encoding and decoding Qt structures using Basic
 * Encoding Rules.
 */
class KLDAP_EXPORT Ber
{
public:
    /**
     * Constructs a Ber object.
     */
    Ber();
    /**
     * Constructs a Ber object from the value.
     */
    explicit Ber(const QByteArray &value);
    /**
     * Destroys the Ber object.
     */
    virtual ~Ber();

    Ber(const Ber &that);
    Ber &operator=(const Ber &that);

    /**
     * Returns the Ber object as a flat QByteArray.
     */
    QByteArray flatten() const;

    /**
     * Appends the data with the specified format to the Ber object.
     * This function works like printf, except that it's appending the
     * parameters, not replacing them. The allowed format characters and
     * the expected parameter types are:
     * <ul>
     *   <li>
     *     b  Boolean.  An int parameter should be supplied.
     *     A boolean element is output.
     *   </li>
     *   <li>
     *     e  Enumeration.  An int parameter should be supplied.
     *     An  enumeration  element is output.
     *   </li>
     *   <li>
     *     i  Integer.   An int parameter should be supplied.
     *     An integer element is output.
     *   </li>
     *   <li>
     *     B  Bitstring.  A pointer to a QByteArray which contains the
     *     bitstring is supplied, followed by the number of bits in the
     *     bitstring.  A bitstring element is output.
     *   </li>
     *   <li>
     *     n  Null.  No parameter is required. A null element is output.
     *   </li>
     *   <li>
     *     O,o,s  Octet  string.  A QByteArray * is supplied.
     *     An octet string element is output.
     *         Due to versatility of Qt's QByteArray, these three format
     *         strings are all accepts the same parameter, but using the 's'
     *         format the string will be encoded only to the first zero
     *         character (a null terminated string)!
     *   </li>
     *   <li>
     *     t  Tag.  An int specifying the tag to give the next element
     *     is provided. This works across calls.
     *   </li>
     *   <li>
     *     v,V  Several octet strings. A QList<QByteArray>* is supplied.
     *     Note that a construct like ’{v}’ is required to get an actual
     *     SEQUENCE OF octet strings. Also note that the 'v' format recognizes
     *     the QByteArray only to the first zero character, so it's not
     *     appropriate for binary data, just only for null terminated strings!
     *   </li>
     *   <li>
     *     {  Begin sequence. No parameter is required.
     *   </li>
     *   <li>
     *     }  End sequence.  No parameter is required.
     *   </li>
     *   <li>
     *     [  Begin set.  No parameter is required.
     *   </li>
     *   <li>
     *     ]  End set.  No parameter is required.
     *   </li>
     * </ul>
     */
    int printf(QString format, ...); // Passing by-value since it's used by va_start
    int scanf(QString format, ...);
    unsigned int peekTag(int &size);
    unsigned int skipTag(int &size);

private:
    class BerPrivate;
    BerPrivate *const d;
};

}
#endif