1*6777b538SAndroid Build Coastguard Worker // Copyright 2019 The Chromium Authors 2*6777b538SAndroid Build Coastguard Worker // Use of this source code is governed by a BSD-style license that can be 3*6777b538SAndroid Build Coastguard Worker // found in the LICENSE file. 4*6777b538SAndroid Build Coastguard Worker 5*6777b538SAndroid Build Coastguard Worker #ifndef BASE_HASH_MD5_CONSTEXPR_H_ 6*6777b538SAndroid Build Coastguard Worker #define BASE_HASH_MD5_CONSTEXPR_H_ 7*6777b538SAndroid Build Coastguard Worker 8*6777b538SAndroid Build Coastguard Worker #include "base/hash/md5_constexpr_internal.h" 9*6777b538SAndroid Build Coastguard Worker 10*6777b538SAndroid Build Coastguard Worker #include <string_view> 11*6777b538SAndroid Build Coastguard Worker 12*6777b538SAndroid Build Coastguard Worker namespace base { 13*6777b538SAndroid Build Coastguard Worker 14*6777b538SAndroid Build Coastguard Worker // Calculates the first 32/64 bits of the MD5 digest of the provided data, 15*6777b538SAndroid Build Coastguard Worker // returned as a uint32_t/uint64_t. When passing |string| with no explicit 16*6777b538SAndroid Build Coastguard Worker // length the terminating null will not be processed. This abstracts away 17*6777b538SAndroid Build Coastguard Worker // endianness so that the integer will read as the first 4 or 8 bytes of the 18*6777b538SAndroid Build Coastguard Worker // MD5 sum, ensuring that the following outputs are equivalent for 19*6777b538SAndroid Build Coastguard Worker // convenience: 20*6777b538SAndroid Build Coastguard Worker // 21*6777b538SAndroid Build Coastguard Worker // printf("%08x\n", MD5Hash32Constexpr("foo")); 22*6777b538SAndroid Build Coastguard Worker constexpr uint64_t MD5Hash64Constexpr(std::string_view string); 23*6777b538SAndroid Build Coastguard Worker constexpr uint32_t MD5Hash32Constexpr(std::string_view string); 24*6777b538SAndroid Build Coastguard Worker 25*6777b538SAndroid Build Coastguard Worker } // namespace base 26*6777b538SAndroid Build Coastguard Worker 27*6777b538SAndroid Build Coastguard Worker #endif // BASE_HASH_MD5_CONSTEXPR_H_ 28