Пример #1
0
        public override HashResult TransformFinal()
        {
            HashResult result = ComputeAggregatedBytes(Aggregate());

            Initialize();
            return(result);
        }
Пример #2
0
        public HashResult ComputeFile(string a_file_name, long a_from = 0, long a_length = -1)
        {
            Initialize();
            TransformFile(a_file_name, a_from, a_length);
            HashResult result = TransformFinal();

            Initialize();
            return(result);
        }
Пример #3
0
        public HashResult ComputeStream(Stream a_stream, long a_length = -1)
        {
            Initialize();
            TransformStream(a_stream, a_length);
            HashResult result = TransformFinal();

            Initialize();
            return(result);
        }
Пример #4
0
        public virtual HashResult ComputeBytes(byte[] a_data)
        {
            Initialize();
            TransformBytes(a_data);
            HashResult result = TransformFinal();

            Initialize();
            return(result);
        }
Пример #5
0
        public override HashResult TransformFinal()
        {
            HashResult h = m_hash.TransformFinal();

            m_hash.TransformBytes(m_opad);
            m_hash.TransformBytes(h.GetBytes());
            h = m_hash.TransformFinal();
            Initialize();
            return(h);
        }
Пример #6
0
        /// <summary>
        /// Determines whether a Hash Result is equal to some other Object
        /// </summary>
        /// <param name="a_obj"></param>
        /// <returns></returns>
        public override bool Equals(Object a_obj)
        {
            HashResult hash_result = a_obj as HashResult;

            if ((HashResult)hash_result == null)
            {
                return(false);
            }

            return(Equals(hash_result));
        }
Пример #7
0
        public HashResult ComputeStream(Stream a_stream, long a_length = -1)
        {
            Initialize();

            // thread-safety attempt by adding lock -- does it work?
            var thisLock = new object();

            lock (thisLock)
            {
                TransformStream(a_stream, a_length);
            }

            HashResult result = TransformFinal();

            Initialize();
            return(result);
        }
Пример #8
0
        public override HashResult TransformFinal()
        {
            if (!m_bTransforming)
            {
                UpdatePads();
                m_hash.TransformBytes(m_ipad);
                m_bTransforming = true;
            }

            HashResult h = m_hash.TransformFinal();

            Initialize();
            m_hash.TransformBytes(m_opad);
            m_hash.TransformBytes(h.GetBytes());
            h = m_hash.TransformFinal();
            Initialize();
            return(h);
        }
Пример #9
0
 internal bool Equals(HashResult a_hashResult)
 {
     return HashResult.SameArrays(a_hashResult.GetBytes(), m_hash);
 }
Пример #10
0
 /// <summary>
 /// Determines whether a Hash Result is equal to another Hash Result
 /// </summary>
 /// <param name="a_hashResult"></param>
 /// <returns></returns>
 public bool Equals(HashResult a_hashResult)
 {
     return(HashResult.SameArrays(a_hashResult.GetBytes(), m_hash));
 }
Пример #11
0
        public void HashResult()
        {
            for (int i = 0; i < 14; i++)
            {
                HashResult h1 = new HashResult(m_random.NextBytes(i));

                try
                {
                    uint h2 = h1.GetUInt();

                    if (i != 4)
                        Assert.Fail(i.ToString());

                    Assert.IsTrue(Converters.ConvertBytesToUInts(h1.GetBytes())[0] == h2, i.ToString());
                }
                catch
                {
                    if (i == 4)
                        Assert.Fail(i.ToString());
                }

                try
                {
                    ulong h3 = h1.GetULong();

                    if (i != 8)
                        Assert.Fail(i.ToString());

                    Assert.IsTrue(Converters.ConvertBytesToULongs(h1.GetBytes())[0] == h3, i.ToString());
                }
                catch
                {
                    if (i == 8)
                        Assert.Fail(i.ToString());
                }
            }
        }
Пример #12
0
 public bool Equals(HashResult a_hashResult)
 {
     return SameArrays(a_hashResult.GetBytes(), m_hash);
 }