mirror of
https://github.com/aaru-dps/AaruBenchmark.git
synced 2025-12-16 19:24:36 +00:00
General refactor and cleanup.
This commit is contained in:
@@ -59,63 +59,12 @@ public sealed class Fletcher32Context : IChecksum
|
||||
_sum1 = 0xFFFF;
|
||||
_sum2 = 0xFFFF;
|
||||
|
||||
if(!Native.IsSupported)
|
||||
return;
|
||||
if(!Native.IsSupported) return;
|
||||
|
||||
_nativeContext = fletcher32_init();
|
||||
_useNative = _nativeContext != IntPtr.Zero;
|
||||
}
|
||||
|
||||
#region IChecksum Members
|
||||
|
||||
/// <inheritdoc />
|
||||
/// <summary>Updates the hash with data.</summary>
|
||||
/// <param name="data">Data buffer.</param>
|
||||
/// <param name="len">Length of buffer to hash.</param>
|
||||
public void Update(byte[] data, uint len) => Step(ref _sum1, ref _sum2, data, len, _useNative, _nativeContext);
|
||||
|
||||
/// <inheritdoc />
|
||||
/// <summary>Updates the hash with data.</summary>
|
||||
/// <param name="data">Data buffer.</param>
|
||||
public void Update(byte[] data) => Update(data, (uint)data.Length);
|
||||
|
||||
/// <inheritdoc />
|
||||
/// <summary>Returns a byte array of the hash value.</summary>
|
||||
public byte[] Final()
|
||||
{
|
||||
var finalSum = (uint)(_sum2 << 16 | _sum1);
|
||||
|
||||
if(!_useNative)
|
||||
return BigEndianBitConverter.GetBytes(finalSum);
|
||||
|
||||
fletcher32_final(_nativeContext, ref finalSum);
|
||||
fletcher32_free(_nativeContext);
|
||||
|
||||
return BigEndianBitConverter.GetBytes(finalSum);
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
/// <summary>Returns a hexadecimal representation of the hash value.</summary>
|
||||
public string End()
|
||||
{
|
||||
var finalSum = (uint)(_sum2 << 16 | _sum1);
|
||||
|
||||
if(_useNative)
|
||||
{
|
||||
fletcher32_final(_nativeContext, ref finalSum);
|
||||
fletcher32_free(_nativeContext);
|
||||
}
|
||||
|
||||
var fletcherOutput = new StringBuilder();
|
||||
|
||||
for(var i = 0; i < BigEndianBitConverter.GetBytes(finalSum).Length; i++)
|
||||
fletcherOutput.Append(BigEndianBitConverter.GetBytes(finalSum)[i].ToString("x2"));
|
||||
|
||||
return fletcherOutput.ToString();
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
[DllImport("libAaru.Checksums.Native", SetLastError = true)]
|
||||
static extern IntPtr fletcher32_init();
|
||||
|
||||
@@ -162,13 +111,11 @@ public sealed class Fletcher32Context : IChecksum
|
||||
{
|
||||
sum1 += data[dataOff];
|
||||
|
||||
if(sum1 >= FLETCHER_MODULE)
|
||||
sum1 -= FLETCHER_MODULE;
|
||||
if(sum1 >= FLETCHER_MODULE) sum1 -= FLETCHER_MODULE;
|
||||
|
||||
sum2 += sum1;
|
||||
|
||||
if(sum2 >= FLETCHER_MODULE)
|
||||
sum2 -= FLETCHER_MODULE;
|
||||
if(sum2 >= FLETCHER_MODULE) sum2 -= FLETCHER_MODULE;
|
||||
|
||||
previousSum1 = (ushort)(sum1 & 0xFFFF);
|
||||
previousSum2 = (ushort)(sum2 & 0xFFFF);
|
||||
@@ -185,8 +132,7 @@ public sealed class Fletcher32Context : IChecksum
|
||||
sum2 += sum1;
|
||||
}
|
||||
|
||||
if(sum1 >= FLETCHER_MODULE)
|
||||
sum1 -= FLETCHER_MODULE;
|
||||
if(sum1 >= FLETCHER_MODULE) sum1 -= FLETCHER_MODULE;
|
||||
|
||||
sum2 %= FLETCHER_MODULE; /* only added so many FLETCHER_MODULE's */
|
||||
previousSum1 = (ushort)(sum1 & 0xFFFF);
|
||||
@@ -322,8 +268,7 @@ public sealed class Fletcher32Context : IChecksum
|
||||
{
|
||||
nativeContext = fletcher32_init();
|
||||
|
||||
if(nativeContext == IntPtr.Zero)
|
||||
useNative = false;
|
||||
if(nativeContext == IntPtr.Zero) useNative = false;
|
||||
}
|
||||
|
||||
var fileStream = new FileStream(filename, FileMode.Open);
|
||||
@@ -353,8 +298,7 @@ public sealed class Fletcher32Context : IChecksum
|
||||
|
||||
var fletcherOutput = new StringBuilder();
|
||||
|
||||
foreach(byte h in hash)
|
||||
fletcherOutput.Append(h.ToString("x2"));
|
||||
foreach(byte h in hash) fletcherOutput.Append(h.ToString("x2"));
|
||||
|
||||
fileStream.Close();
|
||||
|
||||
@@ -374,8 +318,7 @@ public sealed class Fletcher32Context : IChecksum
|
||||
{
|
||||
nativeContext = fletcher32_init();
|
||||
|
||||
if(nativeContext == IntPtr.Zero)
|
||||
useNative = false;
|
||||
if(nativeContext == IntPtr.Zero) useNative = false;
|
||||
}
|
||||
|
||||
ushort localSum1 = 0xFFFF;
|
||||
@@ -395,8 +338,7 @@ public sealed class Fletcher32Context : IChecksum
|
||||
|
||||
var adlerOutput = new StringBuilder();
|
||||
|
||||
foreach(byte h in hash)
|
||||
adlerOutput.Append(h.ToString("x2"));
|
||||
foreach(byte h in hash) adlerOutput.Append(h.ToString("x2"));
|
||||
|
||||
return adlerOutput.ToString();
|
||||
}
|
||||
@@ -405,6 +347,55 @@ public sealed class Fletcher32Context : IChecksum
|
||||
/// <param name="data">Data buffer.</param>
|
||||
/// <param name="hash">Byte array of the hash value.</param>
|
||||
public static string Data(byte[] data, out byte[] hash) => Data(data, (uint)data.Length, out hash);
|
||||
|
||||
#region IChecksum Members
|
||||
|
||||
/// <inheritdoc />
|
||||
/// <summary>Updates the hash with data.</summary>
|
||||
/// <param name="data">Data buffer.</param>
|
||||
/// <param name="len">Length of buffer to hash.</param>
|
||||
public void Update(byte[] data, uint len) => Step(ref _sum1, ref _sum2, data, len, _useNative, _nativeContext);
|
||||
|
||||
/// <inheritdoc />
|
||||
/// <summary>Updates the hash with data.</summary>
|
||||
/// <param name="data">Data buffer.</param>
|
||||
public void Update(byte[] data) => Update(data, (uint)data.Length);
|
||||
|
||||
/// <inheritdoc />
|
||||
/// <summary>Returns a byte array of the hash value.</summary>
|
||||
public byte[] Final()
|
||||
{
|
||||
var finalSum = (uint)(_sum2 << 16 | _sum1);
|
||||
|
||||
if(!_useNative) return BigEndianBitConverter.GetBytes(finalSum);
|
||||
|
||||
fletcher32_final(_nativeContext, ref finalSum);
|
||||
fletcher32_free(_nativeContext);
|
||||
|
||||
return BigEndianBitConverter.GetBytes(finalSum);
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
/// <summary>Returns a hexadecimal representation of the hash value.</summary>
|
||||
public string End()
|
||||
{
|
||||
var finalSum = (uint)(_sum2 << 16 | _sum1);
|
||||
|
||||
if(_useNative)
|
||||
{
|
||||
fletcher32_final(_nativeContext, ref finalSum);
|
||||
fletcher32_free(_nativeContext);
|
||||
}
|
||||
|
||||
var fletcherOutput = new StringBuilder();
|
||||
|
||||
for(var i = 0; i < BigEndianBitConverter.GetBytes(finalSum).Length; i++)
|
||||
fletcherOutput.Append(BigEndianBitConverter.GetBytes(finalSum)[i].ToString("x2"));
|
||||
|
||||
return fletcherOutput.ToString();
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
@@ -424,63 +415,12 @@ public sealed class Fletcher16Context : IChecksum
|
||||
_sum1 = 0xFF;
|
||||
_sum2 = 0xFF;
|
||||
|
||||
if(!Native.IsSupported)
|
||||
return;
|
||||
if(!Native.IsSupported) return;
|
||||
|
||||
_nativeContext = fletcher16_init();
|
||||
_useNative = _nativeContext != IntPtr.Zero;
|
||||
}
|
||||
|
||||
#region IChecksum Members
|
||||
|
||||
/// <inheritdoc />
|
||||
/// <summary>Updates the hash with data.</summary>
|
||||
/// <param name="data">Data buffer.</param>
|
||||
/// <param name="len">Length of buffer to hash.</param>
|
||||
public void Update(byte[] data, uint len) => Step(ref _sum1, ref _sum2, data, len, _useNative, _nativeContext);
|
||||
|
||||
/// <inheritdoc />
|
||||
/// <summary>Updates the hash with data.</summary>
|
||||
/// <param name="data">Data buffer.</param>
|
||||
public void Update(byte[] data) => Update(data, (uint)data.Length);
|
||||
|
||||
/// <inheritdoc />
|
||||
/// <summary>Returns a byte array of the hash value.</summary>
|
||||
public byte[] Final()
|
||||
{
|
||||
var finalSum = (ushort)(_sum2 << 8 | _sum1);
|
||||
|
||||
if(!_useNative)
|
||||
return BigEndianBitConverter.GetBytes(finalSum);
|
||||
|
||||
fletcher16_final(_nativeContext, ref finalSum);
|
||||
fletcher16_free(_nativeContext);
|
||||
|
||||
return BigEndianBitConverter.GetBytes(finalSum);
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
/// <summary>Returns a hexadecimal representation of the hash value.</summary>
|
||||
public string End()
|
||||
{
|
||||
var finalSum = (ushort)(_sum2 << 8 | _sum1);
|
||||
|
||||
if(_useNative)
|
||||
{
|
||||
fletcher16_final(_nativeContext, ref finalSum);
|
||||
fletcher16_free(_nativeContext);
|
||||
}
|
||||
|
||||
var fletcherOutput = new StringBuilder();
|
||||
|
||||
for(var i = 0; i < BigEndianBitConverter.GetBytes(finalSum).Length; i++)
|
||||
fletcherOutput.Append(BigEndianBitConverter.GetBytes(finalSum)[i].ToString("x2"));
|
||||
|
||||
return fletcherOutput.ToString();
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
[DllImport("libAaru.Checksums.Native", SetLastError = true)]
|
||||
static extern IntPtr fletcher16_init();
|
||||
|
||||
@@ -513,13 +453,11 @@ public sealed class Fletcher16Context : IChecksum
|
||||
{
|
||||
sum1 += data[dataOff];
|
||||
|
||||
if(sum1 >= FLETCHER_MODULE)
|
||||
sum1 -= FLETCHER_MODULE;
|
||||
if(sum1 >= FLETCHER_MODULE) sum1 -= FLETCHER_MODULE;
|
||||
|
||||
sum2 += sum1;
|
||||
|
||||
if(sum2 >= FLETCHER_MODULE)
|
||||
sum2 -= FLETCHER_MODULE;
|
||||
if(sum2 >= FLETCHER_MODULE) sum2 -= FLETCHER_MODULE;
|
||||
|
||||
previousSum1 = (byte)(sum1 & 0xFF);
|
||||
previousSum2 = (byte)(sum2 & 0xFF);
|
||||
@@ -536,8 +474,7 @@ public sealed class Fletcher16Context : IChecksum
|
||||
sum2 += sum1;
|
||||
}
|
||||
|
||||
if(sum1 >= FLETCHER_MODULE)
|
||||
sum1 -= FLETCHER_MODULE;
|
||||
if(sum1 >= FLETCHER_MODULE) sum1 -= FLETCHER_MODULE;
|
||||
|
||||
sum2 %= FLETCHER_MODULE; /* only added so many FLETCHER_MODULE's */
|
||||
previousSum1 = (byte)(sum1 & 0xFF);
|
||||
@@ -653,8 +590,7 @@ public sealed class Fletcher16Context : IChecksum
|
||||
{
|
||||
nativeContext = fletcher16_init();
|
||||
|
||||
if(nativeContext == IntPtr.Zero)
|
||||
useNative = false;
|
||||
if(nativeContext == IntPtr.Zero) useNative = false;
|
||||
}
|
||||
|
||||
var fileStream = new FileStream(filename, FileMode.Open);
|
||||
@@ -684,8 +620,7 @@ public sealed class Fletcher16Context : IChecksum
|
||||
|
||||
var fletcherOutput = new StringBuilder();
|
||||
|
||||
foreach(byte h in hash)
|
||||
fletcherOutput.Append(h.ToString("x2"));
|
||||
foreach(byte h in hash) fletcherOutput.Append(h.ToString("x2"));
|
||||
|
||||
fileStream.Close();
|
||||
|
||||
@@ -705,8 +640,7 @@ public sealed class Fletcher16Context : IChecksum
|
||||
{
|
||||
nativeContext = fletcher16_init();
|
||||
|
||||
if(nativeContext == IntPtr.Zero)
|
||||
useNative = false;
|
||||
if(nativeContext == IntPtr.Zero) useNative = false;
|
||||
}
|
||||
|
||||
byte localSum1 = 0xFF;
|
||||
@@ -726,8 +660,7 @@ public sealed class Fletcher16Context : IChecksum
|
||||
|
||||
var adlerOutput = new StringBuilder();
|
||||
|
||||
foreach(byte h in hash)
|
||||
adlerOutput.Append(h.ToString("x2"));
|
||||
foreach(byte h in hash) adlerOutput.Append(h.ToString("x2"));
|
||||
|
||||
return adlerOutput.ToString();
|
||||
}
|
||||
@@ -736,4 +669,53 @@ public sealed class Fletcher16Context : IChecksum
|
||||
/// <param name="data">Data buffer.</param>
|
||||
/// <param name="hash">Byte array of the hash value.</param>
|
||||
public static string Data(byte[] data, out byte[] hash) => Data(data, (uint)data.Length, out hash);
|
||||
|
||||
#region IChecksum Members
|
||||
|
||||
/// <inheritdoc />
|
||||
/// <summary>Updates the hash with data.</summary>
|
||||
/// <param name="data">Data buffer.</param>
|
||||
/// <param name="len">Length of buffer to hash.</param>
|
||||
public void Update(byte[] data, uint len) => Step(ref _sum1, ref _sum2, data, len, _useNative, _nativeContext);
|
||||
|
||||
/// <inheritdoc />
|
||||
/// <summary>Updates the hash with data.</summary>
|
||||
/// <param name="data">Data buffer.</param>
|
||||
public void Update(byte[] data) => Update(data, (uint)data.Length);
|
||||
|
||||
/// <inheritdoc />
|
||||
/// <summary>Returns a byte array of the hash value.</summary>
|
||||
public byte[] Final()
|
||||
{
|
||||
var finalSum = (ushort)(_sum2 << 8 | _sum1);
|
||||
|
||||
if(!_useNative) return BigEndianBitConverter.GetBytes(finalSum);
|
||||
|
||||
fletcher16_final(_nativeContext, ref finalSum);
|
||||
fletcher16_free(_nativeContext);
|
||||
|
||||
return BigEndianBitConverter.GetBytes(finalSum);
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
/// <summary>Returns a hexadecimal representation of the hash value.</summary>
|
||||
public string End()
|
||||
{
|
||||
var finalSum = (ushort)(_sum2 << 8 | _sum1);
|
||||
|
||||
if(_useNative)
|
||||
{
|
||||
fletcher16_final(_nativeContext, ref finalSum);
|
||||
fletcher16_free(_nativeContext);
|
||||
}
|
||||
|
||||
var fletcherOutput = new StringBuilder();
|
||||
|
||||
for(var i = 0; i < BigEndianBitConverter.GetBytes(finalSum).Length; i++)
|
||||
fletcherOutput.Append(BigEndianBitConverter.GetBytes(finalSum)[i].ToString("x2"));
|
||||
|
||||
return fletcherOutput.ToString();
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
Reference in New Issue
Block a user