public void ShouldVerifyUnverifiableGeneratorsProperly(string pHex, string qHex, string gHex, bool success)
        {
            var p = new BitString(pHex).ToPositiveBigInteger();
            var q = new BitString(qHex).ToPositiveBigInteger();
            var g = new BitString(gHex).ToPositiveBigInteger();

            var subject = new UnverifiableGeneratorGeneratorValidator();

            var result = subject.Validate(p, q, g);

            Assert.AreEqual(success, result.Success, result.ErrorMessage);
        }
        public void ShouldGenerateUnverifiableGeneratorsProperly(string pHex, string qHex)
        {
            var p = new BitString(pHex).ToPositiveBigInteger();
            var q = new BitString(qHex).ToPositiveBigInteger();

            var subject = new UnverifiableGeneratorGeneratorValidator();

            var result = subject.Generate(p, q);

            Assert.IsTrue(result.Success, result.ErrorMessage);

            var verified = subject.Validate(p, q, result.G);

            Assert.IsTrue(verified.Success, $"g = {result.G}\n{verified.ErrorMessage}");
        }