<PackageReference Include="BouncyCastle.Cryptography" Version="2.6.2" />

Sha384Digest

public class Sha384Digest : LongDigest
using Org.BouncyCastle.Crypto.Utilities; using Org.BouncyCastle.Utilities; namespace Org.BouncyCastle.Crypto.Digests { public class Sha384Digest : LongDigest { private const int DigestLength = 48; public override string AlgorithmName => "SHA-384"; public Sha384Digest() { } public Sha384Digest(Sha384Digest t) : base(t) { } public override int GetDigestSize() { return 48; } public override int DoFinal(byte[] output, int outOff) { Finish(); Pack.UInt64_To_BE(H1, output, outOff); Pack.UInt64_To_BE(H2, output, outOff + 8); Pack.UInt64_To_BE(H3, output, outOff + 16); Pack.UInt64_To_BE(H4, output, outOff + 24); Pack.UInt64_To_BE(H5, output, outOff + 32); Pack.UInt64_To_BE(H6, output, outOff + 40); Reset(); return 48; } public override void Reset() { base.Reset(); H1 = 14680500436340154072; H2 = 7105036623409894663; H3 = 10473403895298186519; H4 = 1526699215303891257; H5 = 7436329637833083697; H6 = 10282925794625328401; H7 = 15784041429090275239; H8 = 5167115440072839076; } public override IMemoable Copy() { return new Sha384Digest(this); } public override void Reset(IMemoable other) { Sha384Digest t = (Sha384Digest)other; CopyIn(t); } } }