monotone

monotone Mtn Source Tree

Root/botan/buf_es.h

1/*************************************************
2* Buffered EntropySource Header File *
3* (C) 1999-2006 The Botan Project *
4*************************************************/
5
6#ifndef BOTAN_BUFFERED_ES_H__
7#define BOTAN_BUFFERED_ES_H__
8
9#include <botan/base.h>
10
11namespace Botan {
12
13/*************************************************
14* Buffered EntropySource *
15*************************************************/
16class Buffered_EntropySource : public EntropySource
17 {
18 public:
19 u32bit slow_poll(byte[], u32bit);
20 u32bit fast_poll(byte[], u32bit);
21 protected:
22 Buffered_EntropySource();
23 u32bit copy_out(byte[], u32bit, u32bit);
24
25 void add_bytes(const void*, u32bit);
26 void add_bytes(u64bit);
27 void add_timestamp();
28
29 virtual void do_slow_poll() = 0;
30 virtual void do_fast_poll();
31 private:
32 SecureVector<byte> buffer;
33 u32bit write_pos, read_pos;
34 bool done_slow_poll;
35 };
36
37}
38
39#endif

Archive Download this file

Branches

Tags

Quick Links:     www.monotone.ca    -     Downloads    -     Documentation    -     Wiki    -     Code Forge    -     Build Status