41 lines
738 B
C++
41 lines
738 B
C++
// 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 <stdint.h>
|
|
|
|
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_
|