IHashProvider
using System;
namespace SshNet.Security.Cryptography
{
    internal interface IHashProvider : IDisposable
    {
        int HashSize { get; }
        int InputBlockSize { get; }
        int OutputBlockSize { get; }
        byte[] Hash { get; }
        void Reset();
        void HashCore(byte[] array, int ibStart, int cbSize);
        byte[] HashFinal();
        int TransformBlock(byte[] inputBuffer, int inputOffset, int inputCount, byte[] outputBuffer, int outputOffset);
        byte[] TransformFinalBlock(byte[] inputBuffer, int inputOffset, int inputCount);
        byte[] ComputeHash(byte[] buffer);
    }
}