Beispiel #1
0
        // Helper function that converts a byte array into actions and back into a byte array
        public byte[] conversionHelper(byte[] byteHex, List <int> hexList)
        {
            BitArray hexBits = seedToByte.byteToBits(byteHex);

            int[]  hexActions = seedToByte.bitToActions(hexBits, hexList);
            byte[] finalSeed  = SeedToByte.seedConverterUniversal(hexActions, hexList);

            return(finalSeed);
        }
        // Test seeds with sizes of 112 bits and 108 bits
        public int[] testMultipleSizeSeeds()
        {
            int[] passed = new int[2];

            string testHex = "FFFFAAAAFFFFAAAAFFFFDDDDFFFF";

            byte[] testHexSeed = SeedToByte.HexStringToByteArray(testHex);
            byte[] testRunSeed = new byte[14];
            //testRunSeed = OTPworker.randomSeedGenerator(testRunSeed);

            List <int> tempList1 = SeedToByte.customList(4, 4, 2, 4, 4);
            List <int> tempList2 = SeedToByte.customList(3, 4, 2, 4, 4);

            byte[] finalSeed1 = conversionHelper(testRunSeed, tempList1);
            byte[] finalSeed2 = conversionHelper(testHexSeed, tempList1);

            passed[1] += 1;
            if (seedToByte.byteToSeed(testRunSeed) == seedToByte.byteToSeed(finalSeed1))
            {
                passed[0] += 1;
            }
            else
            {
                Debug.Log("Test 1 for converting 112 bit seed to action list and back failed");
            }

            passed[1] += 1;
            if (seedToByte.byteToSeed(testHexSeed) == seedToByte.byteToSeed(finalSeed2))
            {
                passed[0] += 1;
            }
            else
            {
                Debug.Log("Test 2 for converting 112 bit seed to action list and back failed");
            }

            testHexSeed = new byte[14];
            byte[] finalSeed3 = conversionHelper(testHexSeed, tempList2);

            passed[1] += 1;
            if (seedToByte.byteToSeed(testHexSeed) == seedToByte.byteToSeed(finalSeed3))
            {
                passed[0] += 1;
            }
            else
            {
                Debug.Log("Test for converting 108 bit seed to action list and back failed");
            }

            return(passed);
        }
Beispiel #3
0
        // Helper function for the findLeadingBitValue tests
        public void runLeadingBits(ref int[] passed, int leadingBit, int totalBit, int value,
                                   int expected1, int expected2, int expected3, int testNumber)
        {
            passed[1] += 1;
            int[] leadingBits = new int[3];

            leadingBits = SeedToByte.findLeadingBitValue(leadingBit, totalBit, value);

            if (leadingBits[0] == expected1 && leadingBits[1] == expected2 && leadingBits[2] == expected3)
            {
                passed[0] += 1;
            }
            else
            {
                Debug.Log("Leading bits test " + testNumber + " failed");
            }
        }
Beispiel #4
0
        // test seed converter for all possible seed sizes
        //  Creates a byte array filled with maximum possible values for N bits, and
        //  converts to an action list and back with seedConverterUniversal()
        public int[] testAllSizeSeeds()
        {
            int[] passed = new int[2];

            for (int i = 10; i < 129; i++)
            {
                List <int> hexList = new List <int>();
                for (int j = 0; j < i; j++)
                {
                    hexList.Add(1);
                }

                byte[] byteHex = new byte[(i / 8) + 1];

                if (i % 8 == 0)
                {
                    byteHex = new byte[i / 8];
                }

                for (int j = 0; j < byteHex.Length; j++)
                {
                    byteHex[j] = 255;
                }

                byteHex[byteHex.Length - 1] = (byte)(Math.Pow(2, i % 8) - 1);

                BitArray hexBits    = seedToByte.byteToBits(byteHex);
                int[]    hexActions = seedToByte.bitToActions(hexBits, hexList);
                byte[]   finalSeed  = SeedToByte.seedConverterUniversal(hexActions, hexList);

                passed[1] += 1;

                if (seedToByte.byteToSeed(byteHex) == seedToByte.byteToSeed(finalSeed))
                {
                    passed[0] += 1;
                }
                else
                {
                    Debug.Log("Test for seed size of: " + i + " failed.");
                }
            }

            return(passed);
        }
