public override int GetHashCode () { // note: a Copy must have the same hash code int code = hash_algorithm.GetType ().GetHashCode (); if (hash_value != null) { foreach (byte b in hash_value) { code ^= b; } } return code; }