[email protected] | 9b20578 | 2012-08-02 20:22:25 | [diff] [blame] | 1 | // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
[email protected] | 05f9b68 | 2008-09-29 22:18:01 | [diff] [blame] | 2 | // Use of this source code is governed by a BSD-style license that can be |
3 | // found in the LICENSE file. | ||||
4 | |||||
5 | #include "base/rand_util.h" | ||||
6 | |||||
7 | #include <stdlib.h> | ||||
8 | |||||
9 | #include "base/basictypes.h" | ||||
10 | #include "base/logging.h" | ||||
11 | |||||
12 | namespace { | ||||
[email protected] | 52a261f | 2009-03-03 15:01:12 | [diff] [blame] | 13 | |
[email protected] | ba99012 | 2008-11-14 23:28:29 | [diff] [blame] | 14 | uint32 RandUint32() { |
[email protected] | 05f9b68 | 2008-09-29 22:18:01 | [diff] [blame] | 15 | uint32 number; |
[email protected] | e150c038 | 2010-03-02 00:41:12 | [diff] [blame] | 16 | CHECK_EQ(rand_s(&number), 0); |
[email protected] | 05f9b68 | 2008-09-29 22:18:01 | [diff] [blame] | 17 | return number; |
18 | } | ||||
19 | |||||
20 | } // namespace | ||||
21 | |||||
22 | namespace base { | ||||
23 | |||||
[email protected] | 9b20578 | 2012-08-02 20:22:25 | [diff] [blame] | 24 | // NOTE: This function must be cryptographically secure. http://crbug.com/140076 |
[email protected] | ba99012 | 2008-11-14 23:28:29 | [diff] [blame] | 25 | uint64 RandUint64() { |
26 | uint32 first_half = RandUint32(); | ||||
27 | uint32 second_half = RandUint32(); | ||||
[email protected] | 05f9b68 | 2008-09-29 22:18:01 | [diff] [blame] | 28 | return (static_cast<uint64>(first_half) << 32) + second_half; |
29 | } | ||||
30 | |||||
[email protected] | 05f9b68 | 2008-09-29 22:18:01 | [diff] [blame] | 31 | } // namespace base |