public Gost3410KeyGenerationParameters(
     SecureRandom random,
     Gost3410Parameters parameters)
     : base(random, parameters.P.BitLength - 1)
 {
     this.parameters = parameters;
 }
 protected Gost3410KeyParameters(
     bool				isPrivate,
     Gost3410Parameters	parameters)
     : base(isPrivate)
 {
     this.parameters = parameters;
 }
 protected Gost3410KeyParameters(
     bool				isPrivate,
     DerObjectIdentifier	publicKeyParamSet)
     : base(isPrivate)
 {
     this.parameters = LookupParameters(publicKeyParamSet);
     this.publicKeyParamSet = publicKeyParamSet;
 }
        public Gost3410PublicKeyParameters(
            BigInteger y,
            Gost3410Parameters parameters)
            : base(false, parameters)
        {
            if (y.SignValue < 1 || y.CompareTo(Parameters.P) >= 0)
                throw new ArgumentException("Invalid y for GOST3410 public key", "y");

            this.y = y;
        }
        public Gost3410PrivateKeyParameters(
            BigInteger			x,
            Gost3410Parameters	parameters)
            : base(true, parameters)
        {
            if (x.SignValue < 1 || x.BitLength > 256 || x.CompareTo(Parameters.Q) >= 0)
                throw new ArgumentException("Invalid x for GOST3410 private key", "x");

            this.x = x;
        }
 protected bool Equals(
     Gost3410Parameters other)
 {
     return p.Equals(other.p) && q.Equals(other.q) && a.Equals(other.a);
 }