Пример #1
0
        public static void TestEightBytes()
        {
            var message = Encoding.UTF8.GetBytes("12345678");

            using (var hash = new SipHash(SpecificationKey))
                AssertEqual(hash.ComputeHash(message), 0x2130609caea37ebUL);
        }
Пример #2
0
        public static void TestOneMillionBytes()
        {
            var message = Enumerable.Repeat((byte)0, 1000000).ToArray();

            using (var hash = new SipHash(SpecificationKey))
                AssertEqual(hash.ComputeHash(message), 0x28205108397aa742UL);
        }
Пример #3
0
        public static void TestSevenBytes()
        {
            var message = Encoding.UTF8.GetBytes("SipHash");

            using (var hash = new SipHash(SpecificationKey))
                AssertEqual(hash.ComputeHash(message), 0x8325093242a96f60UL);
        }
Пример #4
0
        public static void TestSixBytes()
        {
            var message = Encoding.UTF8.GetBytes("abcdef");

            using (var hash = new SipHash(SpecificationKey))
                AssertEqual(hash.ComputeHash(message), 0x2a6e77e733c7c05dUL);
        }
Пример #5
0
        public static void TestSingleByte()
        {
            var message = new byte[] { 0x61 };

            using (var hash = new SipHash(SpecificationKey))
                AssertEqual(hash.ComputeHash(message), 0x2ba3e8e9a71148caUL);
        }
Пример #6
0
        public static void TestEmptyMessage()
        {
            var message = new byte[0];

            using (var hash = new SipHash(SpecificationKey))
                AssertEqual(hash.ComputeHash(message), 0x726fdb47dd0e0e31UL);
        }
Пример #7
0
 public string CalculateHash(string message, string littleEndianKey)
 {
     var messageBytes = Encoding.ASCII.GetBytes(message);
     var byteKey = BigInteger.Parse(littleEndianKey, NumberStyles.HexNumber).ToByteArray();
     var hasher = new SipHash(byteKey);
     var hash = hasher.ComputeHash(messageBytes);
     var stringHash = BitConverter.ToUInt64(hash, 0).ToString("X");
     return PadHash(stringHash);
 }
Пример #8
0
        /***
         * Tests adapted from https://github.com/emboss/siphash-java/blob/master/test/com/github/emboss/siphash/SipHashTest.java
         * Thanks to Martin Boßlet for these, which allowed me to quickly verify (presumable) correct functionality.
         ***/

        public static void TestSpecification()
        {
            using (var hash = new SipHash(SpecificationKey))
                AssertEqual(hash.ComputeHash(SpecificationMessage), 0xa129ca6149be45e5UL);
        }