This file is indexed.

/usr/include/kashmir/system/winrandom.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
// winrandom.h -- Windows random number generator

// Copyright (C) 2008 Kenneth Laskoski

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

    with contribution of
    @author Chet Stuut

    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_WINRANDOM_H 
#define KL_WINRANDOM_H 

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

#include <stdexcept>

#define WINVER 0x0500
#define _WIN32_WINNT 0x0500
#include <windows.h>
#include <wincrypt.h>

namespace kashmir {
namespace system {

class WinRandom : public randomstream<WinRandom>, unique<WinRandom>
{
    HCRYPTPROV hProv;

public:
    WinRandom()
    {
        if (!CryptAcquireContext(&hProv, NULL, NULL, PROV_RSA_FULL, 0))
            if (GetLastError() != NTE_BAD_KEYSET || !CryptAcquireContext(&hProv, NULL, NULL, PROV_RSA_FULL, CRYPT_NEWKEYSET))
                throw std::runtime_error("failed to acquire cryptographic context.");
    }

    ~WinRandom()
    {
        CryptReleaseContext(hProv, 0);
    }

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

}}

#endif