private X509Certificate2 GetFederatedExchangeCertificates()
        {
            if (!string.IsNullOrEmpty(this.Thumbprint))
            {
                this.Thumbprint = FederationCertificate.UnifyThumbprintFormat(this.Thumbprint);
                try
                {
                    X509Certificate2 exchangeFederationCertByThumbprint = FederationCertificate.GetExchangeFederationCertByThumbprint(this.Thumbprint, new WriteVerboseDelegate(base.WriteVerbose));
                    if (exchangeFederationCertByThumbprint == null)
                    {
                        throw new FederationCertificateInvalidException(Strings.ErrorCertificateNotFound(this.Thumbprint));
                    }
                    FederationCertificate.ValidateCertificate(new ExchangeCertificate(exchangeFederationCertByThumbprint), NewFederationTrust.IsExchangeDataCenter());
                    return(exchangeFederationCertByThumbprint);
                }
                catch (LocalizedException exception)
                {
                    base.WriteError(exception, ErrorCategory.InvalidArgument, null);
                    goto IL_7C;
                }
            }
            base.WriteError(new FederationCertificateInvalidException(Strings.ErrorFederationCertificateNotSpecified), ErrorCategory.InvalidOperation, null);
IL_7C:
            return(null);
        }
Example #2
0
 private void ValidateNewCertificateParameters()
 {
     if (string.IsNullOrEmpty(this.NewCertificateThumbprint))
     {
         if (this.NewCertificateEffectiveDate != null && this.NewCertificateEffectiveDate != null)
         {
             if (base.Fields.IsModified(AuthConfigSchema.NextCertificateThumbprint) || string.IsNullOrEmpty(this.DataObject.NextCertificateThumbprint))
             {
                 base.WriteError(new TaskException(Strings.ErrorAuthNewCertificateNeeded), ErrorCategory.InvalidArgument, null);
             }
             this.ValidateNewEffectiveDate();
             return;
         }
     }
     else
     {
         this.ValidateNewEffectiveDate();
         this.NewCertificateThumbprint = FederationCertificate.UnifyThumbprintFormat(this.NewCertificateThumbprint);
         this.ValidateCertificate(this.NewCertificateThumbprint, this.NewCertificateEffectiveDate);
         if (!string.IsNullOrEmpty(this.DataObject.CurrentCertificateThumbprint) && string.Compare(this.NewCertificateThumbprint, this.DataObject.CurrentCertificateThumbprint, StringComparison.OrdinalIgnoreCase) == 0)
         {
             base.WriteError(new TaskException(Strings.ErrorAuthSameAsCurrent), ErrorCategory.InvalidArgument, null);
         }
         if (!string.IsNullOrEmpty(this.DataObject.PreviousCertificateThumbprint) && string.Compare(this.NewCertificateThumbprint, this.DataObject.PreviousCertificateThumbprint, StringComparison.OrdinalIgnoreCase) == 0)
         {
             this.WriteWarning(Strings.WarningCertificateSameAsPrevious(this.NewCertificateThumbprint));
         }
     }
 }
Example #3
0
        private void ValidateNextCertificate()
        {
            this.Thumbprint      = FederationCertificate.UnifyThumbprintFormat(this.Thumbprint);
            this.nextCertificate = FederationCertificate.GetExchangeFederationCertByThumbprint(this.Thumbprint, new WriteVerboseDelegate(base.WriteVerbose));
            ExchangeCertificate exchangeCertificate = new ExchangeCertificate(this.nextCertificate);

            FederationCertificate.ValidateCertificate(exchangeCertificate, this.IsDatacenter);
            this.ValidateUniqueSki(exchangeCertificate, this.DataObject.OrgPrevCertificate);
            this.ValidateUniqueSki(exchangeCertificate, this.DataObject.OrgCertificate);
        }
Example #4
0
 private void ValidateCurrentCertificateParameters()
 {
     if (!string.IsNullOrEmpty(this.CertificateThumbprint))
     {
         this.CertificateThumbprint = FederationCertificate.UnifyThumbprintFormat(this.CertificateThumbprint);
         this.ValidateCertificate(this.CertificateThumbprint, null);
         if (!string.IsNullOrEmpty(this.DataObject.PreviousCertificateThumbprint) && string.Compare(this.CertificateThumbprint, this.DataObject.PreviousCertificateThumbprint, StringComparison.OrdinalIgnoreCase) == 0)
         {
             this.WriteWarning(Strings.WarningCertificateSameAsPrevious(this.CertificateThumbprint));
             return;
         }
     }
     else
     {
         base.WriteError(new TaskException(Strings.ErrorAuthCannotDeleteCurrent), ErrorCategory.InvalidArgument, null);
     }
 }