// Copyright 2021 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef BASE_HASH_SHA1_NACL_H_ #define BASE_HASH_SHA1_NACL_H_ #include namespace base { // Used for storing intermediate data during an SHA1 computation. Callers // should not access the data. class SHA1Context { public: void Init(); void Update(const void* data, size_t nbytes); void Final(); const unsigned char* GetDigest() const; private: void Pad(); void Process(); uint32_t A, B, C, D, E; uint32_t H[5]; union { uint32_t W[80]; uint8_t M[64]; }; uint32_t cursor; uint64_t l; }; } // namespace base #endif // BASE_HASH_SHA1_NACL_H_