コード例 #1
0
ファイル: ChaskeyTest.cs プロジェクト: rawad90/chaskey
        public void TestBattery()
        {
            // 128-bit key
            var key = new uint[] { 0x833D3433, 0x009F389F, 0x2398E64F, 0x417ACF39 }.SelectMany(x => BitConverter.GetBytes(x)).ToArray();

            // Chaskey initialized with the key
            var prf = new Chaskey(key);

            // Perform the test battery
            var message = new byte[64];

            for (int i = 0; i < 64; i++)
            {
                message[i] = (byte)i;

                // Compute the tag
                var tag = prf.Compute(message, 0, i);
                // Get the target tag
                var targetTag = vectors[i].SelectMany(v => BitConverter.GetBytes(v));

                if (tag.SequenceEqual(targetTag) == false)
                {
                    throw new Exception(string.Format("Test vector failed for {0:N}-byte message!", i));
                }
            }
        }
コード例 #2
0
ファイル: Benchmark.cs プロジェクト: rawad90/chaskey
        private static void BenchmarkChaskey(int iterations, int length, Action <string> writeLine)
        {
            // Initialize SipHash engine with a random key
            var chaskey = new Chaskey(GetRandomBytes(16));
            var tag     = new byte[16];

            // Generate specified amount of random data
            var data = GetRandomBytes(length);

            // Benchmark
            var stopWatch = Stopwatch.StartNew();

            for (int i = 0; i < iterations; i++)
            {
                chaskey.Compute(data, 0, data.Length, tag, 0);
            }
            var elapsed = stopWatch.Elapsed;

            if (writeLine != null)
            {
                writeLine("Chaskey benchmark results:");
                writeLine(string.Format(CultureInfo.CurrentUICulture, "- Digested {0} {1} times", BytesToString(data.Length), iterations));
                writeLine(string.Format(CultureInfo.CurrentUICulture, "- Elapsed: {0}", elapsed.ToString(@"hh\:mm\:ss\.fff")));
                writeLine(string.Format(CultureInfo.CurrentUICulture, "- Speed: {0}/s", BytesToString(data.Length / elapsed.TotalSeconds * iterations)));
            }
        }
コード例 #3
0
ファイル: Benchmark.cs プロジェクト: paya-cz/chaskey
        private static void BenchmarkChaskey(int iterations, int length, Action<string> writeLine)
        {
            // Initialize SipHash engine with a random key
            var chaskey = new Chaskey(GetRandomBytes(16));
            var tag = new byte[16];

            // Generate specified amount of random data
            var data = GetRandomBytes(length);

            // Benchmark
            var stopWatch = Stopwatch.StartNew();
            for (int i = 0; i < iterations; i++)
                chaskey.Compute(data, 0, data.Length, tag, 0);
            var elapsed = stopWatch.Elapsed;

            if (writeLine != null)
            {
                writeLine("Chaskey benchmark results:");
                writeLine(string.Format(CultureInfo.CurrentUICulture, "- Digested {0} {1} times", BytesToString(data.Length), iterations));
                writeLine(string.Format(CultureInfo.CurrentUICulture, "- Elapsed: {0}", elapsed.ToString(@"hh\:mm\:ss\.fff")));
                writeLine(string.Format(CultureInfo.CurrentUICulture, "- Speed: {0}/s", BytesToString(data.Length / elapsed.TotalSeconds * iterations)));
            }
        }
コード例 #4
0
ファイル: ChaskeyTest.cs プロジェクト: paya-cz/chaskey
        public void TestBattery()
        {
            // 128-bit key
            var key = new uint[] { 0x833D3433, 0x009F389F, 0x2398E64F, 0x417ACF39 }.SelectMany(x => BitConverter.GetBytes(x)).ToArray();

            // Chaskey initialized with the key
            var prf = new Chaskey(key);

            // Perform the test battery
            var message = new byte[64];
            for (int i = 0; i < 64; i++)
            {
                message[i] = (byte)i;

                // Compute the tag
                var tag = prf.Compute(message, 0, i);
                // Get the target tag
                var targetTag = vectors[i].SelectMany(v => BitConverter.GetBytes(v));

                if (tag.SequenceEqual(targetTag) == false)
                    throw new Exception(string.Format("Test vector failed for {0:N}-byte message!", i));
            }
        }