Go to the documentation of this file.
15 #ifndef ABSL_RANDOM_INTERNAL_SEED_MATERIAL_H_
16 #define ABSL_RANDOM_INTERNAL_SEED_MATERIAL_H_
24 #include "absl/base/attributes.h"
25 #include "absl/random/internal/fast_uniform_bits.h"
26 #include "absl/types/optional.h"
27 #include "absl/types/span.h"
31 namespace random_internal {
36 return (seed_size + 31) / 32;
49 "Entropy used to seed URBGs must be nonzero.");
67 template <
typename URBG>
72 assert(urbg !=
nullptr &&
values.data() !=
nullptr);
73 if (urbg ==
nullptr ||
values.data() ==
nullptr) {
78 seed_value = distr(*urbg);
104 #endif // ABSL_RANDOM_INTERNAL_SEED_MATERIAL_H_
constexpr size_t SeedBitsToBlocks(size_t seed_size)
#define ABSL_NAMESPACE_END
#define ABSL_MUST_USE_RESULT
#define ABSL_NAMESPACE_BEGIN
bool ReadSeedMaterialFromOSEntropy(absl::Span< uint32_t > values)
constexpr size_t kEntropyBlocksNeeded
void MixIntoSeedMaterial(absl::Span< const uint32_t > sequence, absl::Span< uint32_t > seed_material)
std::array< int64_t, Size > values
absl::optional< uint32_t > GetSaltMaterial()
ABSL_MUST_USE_RESULT bool ReadSeedMaterialFromURBG(URBG *urbg, absl::Span< uint32_t > values)
constexpr size_t kEntropyBitsNeeded
grpc
Author(s):
autogenerated on Fri May 16 2025 03:00:10