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

MqvPublicParameters

using System; namespace Org.BouncyCastle.Crypto.Parameters { public class MqvPublicParameters : ICipherParameters { private readonly ECPublicKeyParameters staticPublicKey; private readonly ECPublicKeyParameters ephemeralPublicKey; public virtual ECPublicKeyParameters StaticPublicKey => staticPublicKey; public virtual ECPublicKeyParameters EphemeralPublicKey => ephemeralPublicKey; public MqvPublicParameters(ECPublicKeyParameters staticPublicKey, ECPublicKeyParameters ephemeralPublicKey) { if (staticPublicKey == null) throw new ArgumentNullException("staticPublicKey"); if (ephemeralPublicKey == null) throw new ArgumentNullException("ephemeralPublicKey"); if (!staticPublicKey.Parameters.Equals(ephemeralPublicKey.Parameters)) throw new ArgumentException("Static and ephemeral public keys have different domain parameters"); this.staticPublicKey = staticPublicKey; this.ephemeralPublicKey = ephemeralPublicKey; } } }