// Copyright 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. #ifndef UTIL_CRYPTO_SHA2_H_ #define UTIL_CRYPTO_SHA2_H_ #include #include #include #include "absl/strings/string_view.h" #include "platform/base/error.h" namespace openscreen { // These functions perform SHA-256 operations. // // Functions for SHA-384 and SHA-512 can be added when the need arises. // Computes the SHA-256 hash of the input string 'str' and stores the first // 'len' bytes of the hash in the output buffer 'output'. If 'len' > 32, // only 32 bytes (the full hash) are stored in the 'output' buffer. Error SHA256HashString(absl::string_view str, uint8_t output[SHA256_DIGEST_LENGTH]); // Convenience version of the above that returns the result in a 32-byte // string. ErrorOr SHA256HashString(absl::string_view str); } // namespace openscreen #endif // UTIL_CRYPTO_SHA2_H_