mirror of
https://github.com/Xevion/easy7zip.git
synced 2025-12-12 03:09:57 -06:00
Update to 7-Zip Version 21.02
This commit is contained in:
@@ -9,39 +9,38 @@
|
||||
namespace NCrypto {
|
||||
namespace NSha256 {
|
||||
|
||||
static const unsigned kBlockSize = 64;
|
||||
|
||||
void CHmac::SetKey(const Byte *key, size_t keySize)
|
||||
{
|
||||
Byte temp[kBlockSize];
|
||||
MY_ALIGN (16)
|
||||
UInt32 temp[SHA256_NUM_BLOCK_WORDS];
|
||||
size_t i;
|
||||
|
||||
for (i = 0; i < kBlockSize; i++)
|
||||
for (i = 0; i < SHA256_NUM_BLOCK_WORDS; i++)
|
||||
temp[i] = 0;
|
||||
|
||||
if (keySize > kBlockSize)
|
||||
{
|
||||
Sha256_Init(&_sha);
|
||||
Sha256_Update(&_sha, key, keySize);
|
||||
Sha256_Final(&_sha, temp);
|
||||
Sha256_Final(&_sha, (Byte *)temp);
|
||||
}
|
||||
else
|
||||
for (i = 0; i < keySize; i++)
|
||||
temp[i] = key[i];
|
||||
memcpy(temp, key, keySize);
|
||||
|
||||
for (i = 0; i < kBlockSize; i++)
|
||||
temp[i] ^= 0x36;
|
||||
for (i = 0; i < SHA256_NUM_BLOCK_WORDS; i++)
|
||||
temp[i] ^= 0x36363636;
|
||||
|
||||
Sha256_Init(&_sha);
|
||||
Sha256_Update(&_sha, temp, kBlockSize);
|
||||
Sha256_Update(&_sha, (const Byte *)temp, kBlockSize);
|
||||
|
||||
for (i = 0; i < kBlockSize; i++)
|
||||
temp[i] ^= 0x36 ^ 0x5C;
|
||||
for (i = 0; i < SHA256_NUM_BLOCK_WORDS; i++)
|
||||
temp[i] ^= 0x36363636 ^ 0x5C5C5C5C;
|
||||
|
||||
Sha256_Init(&_sha2);
|
||||
Sha256_Update(&_sha2, temp, kBlockSize);
|
||||
Sha256_Update(&_sha2, (const Byte *)temp, kBlockSize);
|
||||
}
|
||||
|
||||
|
||||
void CHmac::Final(Byte *mac)
|
||||
{
|
||||
Sha256_Final(&_sha, mac);
|
||||
@@ -49,14 +48,4 @@ void CHmac::Final(Byte *mac)
|
||||
Sha256_Final(&_sha2, mac);
|
||||
}
|
||||
|
||||
/*
|
||||
void CHmac::Final(Byte *mac, size_t macSize)
|
||||
{
|
||||
Byte digest[SHA256_DIGEST_SIZE];
|
||||
Final(digest);
|
||||
for (size_t i = 0; i < macSize; i++)
|
||||
mac[i] = digest[i];
|
||||
}
|
||||
*/
|
||||
|
||||
}}
|
||||
|
||||
Reference in New Issue
Block a user