internal static List <ChainValidityStatus> ValidateCertificates(List <string> trustedCertificateList, List <string> certificateChainList, List <string> certificateList, bool checkCRL, int hashCodeForTracing, MailboxLogger mailboxLogger, bool againstADConfiguration, string organizationId) { X509Store trustedStore = CertificateManager.AddChainCertsToStore(trustedCertificateList, hashCodeForTracing); X509Store chainBuildStore = CertificateManager.AddChainCertsToStore(certificateChainList, hashCodeForTracing); List <ChainValidityStatus> list = new List <ChainValidityStatus>(certificateList.Count); foreach (string text in certificateList) { ChainContext chainContext = null; try { X509Certificate2 certificate = new X509Certificate2(Convert.FromBase64String(text)); ChainValidityStatus item = X509CertificateCollection.ValidateCertificate(certificate, null, X509KeyUsageFlags.NonRepudiation | X509KeyUsageFlags.DigitalSignature, checkCRL, trustedStore, chainBuildStore, ref chainContext, againstADConfiguration, organizationId); list.Add(item); } catch (CryptographicException ex) { if (mailboxLogger != null) { mailboxLogger.SetData(MailboxLogDataName.ValidateCertCommand_ProcessCommand_Per_Cert_Exception, ex.ToString()); } AirSyncDiagnostics.TraceError <string, CryptographicException>(ExTraceGlobals.RequestTracer, null, "Failed to validate certificate: '{0}', Error: '{1}'", text, ex); list.Add((ChainValidityStatus)2148098052U); } finally { if (chainContext != null) { chainContext.Dispose(); } } } return(list); }
public override bool HasSchemaPropertyChanged(ISyncItem syncItem, int?[] oldChangeTrackingInformation, XmlDocument xmlResponse, MailboxLogger mailboxLogger) { bool flag = false; XmlNode xmlItemRoot = xmlResponse.CreateElement("ApplicationData", "AirSync:"); try { this.EntityDataObject.Bind(syncItem.NativeItem); base.AirSyncDataObject.Bind(xmlItemRoot); base.AirSyncDataObject.CopyFrom(this.EntityDataObject); } catch (Exception ex) { if (!SyncCommand.IsItemSyncTolerableException(ex)) { throw; } if (mailboxLogger != null) { mailboxLogger.SetData(MailboxLogDataName.MailboxSyncCommand_HasSchemaPropertyChanged_Exception, ex); } AirSyncUtility.ExceptionToStringHelper arg = new AirSyncUtility.ExceptionToStringHelper(ex); AirSyncDiagnostics.TraceError <AirSyncUtility.ExceptionToStringHelper>(ExTraceGlobals.RequestsTracer, this, "Sync-tolerable Entity conversion Exception was thrown. HasSchemaPropertyChanged() {0}", arg); flag = true; } finally { this.EntityDataObject.Unbind(); base.AirSyncDataObject.Unbind(); } if (!flag) { int?[] array = base.ChangeTrackFilter.UpdateChangeTrackingInformation(xmlItemRoot, oldChangeTrackingInformation); AirSyncDiagnostics.TraceDebug <int?[], int?[]>(ExTraceGlobals.RequestsTracer, this, "HasSchemaPropertyChanged oldCCI {0} newCCI {1}", oldChangeTrackingInformation, array); flag = !ChangeTrackingFilter.IsEqual(array, oldChangeTrackingInformation); } return(flag); }