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); }
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); } }