示例#1
0
        public bool Equals(Blake256Hash other)
        {
            if (other == null)
            {
                return(false);
            }

            return(Blake256HashBuffer.Equal(ref _buffer, ref other._buffer));
        }
示例#2
0
 public static bool Equal(ref Blake256HashBuffer first, ref Blake256HashBuffer second)
 {
     unsafe
     {
         fixed(byte *p1 = first._data, p2 = second._data)
         {
             return(*(ulong *)(p1) == *(ulong *)(p2) &&
                    *(ulong *)(p1 + 8) == *(ulong *)(p2 + 8) &&
                    *(ulong *)(p1 + 16) == *(ulong *)(p2 + 16) &&
                    *(ulong *)(p1 + 24) == *(ulong *)(p2 + 24));
         }
     }
 }
示例#3
0
        public static string ToString(ref Blake256HashBuffer buffer)
        {
            var reverseCopy = new byte[Length];

            unsafe
            {
                fixed(byte *p = buffer._data)
                {
                    for (int i = 0, j = Length - 1; i < Length; ++i, --j)
                    {
                        reverseCopy[i] = p[j];
                    }
                }
            }

            return(Hexadecimal.Encode(reverseCopy));
        }
示例#4
0
 public override string ToString() => Blake256HashBuffer.ToString(ref _buffer);
示例#5
0
 public Blake256Hash(byte[] hash)
 {
     _buffer = Blake256HashBuffer.CopyFrom(hash);
 }