/// <inheritdoc /> public override int GetHashCode() { unchecked { int hashCode = SymmetricCipher.GetHashCode(); hashCode = (hashCode * 397) ^ Authentication.GetHashCode(); hashCode = (hashCode * 397) ^ AuthenticationVerifiedOutput.GetHashCodeExt(); hashCode = (hashCode * 397) ^ (KeyConfirmation != null ? KeyConfirmation.GetHashCode() : 0); hashCode = (hashCode * 397) ^ (KeyConfirmationVerifiedOutput != null ? KeyConfirmationVerifiedOutput.GetHashCodeExt() : 0); hashCode = (hashCode * 397) ^ KeyDerivation.GetHashCode(); hashCode = (hashCode * 397) ^ EphemeralKey.GetHashCode(); return(hashCode); } }
/// <inheritdoc /> public bool Equals(Um1HybridManifestCryptographyConfiguration other) { if (ReferenceEquals(null, other)) { return(false); } if (ReferenceEquals(this, other)) { return(true); } return ((KeyConfirmation == null ? other.KeyConfirmation == null : KeyConfirmation.Equals(other.KeyConfirmation)) && (KeyConfirmationVerifiedOutput == null ? other.KeyConfirmation == null : KeyConfirmationVerifiedOutput.SequenceEqualShortCircuiting(other.KeyConfirmationVerifiedOutput)) && KeyDerivation.Equals(other.KeyDerivation) && SymmetricCipher.Equals(other.SymmetricCipher) && Authentication.Equals(other.Authentication) && AuthenticationVerifiedOutput.SequenceEqualShortCircuiting(other.AuthenticationVerifiedOutput) && EphemeralKey.Equals(other.EphemeralKey)); }