tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

seed_gen_exception.cc (1271B)


      1 // Copyright 2017 The Abseil Authors.
      2 //
      3 // Licensed under the Apache License, Version 2.0 (the "License");
      4 // you may not use this file except in compliance with the License.
      5 // You may obtain a copy of the License at
      6 //
      7 //      https://www.apache.org/licenses/LICENSE-2.0
      8 //
      9 // Unless required by applicable law or agreed to in writing, software
     10 // distributed under the License is distributed on an "AS IS" BASIS,
     11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     12 // See the License for the specific language governing permissions and
     13 // limitations under the License.
     14 
     15 #include "absl/random/seed_gen_exception.h"
     16 
     17 #include "absl/base/config.h"
     18 #include "absl/base/internal/raw_logging.h"
     19 
     20 namespace absl {
     21 ABSL_NAMESPACE_BEGIN
     22 
     23 static constexpr const char kExceptionMessage[] =
     24    "Failed generating seed-material for URBG.";
     25 
     26 SeedGenException::~SeedGenException() = default;
     27 
     28 const char* SeedGenException::what() const noexcept {
     29  return kExceptionMessage;
     30 }
     31 
     32 namespace random_internal {
     33 
     34 void ThrowSeedGenException() {
     35 #ifdef ABSL_HAVE_EXCEPTIONS
     36  throw absl::SeedGenException();
     37 #else
     38  ABSL_RAW_LOG(FATAL, "%s", kExceptionMessage);
     39  std::terminate();
     40 #endif
     41 }
     42 
     43 }  // namespace random_internal
     44 ABSL_NAMESPACE_END
     45 }  // namespace absl