blob: 391fe5b9e61d6f48f413b97f3f3f536dd38d5da0 [file] [log] [blame]
[email protected]9b205782012-08-02 20:22:251// Copyright (c) 2012 The Chromium Authors. All rights reserved.
[email protected]05f9b682008-09-29 22:18:012// 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
12namespace {
[email protected]52a261f2009-03-03 15:01:1213
[email protected]ba990122008-11-14 23:28:2914uint32 RandUint32() {
[email protected]05f9b682008-09-29 22:18:0115 uint32 number;
[email protected]e150c0382010-03-02 00:41:1216 CHECK_EQ(rand_s(&number), 0);
[email protected]05f9b682008-09-29 22:18:0117 return number;
18}
19
20} // namespace
21
22namespace base {
23
[email protected]9b205782012-08-02 20:22:2524// NOTE: This function must be cryptographically secure. http://crbug.com/140076
[email protected]ba990122008-11-14 23:28:2925uint64 RandUint64() {
26 uint32 first_half = RandUint32();
27 uint32 second_half = RandUint32();
[email protected]05f9b682008-09-29 22:18:0128 return (static_cast<uint64>(first_half) << 32) + second_half;
29}
30
[email protected]05f9b682008-09-29 22:18:0131} // namespace base