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

ParametersWithRandom

using Org.BouncyCastle.Security; using System; namespace Org.BouncyCastle.Crypto.Parameters { public class ParametersWithRandom : ICipherParameters { private readonly ICipherParameters m_parameters; private readonly SecureRandom m_random; public ICipherParameters Parameters => m_parameters; public SecureRandom Random => m_random; public ParametersWithRandom(ICipherParameters parameters) : this(parameters, CryptoServicesRegistrar.GetSecureRandom()) { } public ParametersWithRandom(ICipherParameters parameters, SecureRandom random) { if (parameters == null) throw new ArgumentNullException("parameters"); m_parameters = parameters; if (random == null) throw new ArgumentNullException("random"); m_random = random; } } }