/* * /dev/random EntropySource * (C) 1999-2009 Jack Lloyd * * Botan is released under the Simplified BSD License (see license.txt) */ #ifndef BOTAN_ENTROPY_SRC_DEVICE_H_ #define BOTAN_ENTROPY_SRC_DEVICE_H_ #include #include #include namespace Botan { /** * Entropy source reading from kernel devices like /dev/random */ class Device_EntropySource final : public Entropy_Source { public: std::string name() const override { return "dev_random"; } size_t poll(RandomNumberGenerator& rng) override; explicit Device_EntropySource(const std::vector& fsnames); ~Device_EntropySource(); private: std::vector m_dev_fds; int m_max_fd; }; } #endif