/// <summary>
        /// Returns true if InputCredentialsInfo instances are equal
        /// </summary>
        /// <param name="other">Instance of InputCredentialsInfo to be compared</param>
        /// <returns>Boolean</returns>
        public bool Equals(InputCredentialsInfo other)
        {
            if (ReferenceEquals(null, other))
            {
                return(false);
            }
            if (ReferenceEquals(this, other))
            {
                return(true);
            }

            return
                ((
                     CredentialID == other.CredentialID ||
                     CredentialID != null &&
                     CredentialID.Equals(other.CredentialID)
                     ) &&
                 (
                     Certificates == other.Certificates ||
                     Certificates != null &&
                     Certificates.Equals(other.Certificates)
                 ) &&
                 (
                     CertInfo == other.CertInfo ||
                     CertInfo != null &&
                     CertInfo.Equals(other.CertInfo)
                 ) &&
                 (
                     AuthInfo == other.AuthInfo ||
                     AuthInfo != null &&
                     AuthInfo.Equals(other.AuthInfo)
                 ) &&
                 (
                     Lang == other.Lang ||
                     Lang != null &&
                     Lang.Equals(other.Lang)
                 ) &&
                 (
                     ClientData == other.ClientData ||
                     ClientData != null &&
                     ClientData.Equals(other.ClientData)
                 ));
        }