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 #ifndef CRYPTO_RANDOM_H_ 6*6777b538SAndroid Build Coastguard Worker #define CRYPTO_RANDOM_H_ 7*6777b538SAndroid Build Coastguard Worker 8*6777b538SAndroid Build Coastguard Worker #include <stddef.h> 9*6777b538SAndroid Build Coastguard Worker 10*6777b538SAndroid Build Coastguard Worker #include <vector> 11*6777b538SAndroid Build Coastguard Worker 12*6777b538SAndroid Build Coastguard Worker #include "base/containers/span.h" 13*6777b538SAndroid Build Coastguard Worker #include "crypto/crypto_export.h" 14*6777b538SAndroid Build Coastguard Worker 15*6777b538SAndroid Build Coastguard Worker namespace crypto { 16*6777b538SAndroid Build Coastguard Worker 17*6777b538SAndroid Build Coastguard Worker // Fills the given buffer with `length` random bytes of cryptographically 18*6777b538SAndroid Build Coastguard Worker // secure random numbers. 19*6777b538SAndroid Build Coastguard Worker CRYPTO_EXPORT void RandBytes(void *bytes, size_t length); 20*6777b538SAndroid Build Coastguard Worker 21*6777b538SAndroid Build Coastguard Worker // Fills `bytes` with cryptographically-secure random bits. 22*6777b538SAndroid Build Coastguard Worker CRYPTO_EXPORT void RandBytes(base::span<uint8_t> bytes); 23*6777b538SAndroid Build Coastguard Worker 24*6777b538SAndroid Build Coastguard Worker // Returns a vector of `length` bytes filled with cryptographically-secure 25*6777b538SAndroid Build Coastguard Worker // random bits. 26*6777b538SAndroid Build Coastguard Worker CRYPTO_EXPORT std::vector<uint8_t> RandBytesAsVector(size_t length); 27*6777b538SAndroid Build Coastguard Worker } 28*6777b538SAndroid Build Coastguard Worker 29*6777b538SAndroid Build Coastguard Worker #endif // CRYPTO_RANDOM_H_ 30