cksum.h 532 B

12345678910111213141516171819202122232425262728293031
  1. /*
  2. * Copyright (c) 2024, the SerenityOS developers.
  3. *
  4. * SPDX-License-Identifier: BSD-2-Clause
  5. */
  6. #pragma once
  7. #include <AK/Span.h>
  8. #include <AK/Types.h>
  9. #include <LibCrypto/Checksum/ChecksumFunction.h>
  10. namespace Crypto::Checksum {
  11. class cksum : public ChecksumFunction<u32> {
  12. public:
  13. cksum() = default;
  14. cksum(ReadonlyBytes data)
  15. {
  16. update(data);
  17. }
  18. virtual void update(ReadonlyBytes data) override;
  19. virtual u32 digest() override;
  20. private:
  21. u32 m_state { 0 };
  22. off_t m_size { 0 };
  23. };
  24. }