/// <inheritdoc /> public override int GetHashCode() { unchecked { int hashCode = FunctionType.GetHashCode(); hashCode = (hashCode * 397) ^ FunctionName.ToLowerInvariant().GetHashCode(); hashCode = (hashCode * 397) ^ (FunctionConfiguration != null ? FunctionConfiguration.GetHashCodeExt() : 0); hashCode = (hashCode * 397) ^ (KeySizeBits.HasValue ? KeySizeBits.Value.GetHashCode() : 0); hashCode = (hashCode * 397) ^ (Nonce != null ? Nonce.GetHashCodeExt() : 0); hashCode = (hashCode * 397) ^ (Salt != null ? Salt.GetHashCodeExt() : 0); hashCode = (hashCode * 397) ^ (AdditionalData != null ? AdditionalData.GetHashCodeExt() : 0); hashCode = (hashCode * 397) ^ (OutputSizeBits.HasValue ? OutputSizeBits.Value.GetHashCode() : 0); return(hashCode); } }