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

Asn1DigestFactory

using Org.BouncyCastle.Asn1; using Org.BouncyCastle.Asn1.X509; using Org.BouncyCastle.Security; namespace Org.BouncyCastle.Crypto.Operators { public class Asn1DigestFactory : IDigestFactory { private readonly IDigest m_digest; private readonly DerObjectIdentifier m_oid; public virtual object AlgorithmDetails => new AlgorithmIdentifier(m_oid); public virtual int DigestLength => m_digest.GetDigestSize(); public static Asn1DigestFactory Get(DerObjectIdentifier oid) { return new Asn1DigestFactory(DigestUtilities.GetDigest(oid), oid); } public static Asn1DigestFactory Get(string mechanism) { return Get(DigestUtilities.GetObjectIdentifier(mechanism)); } public Asn1DigestFactory(IDigest digest, DerObjectIdentifier oid) { m_digest = digest; m_oid = oid; } public virtual IStreamCalculator<IBlockResult> CreateCalculator() { return new DefaultDigestCalculator(m_digest); } } }