/// <summary> /// Updates the validator with a new set of trust lists. /// </summary> public virtual void Update( CertificateTrustList issuerStore, CertificateTrustList trustedStore, CertificateStoreIdentifier rejectedCertificateStore) { lock (m_lock) { m_validatedCertificates.Clear(); m_trustedCertificateStore = null; m_trustedCertificateList = null; if (trustedStore != null) { m_trustedCertificateStore = new CertificateStoreIdentifier(); m_trustedCertificateStore.StoreType = trustedStore.StoreType; m_trustedCertificateStore.StorePath = trustedStore.StorePath; m_trustedCertificateStore.ValidationOptions = trustedStore.ValidationOptions; if (trustedStore.TrustedCertificates != null) { m_trustedCertificateList = new CertificateIdentifierCollection(); m_trustedCertificateList.AddRange(trustedStore.TrustedCertificates); } } m_issuerCertificateStore = null; m_issuerCertificateList = null; if (issuerStore != null) { m_issuerCertificateStore = new CertificateStoreIdentifier(); m_issuerCertificateStore.StoreType = issuerStore.StoreType; m_issuerCertificateStore.StorePath = issuerStore.StorePath; m_issuerCertificateStore.ValidationOptions = issuerStore.ValidationOptions; if (issuerStore.TrustedCertificates != null) { m_issuerCertificateList = new CertificateIdentifierCollection(); m_issuerCertificateList.AddRange(issuerStore.TrustedCertificates); } } m_rejectedCertificateStore = null; if (rejectedCertificateStore != null) { m_rejectedCertificateStore = (CertificateStoreIdentifier)rejectedCertificateStore.MemberwiseClone(); } } }