public void GenerateListOfKeys()
        {
            foreach (var hash in TestHashes)
            {
                IChecksum16 checksum = new Adler16();
                var         baseKeys = new[]
                {
                    (uint)Random.Next(),
                    (uint)Random.Next(),
                    (uint)Random.Next(),
                    (uint)Random.Next(),
                    (uint)Random.Next()
                };
                var gen = new PartialKeyGenerator(checksum, hash, baseKeys)
                {
                    Spacing = 6
                };

                var keys = gen.Generate(100, Random);
                foreach (var key in keys)
                {
                    for (var j = 0; j < baseKeys.Length; j++)
                    {
                        Assert.IsTrue(PartialKeyValidator.ValidateKey(checksum, hash, key.Value, j, baseKeys[j]));
                    }
                }
            }
        }
        public void SingleHashWithStringSeed()
        {
            foreach (var hash in TestHashes)
            {
                IChecksum16 checksum = new Adler16();

                for (uint i = 0; i < 100; i++)
                {
                    var baseKeys = new[]
                    {
                        (uint)Random.Next(),
                        (uint)Random.Next(),
                        (uint)Random.Next(),
                        (uint)Random.Next(),
                        (uint)Random.Next()
                    };
                    var gen = new PartialKeyGenerator(checksum, hash, baseKeys)
                    {
                        Spacing = 6
                    };

                    const string seed = "Bob Smith - [email protected]";
                    var          key  = gen.Generate(seed);

                    for (var j = 0; j < baseKeys.Length; j++)
                    {
                        Assert.IsTrue(PartialKeyValidator.ValidateKey(checksum, hash, key, j, baseKeys[j], seed));
                    }
                }
            }
        }
示例#3
0
        public void SingleHash(IHash hash)
        {
            IChecksum16 checksum = new Adler16();

            for (uint i = 0; i < 100; i++)
            {
                var baseKeys = new[]
                {
                    (uint)Random.Next(),
                    (uint)Random.Next(),
                    (uint)Random.Next(),
                    (uint)Random.Next(),
                    (uint)Random.Next()
                };
                var gen = new PartialKeyGenerator(checksum, hash, baseKeys)
                {
                    Spacing = 6
                };

                var seed = (uint)Random.Next();
                var key  = gen.Generate(seed);

                for (var j = 0; j < baseKeys.Length; j++)
                {
                    Assert.IsTrue(PartialKeyValidator.ValidateKey(checksum, hash, key, j, baseKeys[j]));
                }
            }
        }
示例#4
0
        private void ValidateKeys()
        {
            try
            {
                validFirstCheckBox.CheckState = PartialKeyValidator.ValidateKey(new Adler16(), new Jenkins96(),
                                                                                keyTextBox.Text, 0, 1)
                    ? CheckState.Checked
                    : CheckState.Unchecked;

                validSecondCheckBox.CheckState = PartialKeyValidator.ValidateKey(new Adler16(), new Jenkins96(),
                                                                                 keyTextBox.Text, 1, 2)
                    ? CheckState.Checked
                    : CheckState.Unchecked;

                validThirdCheckBox.CheckState = PartialKeyValidator.ValidateKey(new Adler16(), new Jenkins96(),
                                                                                keyTextBox.Text, 2, 3)
                    ? CheckState.Checked
                    : CheckState.Unchecked;

                validFourthCheckBox.CheckState = PartialKeyValidator.ValidateKey(new Adler16(), new Jenkins96(),
                                                                                 keyTextBox.Text, 3, 4)
                    ? CheckState.Checked
                    : CheckState.Unchecked;

                seedCheckBox.CheckState = PartialKeyValidator.GetSerialNumberFromKey(keyTextBox.Text) ==
                                          PartialKeyValidator.GetSerialNumberFromSeed(userNameTextBox.Text)
                    ? CheckState.Checked
                    : CheckState.Unchecked;
            }
            catch (Exception)
            {
                validFirstCheckBox.CheckState  = CheckState.Unchecked;
                validSecondCheckBox.CheckState = CheckState.Unchecked;
                validThirdCheckBox.CheckState  = CheckState.Unchecked;
                validFourthCheckBox.CheckState = CheckState.Unchecked;
                seedCheckBox.CheckState        = CheckState.Unchecked;
            }
        }
        public void MultipleHashes()
        {
            IChecksum16 checksum = new Adler16();

            for (uint i = 0; i < 100; i++)
            {
                var baseKeys = new[]
                {
                    (uint)Random.Next(),
                    (uint)Random.Next(),
                    (uint)Random.Next(),
                    (uint)Random.Next(),
                    (uint)Random.Next(),
                    (uint)Random.Next(),
                    (uint)Random.Next(),
                    (uint)Random.Next(),
                    (uint)Random.Next(),
                    (uint)Random.Next()
                };

                var gen = new PartialKeyGenerator(checksum, TestHashes, baseKeys)
                {
                    Spacing = 6
                };

                var seed = (uint)Random.Next();
                var key  = gen.Generate(seed);

                var hashIndex = 0;
                for (var j = 0; j < baseKeys.Length; j++)
                {
                    Assert.IsTrue(PartialKeyValidator.ValidateKey(checksum, TestHashes[hashIndex++], key, j, baseKeys[j]));
                    hashIndex %= TestHashes.Length;
                }
            }
        }