aboutsummaryrefslogtreecommitdiff
path: root/third_party/abseil-cpp/absl/random/internal/seed_material.cc
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/abseil-cpp/absl/random/internal/seed_material.cc')
-rw-r--r--third_party/abseil-cpp/absl/random/internal/seed_material.cc50
1 files changed, 1 insertions, 49 deletions
diff --git a/third_party/abseil-cpp/absl/random/internal/seed_material.cc b/third_party/abseil-cpp/absl/random/internal/seed_material.cc
index c03cad8502..4d38a57419 100644
--- a/third_party/abseil-cpp/absl/random/internal/seed_material.cc
+++ b/third_party/abseil-cpp/absl/random/internal/seed_material.cc
@@ -28,7 +28,6 @@
#include <cstdlib>
#include <cstring>
-#include "absl/base/dynamic_annotations.h"
#include "absl/base/internal/raw_logging.h"
#include "absl/strings/ascii.h"
#include "absl/strings/escaping.h"
@@ -51,18 +50,6 @@
#endif
-#if defined(__GLIBC__) && \
- (__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 25))
-// glibc >= 2.25 has getentropy()
-#define ABSL_RANDOM_USE_GET_ENTROPY 1
-#endif
-
-#if defined(__EMSCRIPTEN__)
-#include <sys/random.h>
-// Emscripten has getentropy, but it resides in a different header.
-#define ABSL_RANDOM_USE_GET_ENTROPY 1
-#endif
-
#if defined(ABSL_RANDOM_USE_BCRYPT)
#include <bcrypt.h>
@@ -135,32 +122,8 @@ bool ReadSeedMaterialFromOSEntropyImpl(absl::Span<uint32_t> values) {
#else
-#if defined(ABSL_RANDOM_USE_GET_ENTROPY)
-// On *nix, use getentropy() if supported. Note that libc may support
-// getentropy(), but the kernel may not, in which case this function will return
-// false.
-bool ReadSeedMaterialFromGetEntropy(absl::Span<uint32_t> values) {
- auto buffer = reinterpret_cast<uint8_t*>(values.data());
- size_t buffer_size = sizeof(uint32_t) * values.size();
- while (buffer_size > 0) {
- // getentropy() has a maximum permitted length of 256.
- size_t to_read = std::min<size_t>(buffer_size, 256);
- int result = getentropy(buffer, to_read);
- if (result < 0) {
- return false;
- }
- // https://github.com/google/sanitizers/issues/1173
- // MemorySanitizer can't see through getentropy().
- ABSL_ANNOTATE_MEMORY_IS_INITIALIZED(buffer, to_read);
- buffer += to_read;
- buffer_size -= to_read;
- }
- return true;
-}
-#endif // defined(ABSL_RANDOM_GETENTROPY)
-
// On *nix, read entropy from /dev/urandom.
-bool ReadSeedMaterialFromDevURandom(absl::Span<uint32_t> values) {
+bool ReadSeedMaterialFromOSEntropyImpl(absl::Span<uint32_t> values) {
const char kEntropyFile[] = "/dev/urandom";
auto buffer = reinterpret_cast<uint8_t*>(values.data());
@@ -187,17 +150,6 @@ bool ReadSeedMaterialFromDevURandom(absl::Span<uint32_t> values) {
return success;
}
-bool ReadSeedMaterialFromOSEntropyImpl(absl::Span<uint32_t> values) {
-#if defined(ABSL_RANDOM_USE_GET_ENTROPY)
- if (ReadSeedMaterialFromGetEntropy(values)) {
- return true;
- }
-#endif
- // Libc may support getentropy, but the kernel may not, so we still have
- // to fallback to ReadSeedMaterialFromDevURandom().
- return ReadSeedMaterialFromDevURandom(values);
-}
-
#endif
} // namespace