コード例 #1
0
 public FSharpTemplateTypeBuilder(TemplateOptions options)
     : base(options)
 {
     ProviderOptions.Add("CompilerVersion", "v2.0");
 }
コード例 #2
0
 public CSharp2TemplateTypeBuilder()
     : base(new CSharpCodeProvider())
 {
     ProviderOptions.Add("CompilerVersion", "v2.0");
 }
コード例 #3
0
 public CSharp3TemplateTypeBuilder(TemplateOptions options)
     : base(options)
 {
     ProviderOptions.Add("CompilerVersion", "v3.5");
 }
コード例 #4
0
        public CertWizard()
        {
            InitializeComponent();

            // create a list of all csp providers
            CertEnroll.CCspInformations CspInformations = new CertEnroll.CCspInformations();
            CspInformations.AddAvailableCsps();

            // enumerate each provider
            foreach (CertEnroll.ICspInformation oCsp in CspInformations)
            {
                // create a structure for display purposes
                ProviderDetails oOpt = new ProviderDetails();
                oOpt.IsHardware = oCsp.IsSmartCard || oCsp.IsHardwareDevice;
                oOpt.IsLegacy   = oCsp.LegacyCsp;
                ProviderOptions.Add(oCsp.Name, oOpt);

                // populate display structure with algorithmn information
                foreach (CertEnroll.ICspAlgorithm oAlg in oCsp.CspAlgorithms)
                {
                    // special case: eliminate generic ecdsa that does not work
                    if (oAlg.Name.Equals("ECDSA"))
                    {
                        continue;
                    }

                    // hash algorithms
                    if (oAlg.Type == CertEnroll.AlgorithmType.XCN_BCRYPT_HASH_INTERFACE)
                    {
                        if (oOpt.HashAlgorithmns.Contains(oAlg.Name))
                        {
                            continue;
                        }
                        oOpt.HashAlgorithmns.Add(oAlg.Name);
                    }

                    // signature algorithms
                    else if (oAlg.Type == CertEnroll.AlgorithmType.XCN_BCRYPT_SIGNATURE_INTERFACE ||
                             oAlg.Type == CertEnroll.AlgorithmType.XCN_BCRYPT_ASYMMETRIC_ENCRYPTION_INTERFACE)
                    {
                        if (oOpt.SignatureAlgorithmns.Contains(oAlg.Name))
                        {
                            continue;
                        }
                        oOpt.SignatureAlgorithmns.Add(oAlg.Name);
                        oOpt.SignatureMinLengths.Add(oAlg.Name, oAlg.MinLength);
                        oOpt.SignatureMaxLengths.Add(oAlg.Name, oAlg.MaxLength);
                    }
                }

                // sort so rsa is near the top
                oOpt.SignatureAlgorithmns = oOpt.SignatureAlgorithmns.
                                            OrderBy(x => x.Contains("_")).ThenBy(x => x).ToList();
            }

            // set default values
            oValidFromDatePicker.SelectedDate  = DateTime.Now;
            oValidUntilDatePicker.SelectedDate = DateTime.Now.AddYears(3);

            // populate extended key usage options
            foreach (Oid oOid in NativeMethods.GetExtendedKeyUsages())
            {
                // skip weird looking or known problematic options
                if (oOid.FriendlyName.StartsWith("sz") ||
                    oOid.FriendlyName.StartsWith("@"))
                {
                    continue;
                }

                // translate into our display structure
                EkuOption oKeyUsage = new EkuOption()
                {
                    Name = oOid.FriendlyName,
                    Oid  = oOid.Value
                };
                EnhancedKeyUsages.Add(oKeyUsage);
            }

            // populate key usage options
            foreach (string sKeyUsage in Enum.GetNames(typeof(X509KeyUsageFlags)))
            {
                EkuOption oOpt = new EkuOption();
                oOpt.Name = Regex.Replace(sKeyUsage, "(\\B[A-Z])", " $1");
                oOpt.Oid  = sKeyUsage;
                KeyUsages.Add(oOpt);
            }

            // set combobox to sort
            oProviderComboBox.Items.SortDescriptions.Add(new SortDescription("", ListSortDirection.Ascending));
            oKeyUsageCombobox.Items.SortDescriptions.Add(new SortDescription("Name", ListSortDirection.Ascending));
            oEnhancedKeyUsageCombobox.Items.SortDescriptions.Add(new SortDescription("Name", ListSortDirection.Ascending));
            oProviderType_Checked(null, null);

            // disable machine store option if user is not an admin
            oCertificateStoreMachineRadio.IsEnabled =
                new WindowsPrincipal(WindowsIdentity.GetCurrent())
                .IsInRole(WindowsBuiltInRole.Administrator);
        }
コード例 #5
0
 public VisualBasicTemplateTypeBuilder(TemplateOptions options)
     : base(options)
 {
     ProviderOptions.Add("CompilerVersion", "v3.5");
 }