Exemplo n.º 1
0
        public void SetUp()
        {
            DsaParametersGenerator paramGen = new DsaParametersGenerator();

            _dsaParameters = paramGen.GenerateParameters(1024, 160, 160);
            _dsaParameters.HashFunction = new Hasher(Hasher.HashImplementation.Sha1);

            UserKeyGenerator keyGen = new UserKeyGenerator(_dsaParameters);

            _keyPair = keyGen.GenerateKeyPair();

            _dsaAlgorithm = new DsaAlgorithm(_dsaParameters);
        }
Exemplo n.º 2
0
        public void When_GenerateParameters_Should_ReturnCorrectValues()
        {
            for (int i = 0; i < 3; i++)
            {
                DsaSystemParameters parameters = _generator.GenerateParameters(1024, 160, 160);

                _primalityTester.CheckPrimality(parameters.Q).Should().BeTrue();
                _primalityTester.CheckPrimality(parameters.P).Should().BeTrue();

                //p - 1 is a multiple of q
                ((parameters.P - 1) % parameters.Q).Should().BeEquivalentTo(BigInteger.Zero);

                //g^q is congruent to mod 1
                BigInteger.ModPow(parameters.G, parameters.Q, parameters.P).Should().BeEquivalentTo(BigInteger.One);
            }
        }