SHA512HashProvider
namespace SshNet.Security.Cryptography
{
internal class SHA512HashProvider : SHA2HashProviderBase
{
private const int DigestSize = 64;
public override int HashSize => 512;
public override int InputBlockSize => 128;
public override int OutputBlockSize => 128;
public override byte[] HashFinal()
{
byte[] array = new byte[64];
Finish();
SHA2HashProviderBase.UInt64_To_BE(H1, array, 0);
SHA2HashProviderBase.UInt64_To_BE(H2, array, 8);
SHA2HashProviderBase.UInt64_To_BE(H3, array, 16);
SHA2HashProviderBase.UInt64_To_BE(H4, array, 24);
SHA2HashProviderBase.UInt64_To_BE(H5, array, 32);
SHA2HashProviderBase.UInt64_To_BE(H6, array, 40);
SHA2HashProviderBase.UInt64_To_BE(H7, array, 48);
SHA2HashProviderBase.UInt64_To_BE(H8, array, 56);
Initialize();
return array;
}
public override void Initialize()
{
base.Initialize();
H1 = 7640891576956012808;
H2 = 13503953896175478587;
H3 = 4354685564936845355;
H4 = 11912009170470909681;
H5 = 5840696475078001361;
H6 = 11170449401992604703;
H7 = 2270897969802886507;
H8 = 6620516959819538809;
}
}
}