using System.Security.Cryptography;
using DTLib.Extensions;

namespace Mlaumcherb.Client.Avalonia.холопы;

public static class HashHelper
{
    private static SHA1 _hasher;

    static HashHelper()
    {
        _hasher = SHA1.Create();
    }

    public static string HashFileSHA1(IOPath f)
    {
        using var fs = File.OpenRead(f);
        byte[] hash = _hasher.ComputeHash(fs);
        return hash.HashToString();
    }

    public static bool CheckFileSHA1(IOPath f, string? sha1, bool checkHash)
    {
        if (!File.Exists(f))
            return false;
        
        if(checkHash && sha1 is not null)
            return HashFileSHA1(f) == sha1;

        return true;
    }
}