Exemple #1
0
        public override void PerformTest()
        {
            X931TestVector[] vectors = CreateTestVectorData();

            for (int i = 0; i != vectors.Length; i++)
            {
                X931TestVector          tv  = vectors[i];
                X931SecureRandomBuilder bld = new X931SecureRandomBuilder(tv.EntropyProvider);

                bld.SetDateTimeVector(Hex.Decode(tv.DateTimeVector));

                SecureRandom rand = bld.Build(tv.Engine, new KeyParameter(Hex.Decode(tv.Key)), tv.IsPredictionResistant);

                for (int j = 0; j != tv.Expected.Length - 1; j++)
                {
                    byte[] expected = Hex.Decode(tv.Expected[j]);
                    byte[] res      = new byte[expected.Length];

                    rand.NextBytes(res);

                    if (!Arrays.AreEqual(expected, res))
                    {
                        Fail("expected output wrong [" + j + "] got : " + Strings.FromByteArray(Hex.Encode(res)));
                    }
                }

                {
                    byte[] expected = Hex.Decode(tv.Expected[tv.Expected.Length - 1]);
                    byte[] res      = new byte[expected.Length];

                    for (int j = tv.Expected.Length - 1; j != 10000; j++)
                    {
                        rand.NextBytes(res);
                    }

                    if (!Arrays.AreEqual(expected, res))
                    {
                        Fail("expected output wrong [" + 10000 + "] got : " + Strings.FromByteArray(Hex.Encode(res)));
                    }
                }
            }
        }
Exemple #2
0
        public override void PerformTest()
        {
            X931TestVector[] vectors = CreateTestVectorData();

            for (int i = 0; i != vectors.Length; i++)
            {
                X931TestVector tv = vectors[i];
                X931SecureRandomBuilder bld = new X931SecureRandomBuilder(tv.EntropyProvider);

                bld.SetDateTimeVector(Hex.Decode(tv.DateTimeVector));

                SecureRandom rand = bld.Build(tv.Engine, new KeyParameter(Hex.Decode(tv.Key)), tv.IsPredictionResistant);

                for (int j = 0; j != tv.Expected.Length - 1; j++)
                {
                    byte[] expected = Hex.Decode(tv.Expected[j]);
                    byte[] res = new byte[expected.Length];

                    rand.NextBytes(res);

                    if (!Arrays.AreEqual(expected, res))
                    {
                        Fail("expected output wrong [" + j + "] got : " + Strings.FromByteArray(Hex.Encode(res)));
                    }
                }

                {
                    byte[] expected = Hex.Decode(tv.Expected[tv.Expected.Length - 1]);
                    byte[] res = new byte[expected.Length];

                    for (int j = tv.Expected.Length - 1; j != 10000; j++)
                    {
                        rand.NextBytes(res);
                    }

                    if (!Arrays.AreEqual(expected, res))
                    {
                        Fail("expected output wrong [" + 10000 + "] got : " + Strings.FromByteArray(Hex.Encode(res)));
                    }
                }
            }
        }
Exemple #3
0
        public void TestX931()
        {
            SecureRandom random = new X931SecureRandomBuilder().Build(new AesEngine(), new KeyParameter(new byte[16]), false);

            CheckSecureRandom(random);
        }