diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-05 18:07:13 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-05 18:07:13 +0000 |
commit | 636c7dc17286d93d788c741d15fd756aeda066d5 (patch) | |
tree | e7ae158cc54f591041a061b9865bcae51854f15c /apt-pkg/contrib/sha1.h | |
parent | Initial commit. (diff) | |
download | apt-upstream/1.8.2.3.tar.xz apt-upstream/1.8.2.3.zip |
Adding upstream version 1.8.2.3.upstream/1.8.2.3upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to '')
-rw-r--r-- | apt-pkg/contrib/sha1.h | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/apt-pkg/contrib/sha1.h b/apt-pkg/contrib/sha1.h new file mode 100644 index 0000000..dffb950 --- /dev/null +++ b/apt-pkg/contrib/sha1.h @@ -0,0 +1,47 @@ +// -*- mode: cpp; mode: fold -*- +// Description /*{{{*/ +/* ###################################################################### + + SHA1SumValue - Storage for a SHA-1 hash. + SHA1Summation - SHA-1 Secure Hash Algorithm. + + This is a C++ interface to a set of SHA1Sum functions, that mirrors + the equivalent MD5 classes. + + ##################################################################### */ + /*}}}*/ +#ifndef APTPKG_SHA1_H +#define APTPKG_SHA1_H + +#include "hashsum_template.h" + +#ifndef APT_10_CLEANER_HEADERS +#include <algorithm> +#include <cstring> +#include <string> +#endif +#ifndef APT_8_CLEANER_HEADERS +using std::string; +using std::min; +#endif + +typedef HashSumValue<160> SHA1SumValue; + +class SHA1Summation : public SummationImplementation +{ + /* assumes 64-bit alignment just in case */ + unsigned char Buffer[64] __attribute__((aligned(8))); + unsigned char State[5*4] __attribute__((aligned(8))); + unsigned char Count[2*4] __attribute__((aligned(8))); + bool Done; + + public: + bool Add(const unsigned char *inbuf, unsigned long long inlen) APT_OVERRIDE APT_NONNULL(2); + using SummationImplementation::Add; + + SHA1SumValue Result(); + + SHA1Summation(); +}; + +#endif |