Пример #1
0
        public void SetPQNotLessTest()
        {
            const int p = 17;
            const int q = 18;

            var exchanger = new DiffieHellmanExchanger();

            bool result = exchanger.TrySetPQ(p, q);

            Assert.IsFalse(result);
        }
Пример #2
0
        public void SetPQValidTest()
        {
            const int p = 17;
            const int q = 11;

            var exchanger = new DiffieHellmanExchanger();

            bool result = exchanger.TrySetPQ(p, q);

            Assert.IsTrue(result);
            Assert.AreEqual(p, exchanger.P);
            Assert.AreEqual(q, exchanger.Q);
        }
Пример #3
0
        public void GeneratePartTest()
        {
            const int p = 17;
            const int q = 11;

            var exchanger = new DiffieHellmanExchanger();

            exchanger.TrySetPQ(p, q);

            int result = exchanger.GeneratePart();

            Assert.AreEqual(
                result,
                Algorithms.Modulo(exchanger.Q, exchanger.Part, exchanger.P));
        }
Пример #4
0
        public void GeneratePartEventTest()
        {
            const int p    = 17;
            const int q    = 11;
            int       part = -1;

            var exchanger = new DiffieHellmanExchanger();

            exchanger.TrySetPQ(p, q);

            exchanger.KeyPartGenerated += (sender, e) =>
            {
                part = e.Key.Value;
            };

            int result = exchanger.GeneratePart();

            Assert.AreEqual(result, part);
        }
Пример #5
0
        public void GenerateKeyTest()
        {
            const int p         = 17;
            const int q         = 11;
            const int otherPart = 2;

            var exchanger = new DiffieHellmanExchanger();

            exchanger.TrySetPQ(p, q);
            exchanger.ExternalKeySource =
                () => Task.FromResult(new Key <int>(otherPart));

            int result = exchanger.GeneratePart();

            var key = exchanger.GenerateKey().Result;

            Assert.AreEqual(
                key.Value,
                Algorithms.Modulo(otherPart, exchanger.Part, exchanger.P));
        }