33 lines
834 B
C#
33 lines
834 B
C#
using System;
|
|
using Org.BouncyCastle.Asn1;
|
|
using Org.BouncyCastle.Math;
|
|
|
|
namespace Org.BouncyCastle.Crypto.Parameters;
|
|
|
|
public class Gost3410PublicKeyParameters : Gost3410KeyParameters
|
|
{
|
|
private readonly BigInteger y;
|
|
|
|
public BigInteger Y => y;
|
|
|
|
public Gost3410PublicKeyParameters(BigInteger y, Gost3410Parameters parameters)
|
|
: base(isPrivate: false, parameters)
|
|
{
|
|
if (y.SignValue < 1 || y.CompareTo(base.Parameters.P) >= 0)
|
|
{
|
|
throw new ArgumentException("Invalid y for GOST3410 public key", "y");
|
|
}
|
|
this.y = y;
|
|
}
|
|
|
|
public Gost3410PublicKeyParameters(BigInteger y, DerObjectIdentifier publicKeyParamSet)
|
|
: base(isPrivate: false, publicKeyParamSet)
|
|
{
|
|
if (y.SignValue < 1 || y.CompareTo(base.Parameters.P) >= 0)
|
|
{
|
|
throw new ArgumentException("Invalid y for GOST3410 public key", "y");
|
|
}
|
|
this.y = y;
|
|
}
|
|
}
|