private static void ThrowIfRightsTemplateInvalid(TrustedPublishingDomainImportUtilities tpdImportUtilities, string tpdName, string template, Guid templateGuid, out object failureTarget) { RmsUtil.ThrowIfParameterNull(tpdImportUtilities, "tpdImportUtilities"); RmsUtil.ThrowIfStringParameterNullOrEmpty(tpdName, "tpdName"); RmsUtil.ThrowIfStringParameterNullOrEmpty(template, "template"); failureTarget = null; if (Guid.Empty == templateGuid) { failureTarget = tpdName; throw new InvalidTemplateException(); } try { tpdImportUtilities.ValidateRightsTemplate(template); } catch (ValidationException ex) { failureTarget = tpdName; throw new FailedToValidateTemplateException(templateGuid, ex.ErrorCode); } }
public string ValidateTpdSuitableForImport(TrustedDocDomain tpd, string tpdName, out object failureTarget, IConfigurationSession configurationSession = null, string existingTpdKeyId = null, string existingTpdKeyType = null, Uri existingTpdIntranetLicensingUrl = null, Uri existingTpdExtranetLicensingUrl = null, SecureString tpdFilePassword = null) { RmsUtil.ThrowIfParameterNull(tpd, "tpd"); RmsUtil.ThrowIfStringParameterNullOrEmpty(tpdName, "tpdName"); RmsUtil.ThrowIfKeyInformationInvalid(tpd, tpdName, out failureTarget); RmsUtil.ThrowIfSlcCertificateChainInvalid(tpd, tpdName, out failureTarget); RmsUtil.ThrowIfTpdCspDoesNotMatchCryptoMode(tpd, tpdName, out failureTarget); RmsUtil.ThrowIfTpdUsesUnauthorizedCryptoModeOnFips(tpd, tpdName, out failureTarget); string result; using (TrustedPublishingDomainPrivateKeyProvider trustedPublishingDomainPrivateKeyProvider = this.CreatePrivateKeyProvider(tpdName, tpd.m_ttdki, tpdFilePassword, out result, out failureTarget)) { TrustedPublishingDomainImportUtilities tpdImportUtilities = this.CreateTpdImportUtilities(tpd, trustedPublishingDomainPrivateKeyProvider); RmsUtil.ThrowIfSlcCertificateDoesNotChainToProductionHeirarchyCertificate(tpdImportUtilities, tpdName, out failureTarget); if (this.refreshTemplatesSwitch) { RmsUtil.ThrowIfUrlWasSpecified(this.intranetLicensingUrl, this.refreshTemplatesSwitch, out failureTarget); RmsUtil.ThrowIfUrlWasSpecified(this.extranetLicensingUrl, this.refreshTemplatesSwitch, out failureTarget); RmsUtil.ThrowIfUrlWasSpecified(this.intranetCertificationUrl, this.refreshTemplatesSwitch, out failureTarget); RmsUtil.ThrowIfUrlWasSpecified(this.extranetCertificationUrl, this.refreshTemplatesSwitch, out failureTarget); RmsUtil.ThrowIfDefaultWasSpecified(this.defaultSwitch, out failureTarget); RmsUtil.ThrowIfImportedKeyIdAndTypeDoNotMatchExistingTPD(tpdName, tpd.m_ttdki.strID, existingTpdKeyId, out failureTarget); RmsUtil.ThrowIfImportedKeyIdAndTypeDoNotMatchExistingTPD(tpdName, tpd.m_ttdki.strIDType, existingTpdKeyType, out failureTarget); } else { RmsUtil.ThrowIfTpdDoesNotHavePrivateKeyIfInternalLicensingEnabled(tpd, tpdName, this.internalLicensingEnabled, out failureTarget); if (!this.rmsOnlineSwitch) { RmsUtil.ThrowIfImportedTPDsKeyIdIsNotUnique(configurationSession, tpd.m_ttdki.strID, tpd.m_ttdki.strIDType, out failureTarget); } RmsUtil.ThrowIfIsNotWellFormedRmServiceUrl(this.intranetLicensingUrl, out failureTarget); RmsUtil.ThrowIfIsNotWellFormedRmServiceUrl(this.extranetLicensingUrl, out failureTarget); RmsUtil.ThrowIfIsNotWellFormedRmServiceUrl(this.intranetCertificationUrl, out failureTarget); RmsUtil.ThrowIfIsNotWellFormedRmServiceUrl(this.extranetCertificationUrl, out failureTarget); } RmsUtil.ThrowIfRightsTemplatesInvalid(tpd.m_astrRightsTemplates, tpdName, tpdImportUtilities, this.refreshTemplatesSwitch ? existingTpdIntranetLicensingUrl : this.intranetLicensingUrl, this.refreshTemplatesSwitch ? existingTpdExtranetLicensingUrl : this.extranetLicensingUrl, out failureTarget); } return(result); }
public static void ThrowIfRightsTemplatesInvalid(IEnumerable <string> templates, string tpdName, TrustedPublishingDomainImportUtilities tpdImportUtilities, Uri intranetLicensingUrl, Uri extranetLicensingUrl, out object failureTarget) { failureTarget = null; if (templates != null) { RmsUtil.ThrowIfStringParameterNullOrEmpty(tpdName, "tpdName"); RmsUtil.ThrowIfParameterNull(tpdImportUtilities, "tpdImportUtilities"); RmsUtil.ThrowIfParameterNull(intranetLicensingUrl, "intranetLicensingUrl"); RmsUtil.ThrowIfParameterNull(extranetLicensingUrl, "extranetLicensingUrl"); foreach (string template in templates) { Uri templateDistributionPoint; Uri templateDistributionPoint2; Guid templateGuid; try { DrmClientUtils.ParseTemplate(template, out templateDistributionPoint, out templateDistributionPoint2, out templateGuid); } catch (RightsManagementException innerException) { failureTarget = tpdName; throw new InvalidTemplateException(innerException); } RmsUtil.ThrowIfRightsTemplateInvalid(tpdImportUtilities, tpdName, template, templateGuid, out failureTarget); RmsUtil.ThrowIfTemplateDistributionPointInvalid(templateDistributionPoint, RmsUtil.TemplateDistributionPointType.Intranet, templateGuid, intranetLicensingUrl, extranetLicensingUrl, out failureTarget); RmsUtil.ThrowIfTemplateDistributionPointInvalid(templateDistributionPoint2, RmsUtil.TemplateDistributionPointType.Extranet, templateGuid, intranetLicensingUrl, extranetLicensingUrl, out failureTarget); } } }
public static void ThrowIfSlcCertificateDoesNotChainToProductionHeirarchyCertificate(TrustedPublishingDomainImportUtilities tpdImportUtilities, string tpdName, out object failureTarget) { RmsUtil.ThrowIfParameterNull(tpdImportUtilities, "tpdImportUtilities"); RmsUtil.ThrowIfStringParameterNullOrEmpty(tpdName, "tpdName"); try { failureTarget = null; tpdImportUtilities.ValidateTrustedPublishingDomain(); } catch (ValidationException ex) { failureTarget = tpdName; throw new FailedToValidateSLCCertChainException(ex.ErrorCode); } }