<PackageReference Include="BouncyCastle.Cryptography" Version="2.7.0-beta.98" />

PKMacFactory

sealed class PKMacFactory : IMacFactory
using Org.BouncyCastle.Asn1.Cmp; using Org.BouncyCastle.Asn1.X509; using Org.BouncyCastle.Crypto; using Org.BouncyCastle.Crypto.Operators; using Org.BouncyCastle.Crypto.Parameters; using Org.BouncyCastle.Security; namespace Org.BouncyCastle.Crmf { internal sealed class PKMacFactory : IMacFactory { private readonly KeyParameter m_key; private readonly PbmParameter m_parameters; public object AlgorithmDetails => new AlgorithmIdentifier(CmpObjectIdentifiers.passwordBasedMac, m_parameters); internal PKMacFactory(byte[] key, PbmParameter parameters) { m_key = new KeyParameter(key); m_parameters = parameters; } public IStreamCalculator<IBlockResult> CreateCalculator() { IMac mac = MacUtilities.GetMac(m_parameters.Mac.Algorithm); mac.Init(m_key); return new DefaultMacCalculator(mac); } } }