mirror of
https://github.com/aaru-dps/Aaru.git
synced 2025-12-16 19:24:25 +00:00
🐛Moved checksums to interface.
This commit is contained in:
1
.idea/.idea.DiscImageChef/.idea/contentModel.xml
generated
1
.idea/.idea.DiscImageChef/.idea/contentModel.xml
generated
@@ -58,6 +58,7 @@
|
|||||||
<e p="CRC64Context.cs" t="Include" />
|
<e p="CRC64Context.cs" t="Include" />
|
||||||
<e p="DiscImageChef.Checksums.csproj" t="IncludeRecursive" />
|
<e p="DiscImageChef.Checksums.csproj" t="IncludeRecursive" />
|
||||||
<e p="FletcherContext.cs" t="Include" />
|
<e p="FletcherContext.cs" t="Include" />
|
||||||
|
<e p="IChecksum.cs" t="Include" />
|
||||||
<e p="MD5Context.cs" t="Include" />
|
<e p="MD5Context.cs" t="Include" />
|
||||||
<e p="Properties" t="Include">
|
<e p="Properties" t="Include">
|
||||||
<e p="AssemblyInfo.cs" t="Include" />
|
<e p="AssemblyInfo.cs" t="Include" />
|
||||||
|
|||||||
@@ -39,7 +39,7 @@ namespace DiscImageChef.Checksums
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// Implements the Adler-32 algorithm
|
/// Implements the Adler-32 algorithm
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public class Adler32Context
|
public class Adler32Context : IChecksum
|
||||||
{
|
{
|
||||||
const ushort ADLER_MODULE = 65521;
|
const ushort ADLER_MODULE = 65521;
|
||||||
ushort sum1, sum2;
|
ushort sum1, sum2;
|
||||||
|
|||||||
@@ -39,7 +39,7 @@ namespace DiscImageChef.Checksums
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// Implements a CRC16-CCITT algorithm
|
/// Implements a CRC16-CCITT algorithm
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public class Crc16Context
|
public class Crc16Context : IChecksum
|
||||||
{
|
{
|
||||||
const ushort CRC16_POLY = 0xA001;
|
const ushort CRC16_POLY = 0xA001;
|
||||||
const ushort CRC16_SEED = 0x0000;
|
const ushort CRC16_SEED = 0x0000;
|
||||||
|
|||||||
@@ -39,7 +39,7 @@ namespace DiscImageChef.Checksums
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// Implements a CRC32 algorithm
|
/// Implements a CRC32 algorithm
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public class Crc32Context
|
public class Crc32Context : IChecksum
|
||||||
{
|
{
|
||||||
const uint CRC32_POLY = 0xEDB88320;
|
const uint CRC32_POLY = 0xEDB88320;
|
||||||
const uint CRC32_SEED = 0xFFFFFFFF;
|
const uint CRC32_SEED = 0xFFFFFFFF;
|
||||||
|
|||||||
@@ -39,7 +39,7 @@ namespace DiscImageChef.Checksums
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// Implements a CRC64 (ECMA) algorithm
|
/// Implements a CRC64 (ECMA) algorithm
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public class Crc64Context
|
public class Crc64Context : IChecksum
|
||||||
{
|
{
|
||||||
const ulong CRC64_POLY = 0xC96C5795D7870F42;
|
const ulong CRC64_POLY = 0xC96C5795D7870F42;
|
||||||
const ulong CRC64_SEED = 0xFFFFFFFFFFFFFFFF;
|
const ulong CRC64_SEED = 0xFFFFFFFFFFFFFFFF;
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||||
@@ -34,6 +34,7 @@
|
|||||||
<Reference Include="System" />
|
<Reference Include="System" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
<Compile Include="IChecksum.cs" />
|
||||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||||
<Compile Include="SpamSumContext.cs" />
|
<Compile Include="SpamSumContext.cs" />
|
||||||
<Compile Include="Adler32Context.cs" />
|
<Compile Include="Adler32Context.cs" />
|
||||||
|
|||||||
@@ -31,14 +31,14 @@
|
|||||||
// ****************************************************************************/
|
// ****************************************************************************/
|
||||||
|
|
||||||
// Disabled because the speed is abnormally slow
|
// Disabled because the speed is abnormally slow
|
||||||
/*
|
|
||||||
using System;
|
using System;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
|
|
||||||
namespace DiscImageChef.Checksums
|
namespace DiscImageChef.Checksums
|
||||||
{
|
{
|
||||||
public class Fletcher32Context
|
public class Fletcher32Context : IChecksum
|
||||||
{
|
{
|
||||||
bool inodd;
|
bool inodd;
|
||||||
byte oddValue;
|
byte oddValue;
|
||||||
@@ -423,4 +423,4 @@ namespace DiscImageChef.Checksums
|
|||||||
return Data(data, (uint)data.Length, out hash);
|
return Data(data, (uint)data.Length, out hash);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}*/
|
}
|
||||||
65
DiscImageChef.Checksums/IChecksum.cs
Normal file
65
DiscImageChef.Checksums/IChecksum.cs
Normal file
@@ -0,0 +1,65 @@
|
|||||||
|
// /***************************************************************************
|
||||||
|
// The Disc Image Chef
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// Filename : IChecksum.cs
|
||||||
|
// Author(s) : Natalia Portillo <claunia@claunia.com>
|
||||||
|
//
|
||||||
|
// Component : Checksums.
|
||||||
|
//
|
||||||
|
// --[ Description ] ----------------------------------------------------------
|
||||||
|
//
|
||||||
|
// Provides an interface for implementing checksums and hashes.
|
||||||
|
//
|
||||||
|
// --[ License ] --------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// This library is free software; you can redistribute it and/or modify
|
||||||
|
// it under the terms of the GNU Lesser General Public License as
|
||||||
|
// published by the Free Software Foundation; either version 2.1 of the
|
||||||
|
// License, or (at your option) any later version.
|
||||||
|
//
|
||||||
|
// This library is distributed in the hope that it will be useful, but
|
||||||
|
// WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
// Lesser General Public License for more details.
|
||||||
|
//
|
||||||
|
// You should have received a copy of the GNU Lesser General Public
|
||||||
|
// License along with this library; if not, see <http://www.gnu.org/licenses/>.
|
||||||
|
//
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
// Copyright © 2011-2018 Natalia Portillo
|
||||||
|
// ****************************************************************************/
|
||||||
|
|
||||||
|
namespace DiscImageChef.Checksums
|
||||||
|
{
|
||||||
|
public interface IChecksum
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Initializes the algorithm
|
||||||
|
/// </summary>
|
||||||
|
void Init();
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Updates the hash with data.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="data">Data buffer.</param>
|
||||||
|
/// <param name="len">Length of buffer to hash.</param>
|
||||||
|
void Update(byte[] data, uint len);
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Updates the hash with data.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="data">Data buffer.</param>
|
||||||
|
void Update(byte[] data);
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Returns a byte array of the hash value.
|
||||||
|
/// </summary>
|
||||||
|
byte[] Final();
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Returns a hexadecimal representation of the hash value.
|
||||||
|
/// </summary>
|
||||||
|
string End();
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -39,7 +39,7 @@ namespace DiscImageChef.Checksums
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// Wraps up .NET MD5 implementation to a Init(), Update(), Final() context.
|
/// Wraps up .NET MD5 implementation to a Init(), Update(), Final() context.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public class Md5Context
|
public class Md5Context : IChecksum
|
||||||
{
|
{
|
||||||
MD5 md5Provider;
|
MD5 md5Provider;
|
||||||
|
|
||||||
|
|||||||
@@ -39,7 +39,7 @@ namespace DiscImageChef.Checksums
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// Wraps up .NET RIPEMD160 implementation to a Init(), Update(), Final() context.
|
/// Wraps up .NET RIPEMD160 implementation to a Init(), Update(), Final() context.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public class Ripemd160Context
|
public class Ripemd160Context : IChecksum
|
||||||
{
|
{
|
||||||
RIPEMD160 ripemd160Provider;
|
RIPEMD160 ripemd160Provider;
|
||||||
|
|
||||||
|
|||||||
@@ -39,7 +39,7 @@ namespace DiscImageChef.Checksums
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// Wraps up .NET SHA1 implementation to a Init(), Update(), Final() context.
|
/// Wraps up .NET SHA1 implementation to a Init(), Update(), Final() context.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public class Sha1Context
|
public class Sha1Context : IChecksum
|
||||||
{
|
{
|
||||||
SHA1 sha1Provider;
|
SHA1 sha1Provider;
|
||||||
|
|
||||||
|
|||||||
@@ -39,7 +39,7 @@ namespace DiscImageChef.Checksums
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// Wraps up .NET SHA256 implementation to a Init(), Update(), Final() context.
|
/// Wraps up .NET SHA256 implementation to a Init(), Update(), Final() context.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public class Sha256Context
|
public class Sha256Context : IChecksum
|
||||||
{
|
{
|
||||||
SHA256 sha256Provider;
|
SHA256 sha256Provider;
|
||||||
|
|
||||||
|
|||||||
@@ -39,7 +39,7 @@ namespace DiscImageChef.Checksums
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// Wraps up .NET SHA384 implementation to a Init(), Update(), Final() context.
|
/// Wraps up .NET SHA384 implementation to a Init(), Update(), Final() context.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public class Sha384Context
|
public class Sha384Context : IChecksum
|
||||||
{
|
{
|
||||||
SHA384 sha384Provider;
|
SHA384 sha384Provider;
|
||||||
|
|
||||||
|
|||||||
@@ -39,7 +39,7 @@ namespace DiscImageChef.Checksums
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// Wraps up .NET SHA512 implementation to a Init(), Update(), Final() context.
|
/// Wraps up .NET SHA512 implementation to a Init(), Update(), Final() context.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public class Sha512Context
|
public class Sha512Context : IChecksum
|
||||||
{
|
{
|
||||||
SHA512 sha512Provider;
|
SHA512 sha512Provider;
|
||||||
|
|
||||||
|
|||||||
@@ -47,7 +47,7 @@ namespace DiscImageChef.Checksums
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// Implements the SpamSum fuzzy hashing algorithm.
|
/// Implements the SpamSum fuzzy hashing algorithm.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public class SpamSumContext
|
public class SpamSumContext : IChecksum
|
||||||
{
|
{
|
||||||
const uint ROLLING_WINDOW = 7;
|
const uint ROLLING_WINDOW = 7;
|
||||||
const uint MIN_BLOCKSIZE = 3;
|
const uint MIN_BLOCKSIZE = 3;
|
||||||
|
|||||||
@@ -139,8 +139,8 @@ namespace DiscImageChef.Core
|
|||||||
results.ReadSpeed = bufferSize / 1048576.0 / (end - start).TotalSeconds;
|
results.ReadSpeed = bufferSize / 1048576.0 / (end - start).TotalSeconds;
|
||||||
|
|
||||||
#region Adler32
|
#region Adler32
|
||||||
object ctx = new Adler32Context();
|
IChecksum ctx = new Adler32Context();
|
||||||
((Adler32Context)ctx).Init();
|
ctx.Init();
|
||||||
ms.Seek(0, SeekOrigin.Begin);
|
ms.Seek(0, SeekOrigin.Begin);
|
||||||
mem = GC.GetTotalMemory(false);
|
mem = GC.GetTotalMemory(false);
|
||||||
if(mem > results.MaxMemory) results.MaxMemory = mem;
|
if(mem > results.MaxMemory) results.MaxMemory = mem;
|
||||||
@@ -152,11 +152,11 @@ namespace DiscImageChef.Core
|
|||||||
UpdateProgress("Checksumming block {0} of {1} with Adler32.", i + 1, bufferSize / blockSize);
|
UpdateProgress("Checksumming block {0} of {1} with Adler32.", i + 1, bufferSize / blockSize);
|
||||||
byte[] tmp = new byte[blockSize];
|
byte[] tmp = new byte[blockSize];
|
||||||
ms.Read(tmp, 0, blockSize);
|
ms.Read(tmp, 0, blockSize);
|
||||||
((Adler32Context)ctx).Update(tmp);
|
ctx.Update(tmp);
|
||||||
}
|
}
|
||||||
|
|
||||||
EndProgress();
|
EndProgress();
|
||||||
((Adler32Context)ctx).End();
|
ctx.End();
|
||||||
end = DateTime.Now;
|
end = DateTime.Now;
|
||||||
mem = GC.GetTotalMemory(false);
|
mem = GC.GetTotalMemory(false);
|
||||||
if(mem > results.MaxMemory) results.MaxMemory = mem;
|
if(mem > results.MaxMemory) results.MaxMemory = mem;
|
||||||
@@ -173,7 +173,7 @@ namespace DiscImageChef.Core
|
|||||||
|
|
||||||
#region CRC16
|
#region CRC16
|
||||||
ctx = new Crc16Context();
|
ctx = new Crc16Context();
|
||||||
((Crc16Context)ctx).Init();
|
ctx.Init();
|
||||||
ms.Seek(0, SeekOrigin.Begin);
|
ms.Seek(0, SeekOrigin.Begin);
|
||||||
mem = GC.GetTotalMemory(false);
|
mem = GC.GetTotalMemory(false);
|
||||||
if(mem > results.MaxMemory) results.MaxMemory = mem;
|
if(mem > results.MaxMemory) results.MaxMemory = mem;
|
||||||
@@ -185,11 +185,11 @@ namespace DiscImageChef.Core
|
|||||||
UpdateProgress("Checksumming block {0} of {1} with CRC16.", i + 1, bufferSize / blockSize);
|
UpdateProgress("Checksumming block {0} of {1} with CRC16.", i + 1, bufferSize / blockSize);
|
||||||
byte[] tmp = new byte[blockSize];
|
byte[] tmp = new byte[blockSize];
|
||||||
ms.Read(tmp, 0, blockSize);
|
ms.Read(tmp, 0, blockSize);
|
||||||
((Crc16Context)ctx).Update(tmp);
|
ctx.Update(tmp);
|
||||||
}
|
}
|
||||||
|
|
||||||
EndProgress();
|
EndProgress();
|
||||||
((Crc16Context)ctx).End();
|
ctx.End();
|
||||||
end = DateTime.Now;
|
end = DateTime.Now;
|
||||||
mem = GC.GetTotalMemory(false);
|
mem = GC.GetTotalMemory(false);
|
||||||
if(mem > results.MaxMemory) results.MaxMemory = mem;
|
if(mem > results.MaxMemory) results.MaxMemory = mem;
|
||||||
@@ -206,7 +206,7 @@ namespace DiscImageChef.Core
|
|||||||
|
|
||||||
#region CRC32
|
#region CRC32
|
||||||
ctx = new Crc32Context();
|
ctx = new Crc32Context();
|
||||||
((Crc32Context)ctx).Init();
|
ctx.Init();
|
||||||
ms.Seek(0, SeekOrigin.Begin);
|
ms.Seek(0, SeekOrigin.Begin);
|
||||||
mem = GC.GetTotalMemory(false);
|
mem = GC.GetTotalMemory(false);
|
||||||
if(mem > results.MaxMemory) results.MaxMemory = mem;
|
if(mem > results.MaxMemory) results.MaxMemory = mem;
|
||||||
@@ -218,11 +218,11 @@ namespace DiscImageChef.Core
|
|||||||
UpdateProgress("Checksumming block {0} of {1} with CRC32.", i + 1, bufferSize / blockSize);
|
UpdateProgress("Checksumming block {0} of {1} with CRC32.", i + 1, bufferSize / blockSize);
|
||||||
byte[] tmp = new byte[blockSize];
|
byte[] tmp = new byte[blockSize];
|
||||||
ms.Read(tmp, 0, blockSize);
|
ms.Read(tmp, 0, blockSize);
|
||||||
((Crc32Context)ctx).Update(tmp);
|
ctx.Update(tmp);
|
||||||
}
|
}
|
||||||
|
|
||||||
EndProgress();
|
EndProgress();
|
||||||
((Crc32Context)ctx).End();
|
ctx.End();
|
||||||
end = DateTime.Now;
|
end = DateTime.Now;
|
||||||
mem = GC.GetTotalMemory(false);
|
mem = GC.GetTotalMemory(false);
|
||||||
if(mem > results.MaxMemory) results.MaxMemory = mem;
|
if(mem > results.MaxMemory) results.MaxMemory = mem;
|
||||||
@@ -239,7 +239,7 @@ namespace DiscImageChef.Core
|
|||||||
|
|
||||||
#region CRC64
|
#region CRC64
|
||||||
ctx = new Crc64Context();
|
ctx = new Crc64Context();
|
||||||
((Crc64Context)ctx).Init();
|
ctx.Init();
|
||||||
ms.Seek(0, SeekOrigin.Begin);
|
ms.Seek(0, SeekOrigin.Begin);
|
||||||
mem = GC.GetTotalMemory(false);
|
mem = GC.GetTotalMemory(false);
|
||||||
if(mem > results.MaxMemory) results.MaxMemory = mem;
|
if(mem > results.MaxMemory) results.MaxMemory = mem;
|
||||||
@@ -251,11 +251,11 @@ namespace DiscImageChef.Core
|
|||||||
UpdateProgress("Checksumming block {0} of {1} with CRC64.", i + 1, bufferSize / blockSize);
|
UpdateProgress("Checksumming block {0} of {1} with CRC64.", i + 1, bufferSize / blockSize);
|
||||||
byte[] tmp = new byte[blockSize];
|
byte[] tmp = new byte[blockSize];
|
||||||
ms.Read(tmp, 0, blockSize);
|
ms.Read(tmp, 0, blockSize);
|
||||||
((Crc64Context)ctx).Update(tmp);
|
ctx.Update(tmp);
|
||||||
}
|
}
|
||||||
|
|
||||||
EndProgress();
|
EndProgress();
|
||||||
((Crc64Context)ctx).End();
|
ctx.End();
|
||||||
end = DateTime.Now;
|
end = DateTime.Now;
|
||||||
mem = GC.GetTotalMemory(false);
|
mem = GC.GetTotalMemory(false);
|
||||||
if(mem > results.MaxMemory) results.MaxMemory = mem;
|
if(mem > results.MaxMemory) results.MaxMemory = mem;
|
||||||
@@ -272,7 +272,7 @@ namespace DiscImageChef.Core
|
|||||||
|
|
||||||
#region MD5
|
#region MD5
|
||||||
ctx = new Md5Context();
|
ctx = new Md5Context();
|
||||||
((Md5Context)ctx).Init();
|
ctx.Init();
|
||||||
ms.Seek(0, SeekOrigin.Begin);
|
ms.Seek(0, SeekOrigin.Begin);
|
||||||
mem = GC.GetTotalMemory(false);
|
mem = GC.GetTotalMemory(false);
|
||||||
if(mem > results.MaxMemory) results.MaxMemory = mem;
|
if(mem > results.MaxMemory) results.MaxMemory = mem;
|
||||||
@@ -284,11 +284,11 @@ namespace DiscImageChef.Core
|
|||||||
UpdateProgress("Checksumming block {0} of {1} with MD5.", i + 1, bufferSize / blockSize);
|
UpdateProgress("Checksumming block {0} of {1} with MD5.", i + 1, bufferSize / blockSize);
|
||||||
byte[] tmp = new byte[blockSize];
|
byte[] tmp = new byte[blockSize];
|
||||||
ms.Read(tmp, 0, blockSize);
|
ms.Read(tmp, 0, blockSize);
|
||||||
((Md5Context)ctx).Update(tmp);
|
ctx.Update(tmp);
|
||||||
}
|
}
|
||||||
|
|
||||||
EndProgress();
|
EndProgress();
|
||||||
((Md5Context)ctx).End();
|
ctx.End();
|
||||||
end = DateTime.Now;
|
end = DateTime.Now;
|
||||||
mem = GC.GetTotalMemory(false);
|
mem = GC.GetTotalMemory(false);
|
||||||
if(mem > results.MaxMemory) results.MaxMemory = mem;
|
if(mem > results.MaxMemory) results.MaxMemory = mem;
|
||||||
@@ -305,7 +305,7 @@ namespace DiscImageChef.Core
|
|||||||
|
|
||||||
#region RIPEMD160
|
#region RIPEMD160
|
||||||
ctx = new Ripemd160Context();
|
ctx = new Ripemd160Context();
|
||||||
((Ripemd160Context)ctx).Init();
|
ctx.Init();
|
||||||
ms.Seek(0, SeekOrigin.Begin);
|
ms.Seek(0, SeekOrigin.Begin);
|
||||||
mem = GC.GetTotalMemory(false);
|
mem = GC.GetTotalMemory(false);
|
||||||
if(mem > results.MaxMemory) results.MaxMemory = mem;
|
if(mem > results.MaxMemory) results.MaxMemory = mem;
|
||||||
@@ -317,11 +317,11 @@ namespace DiscImageChef.Core
|
|||||||
UpdateProgress("Checksumming block {0} of {1} with RIPEMD160.", i + 1, bufferSize / blockSize);
|
UpdateProgress("Checksumming block {0} of {1} with RIPEMD160.", i + 1, bufferSize / blockSize);
|
||||||
byte[] tmp = new byte[blockSize];
|
byte[] tmp = new byte[blockSize];
|
||||||
ms.Read(tmp, 0, blockSize);
|
ms.Read(tmp, 0, blockSize);
|
||||||
((Ripemd160Context)ctx).Update(tmp);
|
ctx.Update(tmp);
|
||||||
}
|
}
|
||||||
|
|
||||||
EndProgress();
|
EndProgress();
|
||||||
((Ripemd160Context)ctx).End();
|
ctx.End();
|
||||||
end = DateTime.Now;
|
end = DateTime.Now;
|
||||||
mem = GC.GetTotalMemory(false);
|
mem = GC.GetTotalMemory(false);
|
||||||
if(mem > results.MaxMemory) results.MaxMemory = mem;
|
if(mem > results.MaxMemory) results.MaxMemory = mem;
|
||||||
@@ -338,7 +338,7 @@ namespace DiscImageChef.Core
|
|||||||
|
|
||||||
#region SHA1
|
#region SHA1
|
||||||
ctx = new Sha1Context();
|
ctx = new Sha1Context();
|
||||||
((Sha1Context)ctx).Init();
|
ctx.Init();
|
||||||
ms.Seek(0, SeekOrigin.Begin);
|
ms.Seek(0, SeekOrigin.Begin);
|
||||||
mem = GC.GetTotalMemory(false);
|
mem = GC.GetTotalMemory(false);
|
||||||
if(mem > results.MaxMemory) results.MaxMemory = mem;
|
if(mem > results.MaxMemory) results.MaxMemory = mem;
|
||||||
@@ -350,11 +350,11 @@ namespace DiscImageChef.Core
|
|||||||
UpdateProgress("Checksumming block {0} of {1} with SHA1.", i + 1, bufferSize / blockSize);
|
UpdateProgress("Checksumming block {0} of {1} with SHA1.", i + 1, bufferSize / blockSize);
|
||||||
byte[] tmp = new byte[blockSize];
|
byte[] tmp = new byte[blockSize];
|
||||||
ms.Read(tmp, 0, blockSize);
|
ms.Read(tmp, 0, blockSize);
|
||||||
((Sha1Context)ctx).Update(tmp);
|
ctx.Update(tmp);
|
||||||
}
|
}
|
||||||
|
|
||||||
EndProgress();
|
EndProgress();
|
||||||
((Sha1Context)ctx).End();
|
ctx.End();
|
||||||
end = DateTime.Now;
|
end = DateTime.Now;
|
||||||
mem = GC.GetTotalMemory(false);
|
mem = GC.GetTotalMemory(false);
|
||||||
if(mem > results.MaxMemory) results.MaxMemory = mem;
|
if(mem > results.MaxMemory) results.MaxMemory = mem;
|
||||||
@@ -371,7 +371,7 @@ namespace DiscImageChef.Core
|
|||||||
|
|
||||||
#region SHA256
|
#region SHA256
|
||||||
ctx = new Sha256Context();
|
ctx = new Sha256Context();
|
||||||
((Sha256Context)ctx).Init();
|
ctx.Init();
|
||||||
ms.Seek(0, SeekOrigin.Begin);
|
ms.Seek(0, SeekOrigin.Begin);
|
||||||
mem = GC.GetTotalMemory(false);
|
mem = GC.GetTotalMemory(false);
|
||||||
if(mem > results.MaxMemory) results.MaxMemory = mem;
|
if(mem > results.MaxMemory) results.MaxMemory = mem;
|
||||||
@@ -383,11 +383,11 @@ namespace DiscImageChef.Core
|
|||||||
UpdateProgress("Checksumming block {0} of {1} with SHA256.", i + 1, bufferSize / blockSize);
|
UpdateProgress("Checksumming block {0} of {1} with SHA256.", i + 1, bufferSize / blockSize);
|
||||||
byte[] tmp = new byte[blockSize];
|
byte[] tmp = new byte[blockSize];
|
||||||
ms.Read(tmp, 0, blockSize);
|
ms.Read(tmp, 0, blockSize);
|
||||||
((Sha256Context)ctx).Update(tmp);
|
ctx.Update(tmp);
|
||||||
}
|
}
|
||||||
|
|
||||||
EndProgress();
|
EndProgress();
|
||||||
((Sha256Context)ctx).End();
|
ctx.End();
|
||||||
end = DateTime.Now;
|
end = DateTime.Now;
|
||||||
mem = GC.GetTotalMemory(false);
|
mem = GC.GetTotalMemory(false);
|
||||||
if(mem > results.MaxMemory) results.MaxMemory = mem;
|
if(mem > results.MaxMemory) results.MaxMemory = mem;
|
||||||
@@ -404,7 +404,7 @@ namespace DiscImageChef.Core
|
|||||||
|
|
||||||
#region SHA384
|
#region SHA384
|
||||||
ctx = new Sha384Context();
|
ctx = new Sha384Context();
|
||||||
((Sha384Context)ctx).Init();
|
ctx.Init();
|
||||||
ms.Seek(0, SeekOrigin.Begin);
|
ms.Seek(0, SeekOrigin.Begin);
|
||||||
mem = GC.GetTotalMemory(false);
|
mem = GC.GetTotalMemory(false);
|
||||||
if(mem > results.MaxMemory) results.MaxMemory = mem;
|
if(mem > results.MaxMemory) results.MaxMemory = mem;
|
||||||
@@ -416,11 +416,11 @@ namespace DiscImageChef.Core
|
|||||||
UpdateProgress("Checksumming block {0} of {1} with SHA384.", i + 1, bufferSize / blockSize);
|
UpdateProgress("Checksumming block {0} of {1} with SHA384.", i + 1, bufferSize / blockSize);
|
||||||
byte[] tmp = new byte[blockSize];
|
byte[] tmp = new byte[blockSize];
|
||||||
ms.Read(tmp, 0, blockSize);
|
ms.Read(tmp, 0, blockSize);
|
||||||
((Sha384Context)ctx).Update(tmp);
|
ctx.Update(tmp);
|
||||||
}
|
}
|
||||||
|
|
||||||
EndProgress();
|
EndProgress();
|
||||||
((Sha384Context)ctx).End();
|
ctx.End();
|
||||||
end = DateTime.Now;
|
end = DateTime.Now;
|
||||||
mem = GC.GetTotalMemory(false);
|
mem = GC.GetTotalMemory(false);
|
||||||
if(mem > results.MaxMemory) results.MaxMemory = mem;
|
if(mem > results.MaxMemory) results.MaxMemory = mem;
|
||||||
@@ -437,7 +437,7 @@ namespace DiscImageChef.Core
|
|||||||
|
|
||||||
#region SHA512
|
#region SHA512
|
||||||
ctx = new Sha512Context();
|
ctx = new Sha512Context();
|
||||||
((Sha512Context)ctx).Init();
|
ctx.Init();
|
||||||
ms.Seek(0, SeekOrigin.Begin);
|
ms.Seek(0, SeekOrigin.Begin);
|
||||||
mem = GC.GetTotalMemory(false);
|
mem = GC.GetTotalMemory(false);
|
||||||
if(mem > results.MaxMemory) results.MaxMemory = mem;
|
if(mem > results.MaxMemory) results.MaxMemory = mem;
|
||||||
@@ -449,11 +449,11 @@ namespace DiscImageChef.Core
|
|||||||
UpdateProgress("Checksumming block {0} of {1} with SHA512.", i + 1, bufferSize / blockSize);
|
UpdateProgress("Checksumming block {0} of {1} with SHA512.", i + 1, bufferSize / blockSize);
|
||||||
byte[] tmp = new byte[blockSize];
|
byte[] tmp = new byte[blockSize];
|
||||||
ms.Read(tmp, 0, blockSize);
|
ms.Read(tmp, 0, blockSize);
|
||||||
((Sha512Context)ctx).Update(tmp);
|
ctx.Update(tmp);
|
||||||
}
|
}
|
||||||
|
|
||||||
EndProgress();
|
EndProgress();
|
||||||
((Sha512Context)ctx).End();
|
ctx.End();
|
||||||
end = DateTime.Now;
|
end = DateTime.Now;
|
||||||
mem = GC.GetTotalMemory(false);
|
mem = GC.GetTotalMemory(false);
|
||||||
if(mem > results.MaxMemory) results.MaxMemory = mem;
|
if(mem > results.MaxMemory) results.MaxMemory = mem;
|
||||||
@@ -470,7 +470,7 @@ namespace DiscImageChef.Core
|
|||||||
|
|
||||||
#region SpamSum
|
#region SpamSum
|
||||||
ctx = new SpamSumContext();
|
ctx = new SpamSumContext();
|
||||||
((SpamSumContext)ctx).Init();
|
ctx.Init();
|
||||||
ms.Seek(0, SeekOrigin.Begin);
|
ms.Seek(0, SeekOrigin.Begin);
|
||||||
mem = GC.GetTotalMemory(false);
|
mem = GC.GetTotalMemory(false);
|
||||||
if(mem > results.MaxMemory) results.MaxMemory = mem;
|
if(mem > results.MaxMemory) results.MaxMemory = mem;
|
||||||
@@ -482,11 +482,11 @@ namespace DiscImageChef.Core
|
|||||||
UpdateProgress("Checksumming block {0} of {1} with SpamSum.", i + 1, bufferSize / blockSize);
|
UpdateProgress("Checksumming block {0} of {1} with SpamSum.", i + 1, bufferSize / blockSize);
|
||||||
byte[] tmp = new byte[blockSize];
|
byte[] tmp = new byte[blockSize];
|
||||||
ms.Read(tmp, 0, blockSize);
|
ms.Read(tmp, 0, blockSize);
|
||||||
((SpamSumContext)ctx).Update(tmp);
|
ctx.Update(tmp);
|
||||||
}
|
}
|
||||||
|
|
||||||
EndProgress();
|
EndProgress();
|
||||||
((SpamSumContext)ctx).End();
|
ctx.End();
|
||||||
end = DateTime.Now;
|
end = DateTime.Now;
|
||||||
mem = GC.GetTotalMemory(false);
|
mem = GC.GetTotalMemory(false);
|
||||||
if(mem > results.MaxMemory) results.MaxMemory = mem;
|
if(mem > results.MaxMemory) results.MaxMemory = mem;
|
||||||
|
|||||||
@@ -60,40 +60,40 @@ namespace DiscImageChef.Core
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public class Checksum
|
public class Checksum
|
||||||
{
|
{
|
||||||
Adler32Context adler32Ctx;
|
IChecksum adler32Ctx;
|
||||||
AdlerPacket adlerPkt;
|
HashPacket adlerPkt;
|
||||||
Thread adlerThread;
|
Thread adlerThread;
|
||||||
Crc16Context crc16Ctx;
|
IChecksum crc16Ctx;
|
||||||
Crc16Packet crc16Pkt;
|
HashPacket crc16Pkt;
|
||||||
Thread crc16Thread;
|
Thread crc16Thread;
|
||||||
Crc32Context crc32Ctx;
|
IChecksum crc32Ctx;
|
||||||
Crc32Packet crc32Pkt;
|
HashPacket crc32Pkt;
|
||||||
Thread crc32Thread;
|
Thread crc32Thread;
|
||||||
Crc64Context crc64Ctx;
|
IChecksum crc64Ctx;
|
||||||
Crc64Packet crc64Pkt;
|
HashPacket crc64Pkt;
|
||||||
Thread crc64Thread;
|
Thread crc64Thread;
|
||||||
EnableChecksum enabled;
|
EnableChecksum enabled;
|
||||||
Md5Context md5Ctx;
|
IChecksum md5Ctx;
|
||||||
Md5Packet md5Pkt;
|
HashPacket md5Pkt;
|
||||||
Thread md5Thread;
|
Thread md5Thread;
|
||||||
Ripemd160Context ripemd160Ctx;
|
IChecksum ripemd160Ctx;
|
||||||
Ripemd160Packet ripemd160Pkt;
|
HashPacket ripemd160Pkt;
|
||||||
Thread ripemd160Thread;
|
Thread ripemd160Thread;
|
||||||
Sha1Context sha1Ctx;
|
IChecksum sha1Ctx;
|
||||||
Sha1Packet sha1Pkt;
|
HashPacket sha1Pkt;
|
||||||
Thread sha1Thread;
|
Thread sha1Thread;
|
||||||
Sha256Context sha256Ctx;
|
IChecksum sha256Ctx;
|
||||||
Sha256Packet sha256Pkt;
|
HashPacket sha256Pkt;
|
||||||
Thread sha256Thread;
|
Thread sha256Thread;
|
||||||
Sha384Context sha384Ctx;
|
IChecksum sha384Ctx;
|
||||||
Sha384Packet sha384Pkt;
|
HashPacket sha384Pkt;
|
||||||
Thread sha384Thread;
|
Thread sha384Thread;
|
||||||
Sha512Context sha512Ctx;
|
IChecksum sha512Ctx;
|
||||||
Sha512Packet sha512Pkt;
|
HashPacket sha512Pkt;
|
||||||
Thread sha512Thread;
|
Thread sha512Thread;
|
||||||
SpamsumPacket spamsumPkt;
|
HashPacket spamsumPkt;
|
||||||
Thread spamsumThread;
|
Thread spamsumThread;
|
||||||
SpamSumContext ssctx;
|
IChecksum ssctx;
|
||||||
|
|
||||||
public Checksum(EnableChecksum enabled = EnableChecksum.All)
|
public Checksum(EnableChecksum enabled = EnableChecksum.All)
|
||||||
{
|
{
|
||||||
@@ -102,7 +102,7 @@ namespace DiscImageChef.Core
|
|||||||
if(enabled.HasFlag(EnableChecksum.Adler32))
|
if(enabled.HasFlag(EnableChecksum.Adler32))
|
||||||
{
|
{
|
||||||
adler32Ctx = new Adler32Context();
|
adler32Ctx = new Adler32Context();
|
||||||
adlerPkt = new AdlerPacket();
|
adlerPkt = new HashPacket();
|
||||||
adler32Ctx.Init();
|
adler32Ctx.Init();
|
||||||
adlerPkt.Context = adler32Ctx;
|
adlerPkt.Context = adler32Ctx;
|
||||||
}
|
}
|
||||||
@@ -110,7 +110,7 @@ namespace DiscImageChef.Core
|
|||||||
if(enabled.HasFlag(EnableChecksum.Crc16))
|
if(enabled.HasFlag(EnableChecksum.Crc16))
|
||||||
{
|
{
|
||||||
crc16Ctx = new Crc16Context();
|
crc16Ctx = new Crc16Context();
|
||||||
crc16Pkt = new Crc16Packet();
|
crc16Pkt = new HashPacket();
|
||||||
crc16Ctx.Init();
|
crc16Ctx.Init();
|
||||||
crc16Pkt.Context = crc16Ctx;
|
crc16Pkt.Context = crc16Ctx;
|
||||||
}
|
}
|
||||||
@@ -118,7 +118,7 @@ namespace DiscImageChef.Core
|
|||||||
if(enabled.HasFlag(EnableChecksum.Crc32))
|
if(enabled.HasFlag(EnableChecksum.Crc32))
|
||||||
{
|
{
|
||||||
crc32Ctx = new Crc32Context();
|
crc32Ctx = new Crc32Context();
|
||||||
crc32Pkt = new Crc32Packet();
|
crc32Pkt = new HashPacket();
|
||||||
crc32Ctx.Init();
|
crc32Ctx.Init();
|
||||||
crc32Pkt.Context = crc32Ctx;
|
crc32Pkt.Context = crc32Ctx;
|
||||||
}
|
}
|
||||||
@@ -126,7 +126,7 @@ namespace DiscImageChef.Core
|
|||||||
if(enabled.HasFlag(EnableChecksum.Crc64))
|
if(enabled.HasFlag(EnableChecksum.Crc64))
|
||||||
{
|
{
|
||||||
crc64Ctx = new Crc64Context();
|
crc64Ctx = new Crc64Context();
|
||||||
crc64Pkt = new Crc64Packet();
|
crc64Pkt = new HashPacket();
|
||||||
crc64Ctx.Init();
|
crc64Ctx.Init();
|
||||||
crc64Pkt.Context = crc64Ctx;
|
crc64Pkt.Context = crc64Ctx;
|
||||||
}
|
}
|
||||||
@@ -134,7 +134,7 @@ namespace DiscImageChef.Core
|
|||||||
if(enabled.HasFlag(EnableChecksum.Md5))
|
if(enabled.HasFlag(EnableChecksum.Md5))
|
||||||
{
|
{
|
||||||
md5Ctx = new Md5Context();
|
md5Ctx = new Md5Context();
|
||||||
md5Pkt = new Md5Packet();
|
md5Pkt = new HashPacket();
|
||||||
md5Ctx.Init();
|
md5Ctx.Init();
|
||||||
md5Pkt.Context = md5Ctx;
|
md5Pkt.Context = md5Ctx;
|
||||||
}
|
}
|
||||||
@@ -142,7 +142,7 @@ namespace DiscImageChef.Core
|
|||||||
if(enabled.HasFlag(EnableChecksum.Ripemd160))
|
if(enabled.HasFlag(EnableChecksum.Ripemd160))
|
||||||
{
|
{
|
||||||
ripemd160Ctx = new Ripemd160Context();
|
ripemd160Ctx = new Ripemd160Context();
|
||||||
ripemd160Pkt = new Ripemd160Packet();
|
ripemd160Pkt = new HashPacket();
|
||||||
ripemd160Ctx.Init();
|
ripemd160Ctx.Init();
|
||||||
ripemd160Pkt.Context = ripemd160Ctx;
|
ripemd160Pkt.Context = ripemd160Ctx;
|
||||||
}
|
}
|
||||||
@@ -150,7 +150,7 @@ namespace DiscImageChef.Core
|
|||||||
if(enabled.HasFlag(EnableChecksum.Sha1))
|
if(enabled.HasFlag(EnableChecksum.Sha1))
|
||||||
{
|
{
|
||||||
sha1Ctx = new Sha1Context();
|
sha1Ctx = new Sha1Context();
|
||||||
sha1Pkt = new Sha1Packet();
|
sha1Pkt = new HashPacket();
|
||||||
sha1Ctx.Init();
|
sha1Ctx.Init();
|
||||||
sha1Pkt.Context = sha1Ctx;
|
sha1Pkt.Context = sha1Ctx;
|
||||||
}
|
}
|
||||||
@@ -158,7 +158,7 @@ namespace DiscImageChef.Core
|
|||||||
if(enabled.HasFlag(EnableChecksum.Sha256))
|
if(enabled.HasFlag(EnableChecksum.Sha256))
|
||||||
{
|
{
|
||||||
sha256Ctx = new Sha256Context();
|
sha256Ctx = new Sha256Context();
|
||||||
sha256Pkt = new Sha256Packet();
|
sha256Pkt = new HashPacket();
|
||||||
sha256Ctx.Init();
|
sha256Ctx.Init();
|
||||||
sha256Pkt.Context = sha256Ctx;
|
sha256Pkt.Context = sha256Ctx;
|
||||||
}
|
}
|
||||||
@@ -166,7 +166,7 @@ namespace DiscImageChef.Core
|
|||||||
if(enabled.HasFlag(EnableChecksum.Sha384))
|
if(enabled.HasFlag(EnableChecksum.Sha384))
|
||||||
{
|
{
|
||||||
sha384Ctx = new Sha384Context();
|
sha384Ctx = new Sha384Context();
|
||||||
sha384Pkt = new Sha384Packet();
|
sha384Pkt = new HashPacket();
|
||||||
sha384Ctx.Init();
|
sha384Ctx.Init();
|
||||||
sha384Pkt.Context = sha384Ctx;
|
sha384Pkt.Context = sha384Ctx;
|
||||||
}
|
}
|
||||||
@@ -174,7 +174,7 @@ namespace DiscImageChef.Core
|
|||||||
if(enabled.HasFlag(EnableChecksum.Sha512))
|
if(enabled.HasFlag(EnableChecksum.Sha512))
|
||||||
{
|
{
|
||||||
sha512Ctx = new Sha512Context();
|
sha512Ctx = new Sha512Context();
|
||||||
sha512Pkt = new Sha512Packet();
|
sha512Pkt = new HashPacket();
|
||||||
sha512Ctx.Init();
|
sha512Ctx.Init();
|
||||||
sha512Pkt.Context = sha512Ctx;
|
sha512Pkt.Context = sha512Ctx;
|
||||||
}
|
}
|
||||||
@@ -182,22 +182,22 @@ namespace DiscImageChef.Core
|
|||||||
if(enabled.HasFlag(EnableChecksum.SpamSum))
|
if(enabled.HasFlag(EnableChecksum.SpamSum))
|
||||||
{
|
{
|
||||||
ssctx = new SpamSumContext();
|
ssctx = new SpamSumContext();
|
||||||
spamsumPkt = new SpamsumPacket();
|
spamsumPkt = new HashPacket();
|
||||||
ssctx.Init();
|
ssctx.Init();
|
||||||
spamsumPkt.Context = ssctx;
|
spamsumPkt.Context = ssctx;
|
||||||
}
|
}
|
||||||
|
|
||||||
adlerThread = new Thread(UpdateAdler);
|
adlerThread = new Thread(UpdateHash);
|
||||||
crc16Thread = new Thread(UpdateCrc16);
|
crc16Thread = new Thread(UpdateHash);
|
||||||
crc32Thread = new Thread(UpdateCrc32);
|
crc32Thread = new Thread(UpdateHash);
|
||||||
crc64Thread = new Thread(UpdateCrc64);
|
crc64Thread = new Thread(UpdateHash);
|
||||||
md5Thread = new Thread(UpdateMd5);
|
md5Thread = new Thread(UpdateHash);
|
||||||
ripemd160Thread = new Thread(UpdateRipemd160);
|
ripemd160Thread = new Thread(UpdateHash);
|
||||||
sha1Thread = new Thread(UpdateSha1);
|
sha1Thread = new Thread(UpdateHash);
|
||||||
sha256Thread = new Thread(UpdateSha256);
|
sha256Thread = new Thread(UpdateHash);
|
||||||
sha384Thread = new Thread(UpdateSha384);
|
sha384Thread = new Thread(UpdateHash);
|
||||||
sha512Thread = new Thread(UpdateSha512);
|
sha512Thread = new Thread(UpdateHash);
|
||||||
spamsumThread = new Thread(UpdateSpamSum);
|
spamsumThread = new Thread(UpdateHash);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Update(byte[] data)
|
public void Update(byte[] data)
|
||||||
@@ -271,17 +271,17 @@ namespace DiscImageChef.Core
|
|||||||
md5Thread.IsAlive || ripemd160Thread.IsAlive || sha1Thread.IsAlive || sha256Thread.IsAlive ||
|
md5Thread.IsAlive || ripemd160Thread.IsAlive || sha1Thread.IsAlive || sha256Thread.IsAlive ||
|
||||||
sha384Thread.IsAlive || sha512Thread.IsAlive || spamsumThread.IsAlive) { }
|
sha384Thread.IsAlive || sha512Thread.IsAlive || spamsumThread.IsAlive) { }
|
||||||
|
|
||||||
if(enabled.HasFlag(EnableChecksum.SpamSum)) adlerThread = new Thread(UpdateAdler);
|
if(enabled.HasFlag(EnableChecksum.SpamSum)) adlerThread = new Thread(UpdateHash);
|
||||||
if(enabled.HasFlag(EnableChecksum.SpamSum)) crc16Thread = new Thread(UpdateCrc16);
|
if(enabled.HasFlag(EnableChecksum.SpamSum)) crc16Thread = new Thread(UpdateHash);
|
||||||
if(enabled.HasFlag(EnableChecksum.SpamSum)) crc32Thread = new Thread(UpdateCrc32);
|
if(enabled.HasFlag(EnableChecksum.SpamSum)) crc32Thread = new Thread(UpdateHash);
|
||||||
if(enabled.HasFlag(EnableChecksum.SpamSum)) crc64Thread = new Thread(UpdateCrc64);
|
if(enabled.HasFlag(EnableChecksum.SpamSum)) crc64Thread = new Thread(UpdateHash);
|
||||||
if(enabled.HasFlag(EnableChecksum.SpamSum)) md5Thread = new Thread(UpdateMd5);
|
if(enabled.HasFlag(EnableChecksum.SpamSum)) md5Thread = new Thread(UpdateHash);
|
||||||
if(enabled.HasFlag(EnableChecksum.SpamSum)) ripemd160Thread = new Thread(UpdateRipemd160);
|
if(enabled.HasFlag(EnableChecksum.SpamSum)) ripemd160Thread = new Thread(UpdateHash);
|
||||||
if(enabled.HasFlag(EnableChecksum.SpamSum)) sha1Thread = new Thread(UpdateSha1);
|
if(enabled.HasFlag(EnableChecksum.SpamSum)) sha1Thread = new Thread(UpdateHash);
|
||||||
if(enabled.HasFlag(EnableChecksum.SpamSum)) sha256Thread = new Thread(UpdateSha256);
|
if(enabled.HasFlag(EnableChecksum.SpamSum)) sha256Thread = new Thread(UpdateHash);
|
||||||
if(enabled.HasFlag(EnableChecksum.SpamSum)) sha384Thread = new Thread(UpdateSha384);
|
if(enabled.HasFlag(EnableChecksum.SpamSum)) sha384Thread = new Thread(UpdateHash);
|
||||||
if(enabled.HasFlag(EnableChecksum.SpamSum)) sha512Thread = new Thread(UpdateSha512);
|
if(enabled.HasFlag(EnableChecksum.SpamSum)) sha512Thread = new Thread(UpdateHash);
|
||||||
if(enabled.HasFlag(EnableChecksum.SpamSum)) spamsumThread = new Thread(UpdateSpamSum);
|
if(enabled.HasFlag(EnableChecksum.SpamSum)) spamsumThread = new Thread(UpdateHash);
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<ChecksumType> End()
|
public List<ChecksumType> End()
|
||||||
@@ -360,34 +360,34 @@ namespace DiscImageChef.Core
|
|||||||
|
|
||||||
internal static List<ChecksumType> GetChecksums(byte[] data, EnableChecksum enabled = EnableChecksum.All)
|
internal static List<ChecksumType> GetChecksums(byte[] data, EnableChecksum enabled = EnableChecksum.All)
|
||||||
{
|
{
|
||||||
Adler32Context adler32CtxData = null;
|
IChecksum adler32CtxData = null;
|
||||||
Crc16Context crc16CtxData = null;
|
IChecksum crc16CtxData = null;
|
||||||
Crc32Context crc32CtxData = null;
|
IChecksum crc32CtxData = null;
|
||||||
Crc64Context crc64CtxData = null;
|
IChecksum crc64CtxData = null;
|
||||||
Md5Context md5CtxData = null;
|
IChecksum md5CtxData = null;
|
||||||
Ripemd160Context ripemd160CtxData = null;
|
IChecksum ripemd160CtxData = null;
|
||||||
Sha1Context sha1CtxData = null;
|
IChecksum sha1CtxData = null;
|
||||||
Sha256Context sha256CtxData = null;
|
IChecksum sha256CtxData = null;
|
||||||
Sha384Context sha384CtxData = null;
|
IChecksum sha384CtxData = null;
|
||||||
Sha512Context sha512CtxData = null;
|
IChecksum sha512CtxData = null;
|
||||||
SpamSumContext ssctxData = null;
|
IChecksum ssctxData = null;
|
||||||
|
|
||||||
Thread adlerThreadData = new Thread(UpdateAdler);
|
Thread adlerThreadData = new Thread(UpdateHash);
|
||||||
Thread crc16ThreadData = new Thread(UpdateCrc16);
|
Thread crc16ThreadData = new Thread(UpdateHash);
|
||||||
Thread crc32ThreadData = new Thread(UpdateCrc32);
|
Thread crc32ThreadData = new Thread(UpdateHash);
|
||||||
Thread crc64ThreadData = new Thread(UpdateCrc64);
|
Thread crc64ThreadData = new Thread(UpdateHash);
|
||||||
Thread md5ThreadData = new Thread(UpdateMd5);
|
Thread md5ThreadData = new Thread(UpdateHash);
|
||||||
Thread ripemd160ThreadData = new Thread(UpdateRipemd160);
|
Thread ripemd160ThreadData = new Thread(UpdateHash);
|
||||||
Thread sha1ThreadData = new Thread(UpdateSha1);
|
Thread sha1ThreadData = new Thread(UpdateHash);
|
||||||
Thread sha256ThreadData = new Thread(UpdateSha256);
|
Thread sha256ThreadData = new Thread(UpdateHash);
|
||||||
Thread sha384ThreadData = new Thread(UpdateSha384);
|
Thread sha384ThreadData = new Thread(UpdateHash);
|
||||||
Thread sha512ThreadData = new Thread(UpdateSha512);
|
Thread sha512ThreadData = new Thread(UpdateHash);
|
||||||
Thread spamsumThreadData = new Thread(UpdateSpamSum);
|
Thread spamsumThreadData = new Thread(UpdateHash);
|
||||||
|
|
||||||
if(enabled.HasFlag(EnableChecksum.SpamSum))
|
if(enabled.HasFlag(EnableChecksum.SpamSum))
|
||||||
{
|
{
|
||||||
adler32CtxData = new Adler32Context();
|
adler32CtxData = new Adler32Context();
|
||||||
AdlerPacket adlerPktData = new AdlerPacket();
|
HashPacket adlerPktData = new HashPacket();
|
||||||
adler32CtxData.Init();
|
adler32CtxData.Init();
|
||||||
adlerPktData.Context = adler32CtxData;
|
adlerPktData.Context = adler32CtxData;
|
||||||
adlerPktData.Data = data;
|
adlerPktData.Data = data;
|
||||||
@@ -396,7 +396,7 @@ namespace DiscImageChef.Core
|
|||||||
|
|
||||||
if(enabled.HasFlag(EnableChecksum.SpamSum))
|
if(enabled.HasFlag(EnableChecksum.SpamSum))
|
||||||
{
|
{
|
||||||
Crc16Packet crc16PktData = new Crc16Packet();
|
HashPacket crc16PktData = new HashPacket();
|
||||||
crc16CtxData = new Crc16Context();
|
crc16CtxData = new Crc16Context();
|
||||||
crc16CtxData.Init();
|
crc16CtxData.Init();
|
||||||
crc16PktData.Context = crc16CtxData;
|
crc16PktData.Context = crc16CtxData;
|
||||||
@@ -406,7 +406,7 @@ namespace DiscImageChef.Core
|
|||||||
|
|
||||||
if(enabled.HasFlag(EnableChecksum.SpamSum))
|
if(enabled.HasFlag(EnableChecksum.SpamSum))
|
||||||
{
|
{
|
||||||
Crc32Packet crc32PktData = new Crc32Packet();
|
HashPacket crc32PktData = new HashPacket();
|
||||||
crc32CtxData = new Crc32Context();
|
crc32CtxData = new Crc32Context();
|
||||||
crc32CtxData.Init();
|
crc32CtxData.Init();
|
||||||
crc32PktData.Context = crc32CtxData;
|
crc32PktData.Context = crc32CtxData;
|
||||||
@@ -416,7 +416,7 @@ namespace DiscImageChef.Core
|
|||||||
|
|
||||||
if(enabled.HasFlag(EnableChecksum.SpamSum))
|
if(enabled.HasFlag(EnableChecksum.SpamSum))
|
||||||
{
|
{
|
||||||
Crc64Packet crc64PktData = new Crc64Packet();
|
HashPacket crc64PktData = new HashPacket();
|
||||||
crc64CtxData = new Crc64Context();
|
crc64CtxData = new Crc64Context();
|
||||||
crc64CtxData.Init();
|
crc64CtxData.Init();
|
||||||
crc64PktData.Context = crc64CtxData;
|
crc64PktData.Context = crc64CtxData;
|
||||||
@@ -426,7 +426,7 @@ namespace DiscImageChef.Core
|
|||||||
|
|
||||||
if(enabled.HasFlag(EnableChecksum.SpamSum))
|
if(enabled.HasFlag(EnableChecksum.SpamSum))
|
||||||
{
|
{
|
||||||
Md5Packet md5PktData = new Md5Packet();
|
HashPacket md5PktData = new HashPacket();
|
||||||
md5CtxData = new Md5Context();
|
md5CtxData = new Md5Context();
|
||||||
md5CtxData.Init();
|
md5CtxData.Init();
|
||||||
md5PktData.Context = md5CtxData;
|
md5PktData.Context = md5CtxData;
|
||||||
@@ -436,7 +436,7 @@ namespace DiscImageChef.Core
|
|||||||
|
|
||||||
if(enabled.HasFlag(EnableChecksum.SpamSum))
|
if(enabled.HasFlag(EnableChecksum.SpamSum))
|
||||||
{
|
{
|
||||||
Ripemd160Packet ripemd160PktData = new Ripemd160Packet();
|
HashPacket ripemd160PktData = new HashPacket();
|
||||||
ripemd160CtxData = new Ripemd160Context();
|
ripemd160CtxData = new Ripemd160Context();
|
||||||
ripemd160CtxData.Init();
|
ripemd160CtxData.Init();
|
||||||
ripemd160PktData.Context = ripemd160CtxData;
|
ripemd160PktData.Context = ripemd160CtxData;
|
||||||
@@ -446,7 +446,7 @@ namespace DiscImageChef.Core
|
|||||||
|
|
||||||
if(enabled.HasFlag(EnableChecksum.SpamSum))
|
if(enabled.HasFlag(EnableChecksum.SpamSum))
|
||||||
{
|
{
|
||||||
Sha1Packet sha1PktData = new Sha1Packet();
|
HashPacket sha1PktData = new HashPacket();
|
||||||
sha1CtxData = new Sha1Context();
|
sha1CtxData = new Sha1Context();
|
||||||
sha1CtxData.Init();
|
sha1CtxData.Init();
|
||||||
sha1PktData.Context = sha1CtxData;
|
sha1PktData.Context = sha1CtxData;
|
||||||
@@ -456,7 +456,7 @@ namespace DiscImageChef.Core
|
|||||||
|
|
||||||
if(enabled.HasFlag(EnableChecksum.SpamSum))
|
if(enabled.HasFlag(EnableChecksum.SpamSum))
|
||||||
{
|
{
|
||||||
Sha256Packet sha256PktData = new Sha256Packet();
|
HashPacket sha256PktData = new HashPacket();
|
||||||
sha256CtxData = new Sha256Context();
|
sha256CtxData = new Sha256Context();
|
||||||
sha256CtxData.Init();
|
sha256CtxData.Init();
|
||||||
sha256PktData.Context = sha256CtxData;
|
sha256PktData.Context = sha256CtxData;
|
||||||
@@ -466,7 +466,7 @@ namespace DiscImageChef.Core
|
|||||||
|
|
||||||
if(enabled.HasFlag(EnableChecksum.SpamSum))
|
if(enabled.HasFlag(EnableChecksum.SpamSum))
|
||||||
{
|
{
|
||||||
Sha384Packet sha384PktData = new Sha384Packet();
|
HashPacket sha384PktData = new HashPacket();
|
||||||
sha384CtxData = new Sha384Context();
|
sha384CtxData = new Sha384Context();
|
||||||
sha384CtxData.Init();
|
sha384CtxData.Init();
|
||||||
sha384PktData.Context = sha384CtxData;
|
sha384PktData.Context = sha384CtxData;
|
||||||
@@ -476,7 +476,7 @@ namespace DiscImageChef.Core
|
|||||||
|
|
||||||
if(enabled.HasFlag(EnableChecksum.SpamSum))
|
if(enabled.HasFlag(EnableChecksum.SpamSum))
|
||||||
{
|
{
|
||||||
Sha512Packet sha512PktData = new Sha512Packet();
|
HashPacket sha512PktData = new HashPacket();
|
||||||
sha512CtxData = new Sha512Context();
|
sha512CtxData = new Sha512Context();
|
||||||
sha512CtxData.Init();
|
sha512CtxData.Init();
|
||||||
sha512PktData.Context = sha512CtxData;
|
sha512PktData.Context = sha512CtxData;
|
||||||
@@ -486,7 +486,7 @@ namespace DiscImageChef.Core
|
|||||||
|
|
||||||
if(enabled.HasFlag(EnableChecksum.SpamSum))
|
if(enabled.HasFlag(EnableChecksum.SpamSum))
|
||||||
{
|
{
|
||||||
SpamsumPacket spamsumPktData = new SpamsumPacket();
|
HashPacket spamsumPktData = new HashPacket();
|
||||||
ssctxData = new SpamSumContext();
|
ssctxData = new SpamSumContext();
|
||||||
ssctxData.Init();
|
ssctxData.Init();
|
||||||
spamsumPktData.Context = ssctxData;
|
spamsumPktData.Context = ssctxData;
|
||||||
@@ -571,125 +571,15 @@ namespace DiscImageChef.Core
|
|||||||
}
|
}
|
||||||
|
|
||||||
#region Threading helpers
|
#region Threading helpers
|
||||||
struct AdlerPacket
|
struct HashPacket
|
||||||
{
|
{
|
||||||
public Adler32Context Context;
|
public IChecksum Context;
|
||||||
public byte[] Data;
|
public byte[] Data;
|
||||||
}
|
}
|
||||||
|
|
||||||
struct Crc16Packet
|
static void UpdateHash(object packet)
|
||||||
{
|
{
|
||||||
public Crc16Context Context;
|
((HashPacket)packet).Context.Update(((HashPacket)packet).Data);
|
||||||
public byte[] Data;
|
|
||||||
}
|
|
||||||
|
|
||||||
struct Crc32Packet
|
|
||||||
{
|
|
||||||
public Crc32Context Context;
|
|
||||||
public byte[] Data;
|
|
||||||
}
|
|
||||||
|
|
||||||
struct Crc64Packet
|
|
||||||
{
|
|
||||||
public Crc64Context Context;
|
|
||||||
public byte[] Data;
|
|
||||||
}
|
|
||||||
|
|
||||||
struct Md5Packet
|
|
||||||
{
|
|
||||||
public Md5Context Context;
|
|
||||||
public byte[] Data;
|
|
||||||
}
|
|
||||||
|
|
||||||
struct Ripemd160Packet
|
|
||||||
{
|
|
||||||
public Ripemd160Context Context;
|
|
||||||
public byte[] Data;
|
|
||||||
}
|
|
||||||
|
|
||||||
struct Sha1Packet
|
|
||||||
{
|
|
||||||
public Sha1Context Context;
|
|
||||||
public byte[] Data;
|
|
||||||
}
|
|
||||||
|
|
||||||
struct Sha256Packet
|
|
||||||
{
|
|
||||||
public Sha256Context Context;
|
|
||||||
public byte[] Data;
|
|
||||||
}
|
|
||||||
|
|
||||||
struct Sha384Packet
|
|
||||||
{
|
|
||||||
public Sha384Context Context;
|
|
||||||
public byte[] Data;
|
|
||||||
}
|
|
||||||
|
|
||||||
struct Sha512Packet
|
|
||||||
{
|
|
||||||
public Sha512Context Context;
|
|
||||||
public byte[] Data;
|
|
||||||
}
|
|
||||||
|
|
||||||
struct SpamsumPacket
|
|
||||||
{
|
|
||||||
public SpamSumContext Context;
|
|
||||||
public byte[] Data;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void UpdateAdler(object packet)
|
|
||||||
{
|
|
||||||
((AdlerPacket)packet).Context.Update(((AdlerPacket)packet).Data);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void UpdateCrc16(object packet)
|
|
||||||
{
|
|
||||||
((Crc16Packet)packet).Context.Update(((Crc16Packet)packet).Data);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void UpdateCrc32(object packet)
|
|
||||||
{
|
|
||||||
((Crc32Packet)packet).Context.Update(((Crc32Packet)packet).Data);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void UpdateCrc64(object packet)
|
|
||||||
{
|
|
||||||
((Crc64Packet)packet).Context.Update(((Crc64Packet)packet).Data);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void UpdateMd5(object packet)
|
|
||||||
{
|
|
||||||
((Md5Packet)packet).Context.Update(((Md5Packet)packet).Data);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void UpdateRipemd160(object packet)
|
|
||||||
{
|
|
||||||
((Ripemd160Packet)packet).Context.Update(((Ripemd160Packet)packet).Data);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void UpdateSha1(object packet)
|
|
||||||
{
|
|
||||||
((Sha1Packet)packet).Context.Update(((Sha1Packet)packet).Data);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void UpdateSha256(object packet)
|
|
||||||
{
|
|
||||||
((Sha256Packet)packet).Context.Update(((Sha256Packet)packet).Data);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void UpdateSha384(object packet)
|
|
||||||
{
|
|
||||||
((Sha384Packet)packet).Context.Update(((Sha384Packet)packet).Data);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void UpdateSha512(object packet)
|
|
||||||
{
|
|
||||||
((Sha512Packet)packet).Context.Update(((Sha512Packet)packet).Data);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void UpdateSpamSum(object packet)
|
|
||||||
{
|
|
||||||
((SpamsumPacket)packet).Context.Update(((SpamsumPacket)packet).Data);
|
|
||||||
}
|
}
|
||||||
#endregion Threading helpers
|
#endregion Threading helpers
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -67,7 +67,7 @@ namespace DiscImageChef.Tests.Checksums
|
|||||||
fs.Read(data, 0, 1048576);
|
fs.Read(data, 0, 1048576);
|
||||||
fs.Close();
|
fs.Close();
|
||||||
fs.Dispose();
|
fs.Dispose();
|
||||||
Adler32Context ctx = new Adler32Context();
|
IChecksum ctx = new Adler32Context();
|
||||||
ctx.Init();
|
ctx.Init();
|
||||||
ctx.Update(data);
|
ctx.Update(data);
|
||||||
byte[] result = ctx.Final();
|
byte[] result = ctx.Final();
|
||||||
@@ -103,7 +103,7 @@ namespace DiscImageChef.Tests.Checksums
|
|||||||
fs.Read(data, 0, 1048576);
|
fs.Read(data, 0, 1048576);
|
||||||
fs.Close();
|
fs.Close();
|
||||||
fs.Dispose();
|
fs.Dispose();
|
||||||
Adler32Context ctx = new Adler32Context();
|
IChecksum ctx = new Adler32Context();
|
||||||
ctx.Init();
|
ctx.Init();
|
||||||
ctx.Update(data);
|
ctx.Update(data);
|
||||||
byte[] result = ctx.Final();
|
byte[] result = ctx.Final();
|
||||||
|
|||||||
@@ -67,7 +67,7 @@ namespace DiscImageChef.Tests.Checksums
|
|||||||
fs.Read(data, 0, 1048576);
|
fs.Read(data, 0, 1048576);
|
||||||
fs.Close();
|
fs.Close();
|
||||||
fs.Dispose();
|
fs.Dispose();
|
||||||
Crc16Context ctx = new Crc16Context();
|
IChecksum ctx = new Crc16Context();
|
||||||
ctx.Init();
|
ctx.Init();
|
||||||
ctx.Update(data);
|
ctx.Update(data);
|
||||||
byte[] result = ctx.Final();
|
byte[] result = ctx.Final();
|
||||||
@@ -103,7 +103,7 @@ namespace DiscImageChef.Tests.Checksums
|
|||||||
fs.Read(data, 0, 1048576);
|
fs.Read(data, 0, 1048576);
|
||||||
fs.Close();
|
fs.Close();
|
||||||
fs.Dispose();
|
fs.Dispose();
|
||||||
Crc16Context ctx = new Crc16Context();
|
IChecksum ctx = new Crc16Context();
|
||||||
ctx.Init();
|
ctx.Init();
|
||||||
ctx.Update(data);
|
ctx.Update(data);
|
||||||
byte[] result = ctx.Final();
|
byte[] result = ctx.Final();
|
||||||
|
|||||||
@@ -67,7 +67,7 @@ namespace DiscImageChef.Tests.Checksums
|
|||||||
fs.Read(data, 0, 1048576);
|
fs.Read(data, 0, 1048576);
|
||||||
fs.Close();
|
fs.Close();
|
||||||
fs.Dispose();
|
fs.Dispose();
|
||||||
Crc32Context ctx = new Crc32Context();
|
IChecksum ctx = new Crc32Context();
|
||||||
ctx.Init();
|
ctx.Init();
|
||||||
ctx.Update(data);
|
ctx.Update(data);
|
||||||
byte[] result = ctx.Final();
|
byte[] result = ctx.Final();
|
||||||
@@ -103,7 +103,7 @@ namespace DiscImageChef.Tests.Checksums
|
|||||||
fs.Read(data, 0, 1048576);
|
fs.Read(data, 0, 1048576);
|
||||||
fs.Close();
|
fs.Close();
|
||||||
fs.Dispose();
|
fs.Dispose();
|
||||||
Crc32Context ctx = new Crc32Context();
|
IChecksum ctx = new Crc32Context();
|
||||||
ctx.Init();
|
ctx.Init();
|
||||||
ctx.Update(data);
|
ctx.Update(data);
|
||||||
byte[] result = ctx.Final();
|
byte[] result = ctx.Final();
|
||||||
|
|||||||
@@ -67,7 +67,7 @@ namespace DiscImageChef.Tests.Checksums
|
|||||||
fs.Read(data, 0, 1048576);
|
fs.Read(data, 0, 1048576);
|
||||||
fs.Close();
|
fs.Close();
|
||||||
fs.Dispose();
|
fs.Dispose();
|
||||||
Crc64Context ctx = new Crc64Context();
|
IChecksum ctx = new Crc64Context();
|
||||||
ctx.Init();
|
ctx.Init();
|
||||||
ctx.Update(data);
|
ctx.Update(data);
|
||||||
byte[] result = ctx.Final();
|
byte[] result = ctx.Final();
|
||||||
@@ -103,7 +103,7 @@ namespace DiscImageChef.Tests.Checksums
|
|||||||
fs.Read(data, 0, 1048576);
|
fs.Read(data, 0, 1048576);
|
||||||
fs.Close();
|
fs.Close();
|
||||||
fs.Dispose();
|
fs.Dispose();
|
||||||
Crc64Context ctx = new Crc64Context();
|
IChecksum ctx = new Crc64Context();
|
||||||
ctx.Init();
|
ctx.Init();
|
||||||
ctx.Update(data);
|
ctx.Update(data);
|
||||||
byte[] result = ctx.Final();
|
byte[] result = ctx.Final();
|
||||||
|
|||||||
@@ -73,7 +73,7 @@ namespace DiscImageChef.Tests.Checksums
|
|||||||
fs.Read(data, 0, 1048576);
|
fs.Read(data, 0, 1048576);
|
||||||
fs.Close();
|
fs.Close();
|
||||||
fs.Dispose();
|
fs.Dispose();
|
||||||
Md5Context ctx = new Md5Context();
|
IChecksum ctx = new Md5Context();
|
||||||
ctx.Init();
|
ctx.Init();
|
||||||
ctx.Update(data);
|
ctx.Update(data);
|
||||||
byte[] result = ctx.Final();
|
byte[] result = ctx.Final();
|
||||||
@@ -113,7 +113,7 @@ namespace DiscImageChef.Tests.Checksums
|
|||||||
fs.Read(data, 0, 1048576);
|
fs.Read(data, 0, 1048576);
|
||||||
fs.Close();
|
fs.Close();
|
||||||
fs.Dispose();
|
fs.Dispose();
|
||||||
Md5Context ctx = new Md5Context();
|
IChecksum ctx = new Md5Context();
|
||||||
ctx.Init();
|
ctx.Init();
|
||||||
ctx.Update(data);
|
ctx.Update(data);
|
||||||
byte[] result = ctx.Final();
|
byte[] result = ctx.Final();
|
||||||
|
|||||||
@@ -79,7 +79,7 @@ namespace DiscImageChef.Tests.Checksums
|
|||||||
fs.Read(data, 0, 1048576);
|
fs.Read(data, 0, 1048576);
|
||||||
fs.Close();
|
fs.Close();
|
||||||
fs.Dispose();
|
fs.Dispose();
|
||||||
Ripemd160Context ctx = new Ripemd160Context();
|
IChecksum ctx = new Ripemd160Context();
|
||||||
ctx.Init();
|
ctx.Init();
|
||||||
ctx.Update(data);
|
ctx.Update(data);
|
||||||
byte[] result = ctx.Final();
|
byte[] result = ctx.Final();
|
||||||
@@ -119,7 +119,7 @@ namespace DiscImageChef.Tests.Checksums
|
|||||||
fs.Read(data, 0, 1048576);
|
fs.Read(data, 0, 1048576);
|
||||||
fs.Close();
|
fs.Close();
|
||||||
fs.Dispose();
|
fs.Dispose();
|
||||||
Ripemd160Context ctx = new Ripemd160Context();
|
IChecksum ctx = new Ripemd160Context();
|
||||||
ctx.Init();
|
ctx.Init();
|
||||||
ctx.Update(data);
|
ctx.Update(data);
|
||||||
byte[] result = ctx.Final();
|
byte[] result = ctx.Final();
|
||||||
|
|||||||
@@ -79,7 +79,7 @@ namespace DiscImageChef.Tests.Checksums
|
|||||||
fs.Read(data, 0, 1048576);
|
fs.Read(data, 0, 1048576);
|
||||||
fs.Close();
|
fs.Close();
|
||||||
fs.Dispose();
|
fs.Dispose();
|
||||||
Sha1Context ctx = new Sha1Context();
|
IChecksum ctx = new Sha1Context();
|
||||||
ctx.Init();
|
ctx.Init();
|
||||||
ctx.Update(data);
|
ctx.Update(data);
|
||||||
byte[] result = ctx.Final();
|
byte[] result = ctx.Final();
|
||||||
@@ -119,7 +119,7 @@ namespace DiscImageChef.Tests.Checksums
|
|||||||
fs.Read(data, 0, 1048576);
|
fs.Read(data, 0, 1048576);
|
||||||
fs.Close();
|
fs.Close();
|
||||||
fs.Dispose();
|
fs.Dispose();
|
||||||
Sha1Context ctx = new Sha1Context();
|
IChecksum ctx = new Sha1Context();
|
||||||
ctx.Init();
|
ctx.Init();
|
||||||
ctx.Update(data);
|
ctx.Update(data);
|
||||||
byte[] result = ctx.Final();
|
byte[] result = ctx.Final();
|
||||||
|
|||||||
@@ -79,7 +79,7 @@ namespace DiscImageChef.Tests.Checksums
|
|||||||
fs.Read(data, 0, 1048576);
|
fs.Read(data, 0, 1048576);
|
||||||
fs.Close();
|
fs.Close();
|
||||||
fs.Dispose();
|
fs.Dispose();
|
||||||
Sha256Context ctx = new Sha256Context();
|
IChecksum ctx = new Sha256Context();
|
||||||
ctx.Init();
|
ctx.Init();
|
||||||
ctx.Update(data);
|
ctx.Update(data);
|
||||||
byte[] result = ctx.Final();
|
byte[] result = ctx.Final();
|
||||||
@@ -119,7 +119,7 @@ namespace DiscImageChef.Tests.Checksums
|
|||||||
fs.Read(data, 0, 1048576);
|
fs.Read(data, 0, 1048576);
|
||||||
fs.Close();
|
fs.Close();
|
||||||
fs.Dispose();
|
fs.Dispose();
|
||||||
Sha256Context ctx = new Sha256Context();
|
IChecksum ctx = new Sha256Context();
|
||||||
ctx.Init();
|
ctx.Init();
|
||||||
ctx.Update(data);
|
ctx.Update(data);
|
||||||
byte[] result = ctx.Final();
|
byte[] result = ctx.Final();
|
||||||
|
|||||||
@@ -81,7 +81,7 @@ namespace DiscImageChef.Tests.Checksums
|
|||||||
fs.Read(data, 0, 1048576);
|
fs.Read(data, 0, 1048576);
|
||||||
fs.Close();
|
fs.Close();
|
||||||
fs.Dispose();
|
fs.Dispose();
|
||||||
Sha384Context ctx = new Sha384Context();
|
IChecksum ctx = new Sha384Context();
|
||||||
ctx.Init();
|
ctx.Init();
|
||||||
ctx.Update(data);
|
ctx.Update(data);
|
||||||
byte[] result = ctx.Final();
|
byte[] result = ctx.Final();
|
||||||
@@ -121,7 +121,7 @@ namespace DiscImageChef.Tests.Checksums
|
|||||||
fs.Read(data, 0, 1048576);
|
fs.Read(data, 0, 1048576);
|
||||||
fs.Close();
|
fs.Close();
|
||||||
fs.Dispose();
|
fs.Dispose();
|
||||||
Sha384Context ctx = new Sha384Context();
|
IChecksum ctx = new Sha384Context();
|
||||||
ctx.Init();
|
ctx.Init();
|
||||||
ctx.Update(data);
|
ctx.Update(data);
|
||||||
byte[] result = ctx.Final();
|
byte[] result = ctx.Final();
|
||||||
|
|||||||
@@ -83,7 +83,7 @@ namespace DiscImageChef.Tests.Checksums
|
|||||||
fs.Read(data, 0, 1048576);
|
fs.Read(data, 0, 1048576);
|
||||||
fs.Close();
|
fs.Close();
|
||||||
fs.Dispose();
|
fs.Dispose();
|
||||||
Sha512Context ctx = new Sha512Context();
|
IChecksum ctx = new Sha512Context();
|
||||||
ctx.Init();
|
ctx.Init();
|
||||||
ctx.Update(data);
|
ctx.Update(data);
|
||||||
byte[] result = ctx.Final();
|
byte[] result = ctx.Final();
|
||||||
@@ -123,7 +123,7 @@ namespace DiscImageChef.Tests.Checksums
|
|||||||
fs.Read(data, 0, 1048576);
|
fs.Read(data, 0, 1048576);
|
||||||
fs.Close();
|
fs.Close();
|
||||||
fs.Dispose();
|
fs.Dispose();
|
||||||
Sha512Context ctx = new Sha512Context();
|
IChecksum ctx = new Sha512Context();
|
||||||
ctx.Init();
|
ctx.Init();
|
||||||
ctx.Update(data);
|
ctx.Update(data);
|
||||||
byte[] result = ctx.Final();
|
byte[] result = ctx.Final();
|
||||||
|
|||||||
@@ -60,7 +60,7 @@ namespace DiscImageChef.Tests.Checksums
|
|||||||
fs.Read(data, 0, 1048576);
|
fs.Read(data, 0, 1048576);
|
||||||
fs.Close();
|
fs.Close();
|
||||||
fs.Dispose();
|
fs.Dispose();
|
||||||
SpamSumContext ctx = new SpamSumContext();
|
IChecksum ctx = new SpamSumContext();
|
||||||
ctx.Init();
|
ctx.Init();
|
||||||
ctx.Update(data);
|
ctx.Update(data);
|
||||||
string result = ctx.End();
|
string result = ctx.End();
|
||||||
@@ -89,7 +89,7 @@ namespace DiscImageChef.Tests.Checksums
|
|||||||
fs.Read(data, 0, 1048576);
|
fs.Read(data, 0, 1048576);
|
||||||
fs.Close();
|
fs.Close();
|
||||||
fs.Dispose();
|
fs.Dispose();
|
||||||
SpamSumContext ctx = new SpamSumContext();
|
IChecksum ctx = new SpamSumContext();
|
||||||
ctx.Init();
|
ctx.Init();
|
||||||
ctx.Update(data);
|
ctx.Update(data);
|
||||||
string result = ctx.End();
|
string result = ctx.End();
|
||||||
|
|||||||
Reference in New Issue
Block a user