// Copyright (c) 2019 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #include "base/hash/sha1.h" #include #include "base/strings/string_util.h" #include "third_party/boringssl/src/include/openssl/crypto.h" #include "third_party/boringssl/src/include/openssl/sha.h" namespace base { std::array SHA1HashSpan(span data) { CRYPTO_library_init(); std::array digest; SHA1(data.data(), data.size(), digest.data()); return digest; } std::string SHA1HashString(const std::string& str) { CRYPTO_library_init(); std::string digest; SHA1(reinterpret_cast(str.data()), str.size(), reinterpret_cast(WriteInto(&digest, kSHA1Length + 1))); return digest; } void SHA1HashBytes(const unsigned char* data, size_t len, unsigned char* hash) { CRYPTO_library_init(); SHA1(data, len, hash); } } // namespace base