mirror of
https://github.com/claunia/SabreTools.git
synced 2025-12-16 19:14:27 +00:00
[ALL] Add infrastructure for SHA384, SHA512
This commit is contained in:
@@ -252,6 +252,10 @@ namespace SabreTools.Helper.Data
|
|||||||
SHA256 = 0x0008,
|
SHA256 = 0x0008,
|
||||||
SHA384 = 0x0010,
|
SHA384 = 0x0010,
|
||||||
SHA512 = 0x0020,
|
SHA512 = 0x0020,
|
||||||
|
|
||||||
|
// Special combinations
|
||||||
|
Standard = CRC & MD5 & SHA1,
|
||||||
|
DeepHashes = MD5 & SHA1 & SHA256 & SHA384 & SHA512,
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|||||||
@@ -466,6 +466,14 @@ namespace SabreTools.Helper.Dats
|
|||||||
{
|
{
|
||||||
rom.SHA256 = null;
|
rom.SHA256 = null;
|
||||||
}
|
}
|
||||||
|
if ((StripHash & Hash.SHA384) != 0)
|
||||||
|
{
|
||||||
|
rom.SHA384 = null;
|
||||||
|
}
|
||||||
|
if ((StripHash & Hash.SHA512) != 0)
|
||||||
|
{
|
||||||
|
rom.SHA512 = null;
|
||||||
|
}
|
||||||
|
|
||||||
items[j] = rom;
|
items[j] = rom;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -226,7 +226,7 @@ namespace SabreTools.Helper.Dats
|
|||||||
}
|
}
|
||||||
|
|
||||||
// If all deep hash skip flags are set, do a quickscan
|
// If all deep hash skip flags are set, do a quickscan
|
||||||
if (omitFromScan == (Hash.MD5 & Hash.SHA1 & Hash.SHA256 & Hash.SHA384 & Hash.SHA512))
|
if (omitFromScan == Hash.DeepHashes)
|
||||||
{
|
{
|
||||||
ArchiveType? type = ArchiveTools.GetCurrentArchiveType(newItem, logger);
|
ArchiveType? type = ArchiveTools.GetCurrentArchiveType(newItem, logger);
|
||||||
|
|
||||||
|
|||||||
@@ -531,6 +531,8 @@ namespace SabreTools.Helper.Tools
|
|||||||
MD5 md5 = MD5.Create();
|
MD5 md5 = MD5.Create();
|
||||||
SHA1 sha1 = SHA1.Create();
|
SHA1 sha1 = SHA1.Create();
|
||||||
SHA256 sha256 = SHA256.Create();
|
SHA256 sha256 = SHA256.Create();
|
||||||
|
SHA384 sha384 = SHA384.Create();
|
||||||
|
SHA512 sha512 = SHA512.Create();
|
||||||
|
|
||||||
// Seek to the starting position, if one is set
|
// Seek to the starting position, if one is set
|
||||||
if (offset < 0)
|
if (offset < 0)
|
||||||
@@ -559,6 +561,14 @@ namespace SabreTools.Helper.Tools
|
|||||||
{
|
{
|
||||||
sha256.TransformBlock(buffer, 0, read, buffer, 0);
|
sha256.TransformBlock(buffer, 0, read, buffer, 0);
|
||||||
}
|
}
|
||||||
|
if ((omitFromScan & Hash.SHA384) == 0)
|
||||||
|
{
|
||||||
|
sha384.TransformBlock(buffer, 0, read, buffer, 0);
|
||||||
|
}
|
||||||
|
if ((omitFromScan & Hash.SHA512) == 0)
|
||||||
|
{
|
||||||
|
sha512.TransformBlock(buffer, 0, read, buffer, 0);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
crc.Update(buffer, 0, 0);
|
crc.Update(buffer, 0, 0);
|
||||||
@@ -579,12 +589,24 @@ namespace SabreTools.Helper.Tools
|
|||||||
sha256.TransformFinalBlock(buffer, 0, 0);
|
sha256.TransformFinalBlock(buffer, 0, 0);
|
||||||
rom.SHA256 = BitConverter.ToString(sha256.Hash).Replace("-", "").ToLowerInvariant();
|
rom.SHA256 = BitConverter.ToString(sha256.Hash).Replace("-", "").ToLowerInvariant();
|
||||||
}
|
}
|
||||||
|
if ((omitFromScan & Hash.SHA384) == 0)
|
||||||
|
{
|
||||||
|
sha384.TransformFinalBlock(buffer, 0, 0);
|
||||||
|
rom.SHA384 = BitConverter.ToString(sha384.Hash).Replace("-", "").ToLowerInvariant();
|
||||||
|
}
|
||||||
|
if ((omitFromScan & Hash.SHA512) == 0)
|
||||||
|
{
|
||||||
|
sha512.TransformFinalBlock(buffer, 0, 0);
|
||||||
|
rom.SHA512 = BitConverter.ToString(sha512.Hash).Replace("-", "").ToLowerInvariant();
|
||||||
|
}
|
||||||
|
|
||||||
// Dispose of the hashers
|
// Dispose of the hashers
|
||||||
crc.Dispose();
|
crc.Dispose();
|
||||||
md5.Dispose();
|
md5.Dispose();
|
||||||
sha1.Dispose();
|
sha1.Dispose();
|
||||||
sha256.Dispose();
|
sha256.Dispose();
|
||||||
|
sha384.Dispose();
|
||||||
|
sha512.Dispose();
|
||||||
}
|
}
|
||||||
catch (IOException)
|
catch (IOException)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -514,6 +514,14 @@ namespace SabreTools
|
|||||||
case "--rem-sha256":
|
case "--rem-sha256":
|
||||||
stripHash |= Hash.SHA256;
|
stripHash |= Hash.SHA256;
|
||||||
break;
|
break;
|
||||||
|
case "-rsha384":
|
||||||
|
case "--rem-sha384":
|
||||||
|
stripHash |= Hash.SHA384;
|
||||||
|
break;
|
||||||
|
case "-rsha512":
|
||||||
|
case "--rem-sha512":
|
||||||
|
stripHash |= Hash.SHA512;
|
||||||
|
break;
|
||||||
case "-run":
|
case "-run":
|
||||||
case "--runnable":
|
case "--runnable":
|
||||||
filter.Runnable = true;
|
filter.Runnable = true;
|
||||||
|
|||||||
Reference in New Issue
Block a user