Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/kornelski/7z.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'CPP/Common/Sha256Reg.cpp')
-rw-r--r--CPP/Common/Sha256Reg.cpp28
1 files changed, 8 insertions, 20 deletions
diff --git a/CPP/Common/Sha256Reg.cpp b/CPP/Common/Sha256Reg.cpp
index 6adb3cdc..6c822cc7 100644
--- a/CPP/Common/Sha256Reg.cpp
+++ b/CPP/Common/Sha256Reg.cpp
@@ -6,7 +6,6 @@
#include "../Common/MyCom.h"
-#include "../7zip/ICoder.h"
#include "../7zip/Common/RegisterCodec.h"
class CSha256Hasher:
@@ -14,39 +13,28 @@ class CSha256Hasher:
public CMyUnknownImp
{
CSha256 _sha;
+ Byte mtDummy[1 << 7];
+
public:
- CSha256Hasher() { Init(); };
+ CSha256Hasher() { Sha256_Init(&_sha); }
MY_UNKNOWN_IMP
-
- STDMETHOD_(void, Init)();
- STDMETHOD_(void, Update)(const void *data, UInt32 size);
- STDMETHOD_(void, Final)(Byte *digest);
- STDMETHOD_(UInt32, GetDigestSize)();
+ INTERFACE_IHasher(;)
};
-STDMETHODIMP_(void) CSha256Hasher::Init()
+STDMETHODIMP_(void) CSha256Hasher::Init() throw()
{
Sha256_Init(&_sha);
}
-STDMETHODIMP_(void) CSha256Hasher::Update(const void *data, UInt32 size)
+STDMETHODIMP_(void) CSha256Hasher::Update(const void *data, UInt32 size) throw()
{
Sha256_Update(&_sha, (const Byte *)data, size);
}
-STDMETHODIMP_(void) CSha256Hasher::Final(Byte *digest)
+STDMETHODIMP_(void) CSha256Hasher::Final(Byte *digest) throw()
{
Sha256_Final(&_sha, digest);
}
-STDMETHODIMP_(UInt32) CSha256Hasher::GetDigestSize()
-{
- return SHA256_DIGEST_SIZE;
-}
-
-static IHasher *CreateHasher() { return new CSha256Hasher; }
-
-static CHasherInfo g_HasherInfo = { CreateHasher, 0xA, L"SHA256", SHA256_DIGEST_SIZE };
-
-REGISTER_HASHER(Sha256)
+REGISTER_HASHER(CSha256Hasher, 0xA, "SHA256", SHA256_DIGEST_SIZE)