[email protected] | 1968d977 | 2012-07-26 22:53:13 | [diff] [blame] | 1 | // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
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 | |||||
[email protected] | 4a88783 | 2014-06-17 20:28:47 | [diff] [blame] | 7 | #include <nacl/nacl_random.h> |
avi | 9b6f4293 | 2015-12-26 22:15:14 | [diff] [blame] | 8 | #include <stddef.h> |
9 | #include <stdint.h> | ||||
[email protected] | 4a88783 | 2014-06-17 20:28:47 | [diff] [blame] | 10 | |
[email protected] | 1968d977 | 2012-07-26 22:53:13 | [diff] [blame] | 11 | #include "base/logging.h" |
[email protected] | 1968d977 | 2012-07-26 22:53:13 | [diff] [blame] | 12 | |
[email protected] | 1968d977 | 2012-07-26 22:53:13 | [diff] [blame] | 13 | namespace base { |
14 | |||||
[email protected] | c910c5a | 2014-01-23 02:14:28 | [diff] [blame] | 15 | void RandBytes(void* output, size_t output_length) { |
John Mellor | afab972d | 2017-09-26 16:28:19 | [diff] [blame] | 16 | char* output_ptr = static_cast<char*>(output); |
17 | while (output_length > 0) { | ||||
18 | size_t nread; | ||||
19 | const int error = nacl_secure_random(output_ptr, output_length, &nread); | ||||
20 | CHECK_EQ(error, 0); | ||||
21 | CHECK_LE(nread, output_length); | ||||
22 | output_ptr += nread; | ||||
23 | output_length -= nread; | ||||
24 | } | ||||
[email protected] | c910c5a | 2014-01-23 02:14:28 | [diff] [blame] | 25 | } |
26 | |||||
[email protected] | 1968d977 | 2012-07-26 22:53:13 | [diff] [blame] | 27 | } // namespace base |