diff options
Diffstat (limited to 'chromium/net/quic/crypto/quic_random.h')
-rw-r--r-- | chromium/net/quic/crypto/quic_random.h | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/chromium/net/quic/crypto/quic_random.h b/chromium/net/quic/crypto/quic_random.h new file mode 100644 index 00000000000..68640c1695d --- /dev/null +++ b/chromium/net/quic/crypto/quic_random.h @@ -0,0 +1,41 @@ +// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef NET_QUIC_CRYPTO_QUIC_RANDOM_H_ +#define NET_QUIC_CRYPTO_QUIC_RANDOM_H_ + +#include <stddef.h> + +#include "base/basictypes.h" +#include "net/base/net_export.h" + +namespace net { + +// The interface for a random number generator. +class NET_EXPORT_PRIVATE QuicRandom { + public: + virtual ~QuicRandom() {} + + // Returns the default random number generator, which is cryptographically + // secure and thread-safe. + static QuicRandom* GetInstance(); + + // Generates |len| random bytes in the |data| buffer. + virtual void RandBytes(void* data, size_t len) = 0; + + // Returns a random number in the range [0, kuint64max]. + virtual uint64 RandUint64() = 0; + + // Returns a random boolean value. + virtual bool RandBool() = 0; + + // Reseeds the random number generator with additional entropy input. + // NOTE: the constructor of a QuicRandom object is responsible for seeding + // itself with enough entropy input. + virtual void Reseed(const void* additional_entropy, size_t entropy_len) = 0; +}; + +} // namespace net + +#endif // NET_QUIC_CRYPTO_QUIC_RANDOM_H_ |