Chromium Code Reviews| Index: base/rand_util.cc |
| diff --git a/base/rand_util.cc b/base/rand_util.cc |
| index d89f8b725080d3912944b5b7bc60c19096c683ae..9d90a88e9de3db6685c0f7eb6567be40a6e4045d 100644 |
| --- a/base/rand_util.cc |
| +++ b/base/rand_util.cc |
| @@ -41,6 +41,17 @@ uint64 RandGenerator(uint64 max) { |
| return base::RandUint64() % max; |
| } |
| +void RandBytes(void* output, size_t output_length) { |
| + uint64 random_int; |
| + const char* random_int_bytes = reinterpret_cast<const char*>(&random_int); |
| + size_t random_int_size = sizeof(random_int); |
| + for (size_t i = 0; i < output_length; i += random_int_size) { |
| + random_int = base::RandUint64(); |
| + size_t copy_count = std::min(output_length - i, random_int_size); |
| + memcpy(((uint8*)output) + i, random_int_bytes, copy_count); |
| + } |
|
abarth-chromium
2011/05/02 18:23:20
I'd recommend re-implementing RandBytesAsString in
|
| +} |
| + |
| std::string RandBytesAsString(size_t length) { |
| const size_t kBitsPerChar = 8; |
| const int kCharsPerInt64 = sizeof(uint64)/sizeof(char); |