2020-07-29 20:24:54 +02:00
|
|
|
/*
|
2021-04-28 22:46:44 +02:00
|
|
|
* Copyright (c) 2020, the SerenityOS developers.
|
2020-07-29 20:24:54 +02:00
|
|
|
*
|
2021-04-22 01:24:48 -07:00
|
|
|
* SPDX-License-Identifier: BSD-2-Clause
|
2020-07-29 20:24:54 +02:00
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
#pragma once
|
|
|
|
|
|
|
|
|
|
#include <AK/Span.h>
|
|
|
|
|
|
|
|
|
|
namespace Crypto::Checksum {
|
|
|
|
|
|
2023-05-18 15:52:20 +02:00
|
|
|
template<typename ChecksumT>
|
2020-07-29 20:24:54 +02:00
|
|
|
class ChecksumFunction {
|
|
|
|
|
public:
|
2023-05-18 15:52:20 +02:00
|
|
|
using ChecksumType = ChecksumT;
|
|
|
|
|
|
2020-07-29 20:24:54 +02:00
|
|
|
virtual void update(ReadonlyBytes data) = 0;
|
|
|
|
|
virtual ChecksumType digest() = 0;
|
2021-04-15 10:43:29 -07:00
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
virtual ~ChecksumFunction() = default;
|
2020-07-29 20:24:54 +02:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
}
|