diff --git a/Adler32Context.cs b/Adler32Context.cs
index 418db2d2a..a0c4c2364 100644
--- a/Adler32Context.cs
+++ b/Adler32Context.cs
@@ -36,6 +36,9 @@ using System.Text;
namespace DiscImageChef.Checksums
{
+ ///
+ /// Implements the Adler-32 algorithm
+ ///
public class Adler32Context
{
ushort sum1, sum2;
diff --git a/CDChecksums.cs b/CDChecksums.cs
index 7b963dc05..45478af21 100644
--- a/CDChecksums.cs
+++ b/CDChecksums.cs
@@ -37,6 +37,9 @@ using DiscImageChef.Console;
namespace DiscImageChef.Checksums
{
+ ///
+ /// Implements ReedSolomon and CRC32 algorithms as used by CD-ROM
+ ///
public static class CdChecksums
{
static byte[] eccFTable;
diff --git a/CRC16Context.cs b/CRC16Context.cs
index ecd9bd4da..389ef624e 100644
--- a/CRC16Context.cs
+++ b/CRC16Context.cs
@@ -37,7 +37,7 @@ using System.Text;
namespace DiscImageChef.Checksums
{
///
- /// Provides a UNIX similar API to calculate CRC16.
+ /// Implements a CRC16-CCITT algorithm
///
public class Crc16Context
{
diff --git a/CRC32Context.cs b/CRC32Context.cs
index 7ad121d70..26b543962 100644
--- a/CRC32Context.cs
+++ b/CRC32Context.cs
@@ -37,7 +37,7 @@ using System.Text;
namespace DiscImageChef.Checksums
{
///
- /// Provides a UNIX similar API to calculate CRC32.
+ /// Implements a CRC32 algorithm
///
public class Crc32Context
{
diff --git a/CRC64Context.cs b/CRC64Context.cs
index 7a26a6518..2294e5ca4 100644
--- a/CRC64Context.cs
+++ b/CRC64Context.cs
@@ -36,7 +36,7 @@ using System.Text;
namespace DiscImageChef.Checksums
{
///
- /// Provides a UNIX similar API to calculate CRC64 (ECMA).
+ /// Implements a CRC64 (ECMA) algorithm
///
public class Crc64Context
{
diff --git a/FletcherContext.cs b/FletcherContext.cs
index 13982c8ae..da63771f8 100644
--- a/FletcherContext.cs
+++ b/FletcherContext.cs
@@ -40,12 +40,12 @@ namespace DiscImageChef.Checksums
{
public class Fletcher32Context
{
- UInt16 sum1, sum2;
- byte oddValue;
bool inodd;
+ byte oddValue;
+ ushort sum1, sum2;
///
- /// Initializes the Fletcher32 sums
+ /// Initializes the Fletcher32 sums
///
public void Init()
{
@@ -56,16 +56,14 @@ namespace DiscImageChef.Checksums
}
///
- /// Updates the hash with data.
+ /// Updates the hash with data.
///
/// Data buffer.
/// Length of buffer to hash.
public void Update(byte[] data, uint len)
{
- UInt16 block;
+ ushort block;
if(!inodd)
- {
- // Odd size
if(len % 2 != 0)
{
oddValue = data[len - 1];
@@ -74,8 +72,8 @@ namespace DiscImageChef.Checksums
for(int i = 0; i < len - 1; i += 2)
{
block = BigEndianBitConverter.ToUInt16(data, i);
- sum1 = (UInt16)((sum1 + block) % 0xFFFF);
- sum2 = (UInt16)((sum2 + sum1) % 0xFFFF);
+ sum1 = (ushort)((sum1 + block) % 0xFFFF);
+ sum2 = (ushort)((sum2 + sum1) % 0xFFFF);
}
}
else
@@ -84,11 +82,10 @@ namespace DiscImageChef.Checksums
for(int i = 0; i < len; i += 2)
{
block = BigEndianBitConverter.ToUInt16(data, i);
- sum1 = (UInt16)((sum1 + block) % 0xFFFF);
- sum2 = (UInt16)((sum2 + sum1) % 0xFFFF);
+ sum1 = (ushort)((sum1 + block) % 0xFFFF);
+ sum2 = (ushort)((sum2 + sum1) % 0xFFFF);
}
}
- }
// Carrying odd
else
{
@@ -97,8 +94,8 @@ namespace DiscImageChef.Checksums
oddData[1] = data[0];
block = BigEndianBitConverter.ToUInt16(oddData, 0);
- sum1 = (UInt16)((sum1 + block) % 0xFFFF);
- sum2 = (UInt16)((sum2 + sum1) % 0xFFFF);
+ sum1 = (ushort)((sum1 + block) % 0xFFFF);
+ sum2 = (ushort)((sum2 + sum1) % 0xFFFF);
// Even size, carrying odd
if(len % 2 == 0)
@@ -109,8 +106,8 @@ namespace DiscImageChef.Checksums
for(int i = 1; i < len - 1; i += 2)
{
block = BigEndianBitConverter.ToUInt16(data, i);
- sum1 = (UInt16)((sum1 + block) % 0xFFFF);
- sum2 = (UInt16)((sum2 + sum1) % 0xFFFF);
+ sum1 = (ushort)((sum1 + block) % 0xFFFF);
+ sum2 = (ushort)((sum2 + sum1) % 0xFFFF);
}
}
else
@@ -119,15 +116,15 @@ namespace DiscImageChef.Checksums
for(int i = 1; i < len; i += 2)
{
block = BigEndianBitConverter.ToUInt16(data, i);
- sum1 = (UInt16)((sum1 + block) % 0xFFFF);
- sum2 = (UInt16)((sum2 + sum1) % 0xFFFF);
+ sum1 = (ushort)((sum1 + block) % 0xFFFF);
+ sum2 = (ushort)((sum2 + sum1) % 0xFFFF);
}
}
}
}
///
- /// Updates the hash with data.
+ /// Updates the hash with data.
///
/// Data buffer.
public void Update(byte[] data)
@@ -136,68 +133,62 @@ namespace DiscImageChef.Checksums
}
///
- /// Returns a byte array of the hash value.
+ /// Returns a byte array of the hash value.
///
public byte[] Final()
{
- UInt32 finalSum = (UInt32)(sum1 + (sum2 << 16));
+ uint finalSum = (uint)(sum1 + (sum2 << 16));
return BigEndianBitConverter.GetBytes(finalSum);
}
///
- /// Returns a hexadecimal representation of the hash value.
+ /// Returns a hexadecimal representation of the hash value.
///
public string End()
{
- UInt32 finalSum = (UInt32)(sum1 + (sum2 << 16));
+ uint finalSum = (uint)(sum1 + (sum2 << 16));
StringBuilder fletcherOutput = new StringBuilder();
for(int i = 0; i < BigEndianBitConverter.GetBytes(finalSum).Length; i++)
- {
fletcherOutput.Append(BigEndianBitConverter.GetBytes(finalSum)[i].ToString("x2"));
- }
return fletcherOutput.ToString();
}
///
- /// Gets the hash of a file
+ /// Gets the hash of a file
///
/// File path.
public static byte[] File(string filename)
{
- byte[] hash;
- File(filename, out hash);
+ File(filename, out byte[] hash);
return hash;
}
///
- /// Gets the hash of a file in hexadecimal and as a byte array.
+ /// Gets the hash of a file in hexadecimal and as a byte array.
///
/// File path.
/// Byte array of the hash value.
public static string File(string filename, out byte[] hash)
{
FileStream fileStream = new FileStream(filename, FileMode.Open);
- UInt16 localSum1, localSum2, block;
- UInt32 finalSum;
+ ushort localSum1, localSum2, block;
+ uint finalSum;
byte[] blockBytes;
localSum1 = 0xFFFF;
localSum2 = 0xFFFF;
- block = 0;
if(fileStream.Length % 2 == 0)
- {
for(int i = 0; i < fileStream.Length; i += 2)
{
blockBytes = new byte[2];
fileStream.Read(blockBytes, 0, 2);
block = BigEndianBitConverter.ToUInt16(blockBytes, 0);
- localSum1 = (UInt16)((localSum1 + block) % 0xFFFF);
- localSum2 = (UInt16)((localSum2 + localSum1) % 0xFFFF);
+ localSum1 = (ushort)((localSum1 + block) % 0xFFFF);
+ localSum2 = (ushort)((localSum2 + localSum1) % 0xFFFF);
}
- }
else
{
for(int i = 0; i < fileStream.Length - 1; i += 2)
@@ -205,8 +196,8 @@ namespace DiscImageChef.Checksums
blockBytes = new byte[2];
fileStream.Read(blockBytes, 0, 2);
block = BigEndianBitConverter.ToUInt16(blockBytes, 0);
- localSum1 = (UInt16)((localSum1 + block) % 0xFFFF);
- localSum2 = (UInt16)((localSum2 + localSum1) % 0xFFFF);
+ localSum1 = (ushort)((localSum1 + block) % 0xFFFF);
+ localSum2 = (ushort)((localSum2 + localSum1) % 0xFFFF);
}
byte[] oddData = new byte[2];
@@ -214,55 +205,49 @@ namespace DiscImageChef.Checksums
oddData[1] = 0;
block = BigEndianBitConverter.ToUInt16(oddData, 0);
- localSum1 = (UInt16)((localSum1 + block) % 0xFFFF);
- localSum2 = (UInt16)((localSum2 + localSum1) % 0xFFFF);
+ localSum1 = (ushort)((localSum1 + block) % 0xFFFF);
+ localSum2 = (ushort)((localSum2 + localSum1) % 0xFFFF);
}
- finalSum = (UInt32)(localSum1 + (localSum2 << 16));
+ finalSum = (uint)(localSum1 + (localSum2 << 16));
hash = BitConverter.GetBytes(finalSum);
StringBuilder fletcherOutput = new StringBuilder();
- for(int i = 0; i < hash.Length; i++)
- {
- fletcherOutput.Append(hash[i].ToString("x2"));
- }
+ foreach(byte h in hash) fletcherOutput.Append(h.ToString("x2"));
return fletcherOutput.ToString();
}
///
- /// Gets the hash of the specified data buffer.
+ /// Gets the hash of the specified data buffer.
///
/// Data buffer.
/// Length of the data buffer to hash.
/// Byte array of the hash value.
public static string Data(byte[] data, uint len, out byte[] hash)
{
- UInt16 localSum1, localSum2, block;
- UInt32 finalSum;
+ ushort localSum1, localSum2, block;
+ uint finalSum;
localSum1 = 0xFFFF;
localSum2 = 0xFFFF;
- block = 0;
if(len % 2 == 0)
- {
for(int i = 0; i < len; i += 2)
{
block = BigEndianBitConverter.ToUInt16(data, i);
- localSum1 = (UInt16)((localSum1 + block) % 0xFFFF);
- localSum2 = (UInt16)((localSum2 + localSum1) % 0xFFFF);
+ localSum1 = (ushort)((localSum1 + block) % 0xFFFF);
+ localSum2 = (ushort)((localSum2 + localSum1) % 0xFFFF);
}
- }
else
{
for(int i = 0; i < len - 1; i += 2)
{
block = BigEndianBitConverter.ToUInt16(data, i);
- localSum1 = (UInt16)((localSum1 + block) % 0xFFFF);
- localSum2 = (UInt16)((localSum2 + localSum1) % 0xFFFF);
+ localSum1 = (ushort)((localSum1 + block) % 0xFFFF);
+ localSum2 = (ushort)((localSum2 + localSum1) % 0xFFFF);
}
byte[] oddData = new byte[2];
@@ -270,26 +255,23 @@ namespace DiscImageChef.Checksums
oddData[1] = 0;
block = BigEndianBitConverter.ToUInt16(oddData, 0);
- localSum1 = (UInt16)((localSum1 + block) % 0xFFFF);
- localSum2 = (UInt16)((localSum2 + localSum1) % 0xFFFF);
+ localSum1 = (ushort)((localSum1 + block) % 0xFFFF);
+ localSum2 = (ushort)((localSum2 + localSum1) % 0xFFFF);
}
- finalSum = (UInt32)(localSum1 + (localSum2 << 16));
+ finalSum = (uint)(localSum1 + (localSum2 << 16));
hash = BitConverter.GetBytes(finalSum);
StringBuilder fletcherOutput = new StringBuilder();
- for(int i = 0; i < hash.Length; i++)
- {
- fletcherOutput.Append(hash[i].ToString("x2"));
- }
+ foreach(byte h in hash) fletcherOutput.Append(h.ToString("x2"));
return fletcherOutput.ToString();
}
///
- /// Gets the hash of the specified data buffer.
+ /// Gets the hash of the specified data buffer.
///
/// Data buffer.
/// Byte array of the hash value.
@@ -304,7 +286,7 @@ namespace DiscImageChef.Checksums
byte sum1, sum2;
///
- /// Initializes the Fletcher16 sums
+ /// Initializes the Fletcher16 sums
///
public void Init()
{
@@ -313,7 +295,7 @@ namespace DiscImageChef.Checksums
}
///
- /// Updates the hash with data.
+ /// Updates the hash with data.
///
/// Data buffer.
/// Length of buffer to hash.
@@ -327,7 +309,7 @@ namespace DiscImageChef.Checksums
}
///
- /// Updates the hash with data.
+ /// Updates the hash with data.
///
/// Data buffer.
public void Update(byte[] data)
@@ -336,43 +318,40 @@ namespace DiscImageChef.Checksums
}
///
- /// Returns a byte array of the hash value.
+ /// Returns a byte array of the hash value.
///
public byte[] Final()
{
- UInt16 finalSum = (UInt16)(sum1 + (sum2 << 8));
+ ushort finalSum = (ushort)(sum1 + (sum2 << 8));
return BigEndianBitConverter.GetBytes(finalSum);
}
///
- /// Returns a hexadecimal representation of the hash value.
+ /// Returns a hexadecimal representation of the hash value.
///
public string End()
{
- UInt16 finalSum = (UInt16)(sum1 + (sum2 << 8));
+ ushort finalSum = (ushort)(sum1 + (sum2 << 8));
StringBuilder fletcherOutput = new StringBuilder();
for(int i = 0; i < BigEndianBitConverter.GetBytes(finalSum).Length; i++)
- {
fletcherOutput.Append(BigEndianBitConverter.GetBytes(finalSum)[i].ToString("x2"));
- }
return fletcherOutput.ToString();
}
///
- /// Gets the hash of a file
+ /// Gets the hash of a file
///
/// File path.
public static byte[] File(string filename)
{
- byte[] hash;
- File(filename, out hash);
+ File(filename, out byte[] hash);
return hash;
}
///
- /// Gets the hash of a file in hexadecimal and as a byte array.
+ /// Gets the hash of a file in hexadecimal and as a byte array.
///
/// File path.
/// Byte array of the hash value.
@@ -380,11 +359,10 @@ namespace DiscImageChef.Checksums
{
FileStream fileStream = new FileStream(filename, FileMode.Open);
byte localSum1, localSum2, block;
- UInt16 finalSum;
+ ushort finalSum;
localSum1 = 0xFF;
localSum2 = 0xFF;
- block = 0;
for(int i = 0; i < fileStream.Length; i += 2)
{
@@ -393,22 +371,19 @@ namespace DiscImageChef.Checksums
localSum2 = (byte)((localSum2 + localSum1) % 0xFF);
}
- finalSum = (UInt16)(localSum1 + (localSum2 << 8));
+ finalSum = (ushort)(localSum1 + (localSum2 << 8));
hash = BitConverter.GetBytes(finalSum);
StringBuilder fletcherOutput = new StringBuilder();
- for(int i = 0; i < hash.Length; i++)
- {
- fletcherOutput.Append(hash[i].ToString("x2"));
- }
+ foreach(byte h in hash) fletcherOutput.Append(h.ToString("x2"));
return fletcherOutput.ToString();
}
///
- /// Gets the hash of the specified data buffer.
+ /// Gets the hash of the specified data buffer.
///
/// Data buffer.
/// Length of the data buffer to hash.
@@ -416,7 +391,7 @@ namespace DiscImageChef.Checksums
public static string Data(byte[] data, uint len, out byte[] hash)
{
byte localSum1, localSum2;
- UInt16 finalSum;
+ ushort finalSum;
localSum1 = 0xFF;
localSum2 = 0xFF;
@@ -427,22 +402,19 @@ namespace DiscImageChef.Checksums
localSum2 = (byte)((localSum2 + localSum1) % 0xFF);
}
- finalSum = (UInt16)(localSum1 + (localSum2 << 8));
+ finalSum = (ushort)(localSum1 + (localSum2 << 8));
hash = BitConverter.GetBytes(finalSum);
StringBuilder fletcherOutput = new StringBuilder();
- for(int i = 0; i < hash.Length; i++)
- {
- fletcherOutput.Append(hash[i].ToString("x2"));
- }
+ foreach(byte h in hash) fletcherOutput.Append(h.ToString("x2"));
return fletcherOutput.ToString();
}
///
- /// Gets the hash of the specified data buffer.
+ /// Gets the hash of the specified data buffer.
///
/// Data buffer.
/// Byte array of the hash value.
@@ -451,6 +423,4 @@ namespace DiscImageChef.Checksums
return Data(data, (uint)data.Length, out hash);
}
}
-}
-*/
-
+}*/
\ No newline at end of file
diff --git a/MD5Context.cs b/MD5Context.cs
index 81e08930b..c43aece59 100644
--- a/MD5Context.cs
+++ b/MD5Context.cs
@@ -37,7 +37,7 @@ using System.Text;
namespace DiscImageChef.Checksums
{
///
- /// Provides a UNIX similar API to .NET MD5.
+ /// Wraps up .NET MD5 implementation to a Init(), Update(), Final() context.
///
public class Md5Context
{
diff --git a/RIPEMD160Context.cs b/RIPEMD160Context.cs
index 6fe080832..ec246e9e0 100644
--- a/RIPEMD160Context.cs
+++ b/RIPEMD160Context.cs
@@ -37,7 +37,7 @@ using System.Text;
namespace DiscImageChef.Checksums
{
///
- /// Provides a UNIX similar API to .NET RIPEMD160.
+ /// Wraps up .NET RIPEMD160 implementation to a Init(), Update(), Final() context.
///
public class Ripemd160Context
{
diff --git a/ReedSolomon.cs b/ReedSolomon.cs
index 89b4b6e68..c93d0d98f 100644
--- a/ReedSolomon.cs
+++ b/ReedSolomon.cs
@@ -62,6 +62,9 @@ using DiscImageChef.Console;
namespace DiscImageChef.Checksums
{
+ ///
+ /// Implements the Reed-Solomon algorithm
+ ///
public class ReedSolomon
{
/* Primitive polynomials - see Lin & Costello, Error Control Coding Appendix A,
diff --git a/SHA1Context.cs b/SHA1Context.cs
index 6f6544c6c..f8dcea1c3 100644
--- a/SHA1Context.cs
+++ b/SHA1Context.cs
@@ -37,7 +37,7 @@ using System.Text;
namespace DiscImageChef.Checksums
{
///
- /// Provides a UNIX similar API to .NET SHA1.
+ /// Wraps up .NET SHA1 implementation to a Init(), Update(), Final() context.
///
public class Sha1Context
{
diff --git a/SHA256Context.cs b/SHA256Context.cs
index a24531055..146c3801b 100644
--- a/SHA256Context.cs
+++ b/SHA256Context.cs
@@ -37,7 +37,7 @@ using System.Text;
namespace DiscImageChef.Checksums
{
///
- /// Provides a UNIX similar API to .NET SHA256.
+ /// Wraps up .NET SHA256 implementation to a Init(), Update(), Final() context.
///
public class Sha256Context
{
diff --git a/SHA384Context.cs b/SHA384Context.cs
index ee0cd3eb5..e2a21cf35 100644
--- a/SHA384Context.cs
+++ b/SHA384Context.cs
@@ -37,7 +37,7 @@ using System.Text;
namespace DiscImageChef.Checksums
{
///
- /// Provides a UNIX similar API to .NET SHA384.
+ /// Wraps up .NET SHA384 implementation to a Init(), Update(), Final() context.
///
public class Sha384Context
{
diff --git a/SHA512Context.cs b/SHA512Context.cs
index 2ad824ef6..dbaa42c75 100644
--- a/SHA512Context.cs
+++ b/SHA512Context.cs
@@ -37,7 +37,7 @@ using System.Text;
namespace DiscImageChef.Checksums
{
///
- /// Provides a UNIX similar API to .NET SHA512.
+ /// Wraps up .NET SHA512 implementation to a Init(), Update(), Final() context.
///
public class Sha512Context
{
diff --git a/SpamSumContext.cs b/SpamSumContext.cs
index 72e5b4901..52030a622 100644
--- a/SpamSumContext.cs
+++ b/SpamSumContext.cs
@@ -45,7 +45,7 @@ using System.Text;
namespace DiscImageChef.Checksums
{
///
- /// Provides a UNIX similar API to calculate Fuzzy Hash (SpamSum).
+ /// Implements the SpamSum fuzzy hashing algorithm.
///
public class SpamSumContext
{