Beispiel #5
0
        public int[] testBreakPoints()
        {
            int[] passed = new int[2];

            string testHex = "FFFFAAAAFFFFAAAA";

            byte[]     testHexSeed = SeedToByte.HexStringToByteArray(testHex);
            List <int> tempList    = SeedToByte.customList(4, 8, 6, 2, 2);
            BitArray   seedBits    = seedToByte.byteToBits(testHexSeed);

            int[]  actions   = seedToByte.bitToActions(seedBits, tempList);
            byte[] finalSeed = SeedToByte.seedConverterUniversal(actions, tempList);

            passed[1] += 1;
            if (seedToByte.byteToSeed(testHexSeed) == seedToByte.byteToSeed(finalSeed))
            {
                passed[0] += 1;
            }
            else
            {
                Debug.Log("Test for converting 64 bit seed to action list and back failed");
            }

            testHex     = "FFFFAAAAFFFFAAAAFFFFAAAAFFFFAAAA";
            testHexSeed = SeedToByte.HexStringToByteArray(testHex);
            tempList    = SeedToByte.customList(4, 8, 6, 2, 4);
            seedBits    = seedToByte.byteToBits(testHexSeed);
            actions     = seedToByte.bitToActions(seedBits, tempList);
            finalSeed   = SeedToByte.seedConverterUniversal(actions, tempList);

            passed[1] += 1;
            if (seedToByte.byteToSeed(testHexSeed) == seedToByte.byteToSeed(finalSeed))
            {
                passed[0] += 1;
            }
            else
            {
                Debug.Log("Test for converting 128 bit seed to action list and back failed");
            }

            return(passed);
        }
Beispiel #6
0
        // Test smaller sized seeds of 16 bits and 24 bits
        public int[] testSmallSeeds()
        {
            int[] passed = new int[2];

            string testHex = "FFFF";

            byte[]     testHexSeed = SeedToByte.HexStringToByteArray(testHex);
            List <int> tempList    = SeedToByte.customList(6, 6, 4, 1, 1);

            byte[] finalSeed = conversionHelper(testHexSeed, tempList);

            passed[1] += 1;
            if (seedToByte.byteToSeed(testHexSeed) == seedToByte.byteToSeed(finalSeed))
            {
                passed[0] += 1;
            }
            else
            {
                Debug.Log("Test for converting 16 bit seed to action list and back failed");
            }

            testHex     = "FFFFFF";
            testHexSeed = SeedToByte.HexStringToByteArray(testHex);
            tempList    = SeedToByte.customList(2, 3, 2, 2, 2);
            finalSeed   = finalSeed = conversionHelper(testHexSeed, tempList);

            passed[1] += 1;
            if (seedToByte.byteToSeed(testHexSeed) == seedToByte.byteToSeed(finalSeed))
            {
                passed[0] += 1;
            }
            else
            {
                Debug.Log("Test for converting 24 bit seed to action list and back failed");
            }

            return(passed);
        }
Beispiel #7
0
        public int[] testMultipleSizeSeeds()
        {
            int[] passed = new int[2];

            string testHex = "FFFFAAAAFFFFAAAAFFFFDDDDFFFF";

            byte[] testHexSeed = SeedToByte.HexStringToByteArray(testHex);
            byte[] testRunSeed = new byte[14];
            //testRunSeed = OTPworker.randomSeedGenerator(testRunSeed);

            List <int> tempList1 = SeedToByte.customList(4, 4, 2, 4, 4);
            List <int> tempList2 = SeedToByte.customList(3, 4, 2, 4, 4);

            BitArray seedBits1 = seedToByte.byteToBits(testRunSeed);
            BitArray seedBits2 = seedToByte.byteToBits(testHexSeed);

            int[] actions1 = seedToByte.bitToActions(seedBits1, tempList1);
            int[] actions2 = seedToByte.bitToActions(seedBits2, tempList1);

            byte[] finalSeed1 = SeedToByte.seedConverterUniversal(actions1, tempList1);
            byte[] finalSeed2 = SeedToByte.seedConverterUniversal(actions2, tempList1);

            passed[1] += 1;
            if (seedToByte.byteToSeed(testRunSeed) == seedToByte.byteToSeed(finalSeed1))
            {
                passed[0] += 1;
            }
            else
            {
                Debug.Log("Test 1 for converting 112 bit seed to action list and back failed");
            }

            passed[1] += 1;
            if (seedToByte.byteToSeed(testHexSeed) == seedToByte.byteToSeed(finalSeed2))
            {
                passed[0] += 1;
            }
            else
            {
                Debug.Log("Test 2 for converting 112 bit seed to action list and back failed");
            }

            testHexSeed = new byte[14];
            //testRunSeed = OTPworker.randomSeedGenerator(testRunSeed);

            if (testRunSeed[13] > 7)
            {
                testRunSeed[13] = (byte)((int)testRunSeed[13] % 7);
            }

            BitArray seedBits = seedToByte.byteToBits(testHexSeed);

            int[] actions3 = seedToByte.bitToActions(seedBits, tempList2);

            byte[] finalSeed3 = SeedToByte.seedConverterUniversal(actions3, tempList2);

            passed[1] += 1;
            if (seedToByte.byteToSeed(testHexSeed) == seedToByte.byteToSeed(finalSeed3))
            {
                passed[0] += 1;
            }
            else
            {
                Debug.Log("Test for converting 108 bit seed to action list and back failed");
            }

            return(passed);
        }