using System; using System.Diagnostics.CodeAnalysis; using System.IO; using System.Text; using TechnologyAssembler.Core.Hashing; namespace HashCalculator.GUI { public static class SageHash { [SuppressMessage("MicrosoftCodeAnalysisCorrectness", "RS1024:Compare symbols correctly", Justification = "")] public static uint CalculateBinaryHash(byte[] content) { if (content == null) { throw new ArgumentNullException(nameof(content)); } return FastHash.GetHashCode(content); } public static uint CalculateLauncherBinaryHash(byte[] content) { if (content == null) { throw new ArgumentNullException(nameof(content)); } return FastHash.GetHashCodeLauncher(0, content); } public static uint CalculateBinaryHash(string content) { if (content == null) { throw new ArgumentNullException(nameof(content)); } return CalculateBinaryHash(Encoding.ASCII.GetBytes(content)); } public static uint CalculateLowercaseHash(string content) { if (content == null) { throw new ArgumentNullException(nameof(content)); } return CalculateBinaryHash(content.ToLowerInvariant()); } public static uint CalculateFileHash(string path) { if (path == null) { throw new ArgumentNullException(nameof(path)); } return CalculateBinaryHash(File.ReadAllBytes(path)); } } }