1*6777b538SAndroid Build Coastguard Worker // Copyright 2012 The Chromium Authors 2*6777b538SAndroid Build Coastguard Worker // Use of this source code is governed by a BSD-style license that can be 3*6777b538SAndroid Build Coastguard Worker // found in the LICENSE file. 4*6777b538SAndroid Build Coastguard Worker 5*6777b538SAndroid Build Coastguard Worker #include "crypto/random.h" 6*6777b538SAndroid Build Coastguard Worker 7*6777b538SAndroid Build Coastguard Worker #include <stddef.h> 8*6777b538SAndroid Build Coastguard Worker 9*6777b538SAndroid Build Coastguard Worker #include <vector> 10*6777b538SAndroid Build Coastguard Worker 11*6777b538SAndroid Build Coastguard Worker #include "base/rand_util.h" 12*6777b538SAndroid Build Coastguard Worker 13*6777b538SAndroid Build Coastguard Worker namespace crypto { 14*6777b538SAndroid Build Coastguard Worker RandBytes(void * bytes,size_t length)15*6777b538SAndroid Build Coastguard Workervoid RandBytes(void *bytes, size_t length) { 16*6777b538SAndroid Build Coastguard Worker // It's OK to call base::RandBytes(), because it's already strongly random. 17*6777b538SAndroid Build Coastguard Worker // But _other_ code should go through this function to ensure that code which 18*6777b538SAndroid Build Coastguard Worker // needs secure randomness is easily discoverable. 19*6777b538SAndroid Build Coastguard Worker base::RandBytes(bytes, length); 20*6777b538SAndroid Build Coastguard Worker } 21*6777b538SAndroid Build Coastguard Worker RandBytes(base::span<uint8_t> bytes)22*6777b538SAndroid Build Coastguard Workervoid RandBytes(base::span<uint8_t> bytes) { 23*6777b538SAndroid Build Coastguard Worker RandBytes(bytes.data(), bytes.size()); 24*6777b538SAndroid Build Coastguard Worker } 25*6777b538SAndroid Build Coastguard Worker RandBytesAsVector(size_t length)26*6777b538SAndroid Build Coastguard Workerstd::vector<uint8_t> RandBytesAsVector(size_t length) { 27*6777b538SAndroid Build Coastguard Worker std::vector<uint8_t> result(length); 28*6777b538SAndroid Build Coastguard Worker RandBytes(result); 29*6777b538SAndroid Build Coastguard Worker return result; 30*6777b538SAndroid Build Coastguard Worker } 31*6777b538SAndroid Build Coastguard Worker 32*6777b538SAndroid Build Coastguard Worker } // namespace crypto 33*6777b538SAndroid Build Coastguard Worker 34