Coverage Report

Created: 2021-10-13 08:49

/src/botan/build/include/botan/system_rng.h
Line
Count
Source (jump to first uncovered line)
1
/*
2
* System RNG interface
3
* (C) 2014,2015 Jack Lloyd
4
*
5
* Botan is released under the Simplified BSD License (see license.txt)
6
*/
7
8
#ifndef BOTAN_SYSTEM_RNG_H_
9
#define BOTAN_SYSTEM_RNG_H_
10
11
#include <botan/rng.h>
12
13
namespace Botan {
14
15
/**
16
* Return a shared reference to a global PRNG instance provided by the
17
* operating system. For instance might be instantiated by /dev/urandom
18
* or CryptGenRandom.
19
*/
20
BOTAN_PUBLIC_API(2,0) RandomNumberGenerator& system_rng();
21
22
/*
23
* Instantiable reference to the system RNG.
24
*/
25
class BOTAN_PUBLIC_API(2,0) System_RNG final : public RandomNumberGenerator
26
   {
27
   public:
28
0
      std::string name() const override { return system_rng().name(); }
29
30
0
      void randomize(uint8_t out[], size_t len) override { system_rng().randomize(out, len); }
31
32
0
      void add_entropy(const uint8_t in[], size_t length) override { system_rng().add_entropy(in, length); }
33
34
0
      bool is_seeded() const override { return system_rng().is_seeded(); }
35
36
0
      bool accepts_input() const override { return system_rng().accepts_input(); }
37
38
0
      void clear() override { system_rng().clear(); }
39
   };
40
41
}
42
43
#endif