diff --git a/CPP/7zip/Archive/Rar/Rar5Handler.cpp b/CPP/7zip/Archive/Rar/Rar5Handler.cpp index 61c9fc72..8138725b 100644 --- a/CPP/7zip/Archive/Rar/Rar5Handler.cpp +++ b/CPP/7zip/Archive/Rar/Rar5Handler.cpp @@ -2962,35 +2962,4 @@ REGISTER_ARC_I( NULL) }} - - -class CBlake2spHasher: - public IHasher, - public CMyUnknownImp -{ - CBlake2sp _blake; - Byte mtDummy[1 << 7]; - -public: - CBlake2spHasher() { Init(); } - - MY_UNKNOWN_IMP - INTERFACE_IHasher(;) -}; - -STDMETHODIMP_(void) CBlake2spHasher::Init() throw() -{ - Blake2sp_Init(&_blake); -} - -STDMETHODIMP_(void) CBlake2spHasher::Update(const void *data, UInt32 size) throw() -{ - Blake2sp_Update(&_blake, (const Byte *)data, size); -} - -STDMETHODIMP_(void) CBlake2spHasher::Final(Byte *digest) throw() -{ - Blake2sp_Final(&_blake, digest); -} - -REGISTER_HASHER(CBlake2spHasher, 0x202, "BLAKE2sp", BLAKE2S_DIGEST_SIZE) + diff --git a/CPP/7zip/Bundles/Format7zF/Arc.mak b/CPP/7zip/Bundles/Format7zF/Arc.mak index b3dabeb9..990ee120 100644 --- a/CPP/7zip/Bundles/Format7zF/Arc.mak +++ b/CPP/7zip/Bundles/Format7zF/Arc.mak @@ -1,4 +1,5 @@ COMMON_OBJS = \ + $O\Blake2sReg.obj \ $O\CRC.obj \ $O\CrcReg.obj \ $O\DynLimBuf.obj \ diff --git a/CPP/7zip/Bundles/Format7zFO/Arc.mak b/CPP/7zip/Bundles/Format7zFO/Arc.mak index b78e4c1b..a678f896 100644 --- a/CPP/7zip/Bundles/Format7zFO/Arc.mak +++ b/CPP/7zip/Bundles/Format7zFO/Arc.mak @@ -1,4 +1,5 @@ COMMON_OBJS = \ + $O\Blake2sReg.obj \ $O\CRC.obj \ $O\CrcReg.obj \ $O\DynLimBuf.obj \ diff --git a/CPP/Common/Blake2sReg.cpp b/CPP/Common/Blake2sReg.cpp new file mode 100644 index 00000000..2d4b38fe --- /dev/null +++ b/CPP/Common/Blake2sReg.cpp @@ -0,0 +1,43 @@ +// Blake2sReg.cpp + +#include "StdAfx.h" + +#define XXH_STATIC_LINKING_ONLY +#include "../../C/CpuArch.h" +#include "../../C/Blake2.h" + +#include "../Common/MyCom.h" + +#include "../7zip/Common/RegisterCodec.h" + + +class CBlake2spHasher: + public IHasher, + public CMyUnknownImp +{ + CBlake2sp _blake; + Byte mtDummy[1 << 7]; + +public: + CBlake2spHasher() { Init(); } + + MY_UNKNOWN_IMP + INTERFACE_IHasher(;) +}; + +STDMETHODIMP_(void) CBlake2spHasher::Init() throw() +{ + Blake2sp_Init(&_blake); +} + +STDMETHODIMP_(void) CBlake2spHasher::Update(const void *data, UInt32 size) throw() +{ + Blake2sp_Update(&_blake, (const Byte *)data, size); +} + +STDMETHODIMP_(void) CBlake2spHasher::Final(Byte *digest) throw() +{ + Blake2sp_Final(&_blake, digest); +} + +REGISTER_HASHER(CBlake2spHasher, 0x202, "BLAKE2sp", BLAKE2S_DIGEST_SIZE)