Example #1
0
 public static void ThrowIfTpdUsesUnauthorizedCryptoModeOnFips(TrustedDocDomain tpd, string tpdName, out object failureTarget)
 {
     RmsUtil.ThrowIfParameterNull(tpd, "tpd");
     RmsUtil.ThrowIfStringParameterNullOrEmpty(tpdName, "tpdName");
     failureTarget = null;
     using (RegistryKey registryKey = Registry.LocalMachine.OpenSubKey("System\\CurrentControlSet\\Control\\Lsa\\FIPSAlgorithmPolicy\\", false))
     {
         object value;
         if (registryKey != null && (value = registryKey.GetValue("Enabled")) != null && (int)value == 1)
         {
             int num = RmsUtil.CryptoModeFromTpd(tpd);
             if (num == 1)
             {
                 failureTarget = tpdName;
                 throw new InvalidFipsCryptoModeInImportedTrustedPublishingDomainException(num);
             }
         }
     }
 }
Example #2
0
        public static void ThrowIfTpdCspDoesNotMatchCryptoMode(TrustedDocDomain tpd, string tpdName, out object failureTarget)
        {
            RmsUtil.ThrowIfParameterNull(tpd, "tpd");
            RmsUtil.ThrowIfStringParameterNullOrEmpty(tpdName, "tpdName");
            failureTarget = null;
            int cryptoMode = RmsUtil.CryptoModeFromTpd(tpd);

            RmsUtil.CSP_TYPE csp_TYPE;
            if (!RmsUtil.TryCspEnumFromInteger(tpd.m_ttdki.nCSPType, out csp_TYPE))
            {
                failureTarget = tpdName;
                throw new InvalidCspForCryptoModeInImportedTrustedPublishingDomainException(csp_TYPE.ToString(), cryptoMode);
            }
            switch (cryptoMode)
            {
            case 1:
                if (csp_TYPE != RmsUtil.CSP_TYPE.PROV_RSA_FULL && csp_TYPE != RmsUtil.CSP_TYPE.PROV_RSA_AES)
                {
                    failureTarget = tpdName;
                    throw new InvalidCspForCryptoModeInImportedTrustedPublishingDomainException(csp_TYPE.ToString(), cryptoMode);
                }
                break;

            case 2:
                if (csp_TYPE != RmsUtil.CSP_TYPE.PROV_RSA_AES)
                {
                    failureTarget = tpdName;
                    throw new InvalidCspForCryptoModeInImportedTrustedPublishingDomainException(csp_TYPE.ToString(), cryptoMode);
                }
                break;

            default:
                failureTarget = tpdName;
                throw new InvalidCspForCryptoModeInImportedTrustedPublishingDomainException(csp_TYPE.ToString(), cryptoMode);
            }
        }