This file is indexed.

/usr/include/kashmir/system/winrand.h is in libkashmir-dev 0.0~git20150805.0.2f3913f+dfsg3-1.

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
// winrand.h -- Windows random number generator

// Copyright (C) 2008 Kenneth Laskoski

/** @file winrand.h
    @brief Windows random number generator
    @author Copyright (C) 2008 Kenneth Laskoski

    WinRand uses ADVAPI32!RtlGenRandom and does not require a CSP context
    see <http://blogs.msdn.com/michael_howard/archive/2005/01/14/353379.aspx>
    and <http://msdn.microsoft.com/en-us/library/aa387694%28VS.85%29.aspx>

    Use, modification, and distribution are subject to the
    Boost Software License, Version 1.0. See accompanying file
    LICENSE_1_0.txt or <http://www.boost.org/LICENSE_1_0.txt>.
*/

#ifndef KL_WINRAND_H
#define KL_WINRAND_H

#include "../randomstream.h"
#include "../unique.h"

#include <stdexcept>

#define WINVER 0x0501
#define _WIN32_WINNT 0x0501
#include <windows.h>

namespace kashmir {
namespace system {

class WinRand : public randomstream<WinRand>, unique<WinRand>
{
    HMODULE advapi32;
    BOOLEAN (APIENTRY *RtlGenRandom)(void*, ULONG);

public:
    WinRand() : advapi32(LoadLibrary("ADVAPI32.DLL"))
    {
        if (!advapi32)
            throw std::runtime_error("failed to load ADVAPI32.DLL.");

        RtlGenRandom = reinterpret_cast<BOOLEAN (APIENTRY*)(void*, ULONG)>(GetProcAddress(advapi32, "SystemFunction036"));
        if (!RtlGenRandom)
        {
            FreeLibrary(advapi32);
            throw std::runtime_error("failed to get ADVAPI32!RtlGenRandom address.");
        }
    }

    ~WinRand()
    {
        FreeLibrary(advapi32);
    }

    void read(char *buffer, std::size_t count)
    {
        if (!RtlGenRandom(buffer, count))
            throw std::runtime_error("system failed to generate random data.");
    }
};

}}

#endif