示例#1
0
 /// <summary>
 /// Create extension from XML profile file entry
 /// </summary>
 /// <remarks>
 /// Sample OSCA XML description of the SubjectAlternativeName extension:
 /// <code>
 /// &lt;Extension&gt;
 ///     &lt;name displayName="Subject Alternative Name"&gt;SubjectAlternativeName&lt;/name&gt;
 ///     &lt;critical&gt;false&lt;/critical&gt;
 ///     &lt;value&gt;
 ///         &lt;altName type="rc822Name"&gt;[email protected]&lt;/altName&gt;
 ///         &lt;altName type="dNSName"&gt;peter.foo.com&lt;/altName&gt;
 ///     &lt;/value&gt;
 /// &lt;/Extension&gt;
 /// </code>
 /// Note that either a SubjectAlternativeName or an IssuerAlternativeName is processed the same.
 /// </remarks>
 /// <param name="xml">XML version of the extension</param>
 protected AlternativeName(XElement xml)
     : base(xml)
 {
     foreach (XElement name in xmlValue.Descendants("altName"))
     {
         OSCAGeneralName altName = new OSCAGeneralName()
         {
             Name = name.Value,
             Type = generalNames.getGenName(name.Attribute("type").Value)
         };
         genNames.Add(altName);
     }
 }
示例#2
0
        /// <summary>
        /// Remove a name
        /// </summary>
        /// <param name="Tree">Exclude or include</param>
        /// <param name="Name">Name to remove</param>
        public void Remove(NameConstraintTree Tree, OSCAGeneralName Name)
        {
            switch (Tree)
            {
            case NameConstraintTree.Permitted:
                permitted.Remove(Name);
                break;

            case NameConstraintTree.Excluded:
                excluded.Remove(Name);
                break;
            }
        }
示例#3
0
 /// <summary>
 /// Read a DistributionPoint list
 /// </summary>
 /// <param name="dps">DistributionPoint list</param>
 protected void decode(DistributionPoint[] dps)
 {
     foreach (DistributionPoint dp in dps)
     {
         DistributionPointName dpn = dp.DistributionPointName;
         OSCAGeneralName       ogn = new OSCAGeneralName()
         {
             Name = dpn.Name.ToString(),
             Type = (GenName)dpn.PointType
         };
         distPoints.Add(ogn);
     }
 }
示例#4
0
 /// <summary>
 /// Create extension from XML profile file entry
 /// </summary>
 /// <remarks>
 /// Sample OSCA XML description of the FreshestCRL extension:
 /// <code>
 /// &lt;Extension&gt;
 ///     &lt;name description="Freshest CRL"&gt;FreshestCRL&lt;/name&gt;
 ///     &lt;critical&gt;true&lt;/critical&gt;
 ///     &lt;value&gt;
 ///         &lt;cdp&gt;
 ///             &lt;name type="uniformResourceIdentifier"&gt;http://crl.foo.org/wotsit.crl&lt;/name&gt;
 ///         &lt;/cdp&gt;
 ///         &lt;cdp&gt;
 ///             &lt;name type="uniformResourceIdentifier"&gt;http://www.bar.org/wotsit.crl&lt;/name&gt;
 ///         &lt;/cdp&gt;
 ///     &lt;/value&gt;
 /// &lt;/Extension&gt;
 /// </code>
 /// Note that FreshestCRL and CRLDistributionPoint are processed the same.
 /// </remarks>
 /// <param name="xml">XML version of the extension</param>
 protected DistributionPoints(XElement xml)
     : base(xml)
 {
     foreach (XElement name in xmlValue.Descendants("cdp"))
     {
         OSCAGeneralName dp = new OSCAGeneralName()
         {
             Name = name.Value,
             Type = generalNames.getGenName(name.Attribute("type").Value)
         };
         distPoints.Add(dp);
     }
 }
示例#5
0
        private void updateDataSet(OSCAGeneralName gn, int index)
        {
            dr         = ds.Tables["generalNames"].NewRow();
            dr["DP"]   = (index + 1).ToString();
            dr["Type"] = gn.Type.ToString();
            dr["Name"] = gn.Name;
            ds.Tables["generalNames"].Rows.Add(dr);

            // Seems to be a bug in the .Net dgv code that throws an exception in some circumstances
            try
            {
                dgv.Columns[0].Width = 40;
            }
            catch (NullReferenceException) { }
        }
示例#6
0
        private void butOK_Click(object sender, EventArgs e)
        {
            gn = new OSCAGeneralName()
            {
                Name = tbName.Text
            };
            switch ((string)lbType.SelectedItem)
            {
            case "Other Name":
                gn.Type = GenName.otherName;
                break;

            case "RFC822 Name":
                gn.Type = GenName.rfc822Name;
                break;

            case "DNS Name":
                gn.Type = GenName.dNSName;
                break;

            case "X400 Address":
                gn.Type = GenName.x400Address;
                break;

            case "Directory Name":
                gn.Type = GenName.directoryName;
                break;

            case "EDI Party Name":
                gn.Type = GenName.ediPartyName;
                break;

            case "Uniform Resource Identifier":
                gn.Type = GenName.uniformResourceIdentifier;
                break;

            case "IP Address":
                gn.Type = GenName.iPAddress;
                break;

            case "Registered ID":
                gn.Type = GenName.registeredID;
                break;
            }
        }
示例#7
0
        private void updateDataSet(AccessMethod method, OSCAGeneralName gn, int index)
        {
            switch (method)
            {
            case AccessMethod.CARepository:
                dr         = ds.Tables["caRepository"].NewRow();
                dr["#"]    = (index + 1).ToString();
                dr["Type"] = gn.Type.ToString();
                dr["Name"] = gn.Name;
                ds.Tables["caRepository"].Rows.Add(dr);
                break;

            case AccessMethod.TimeStamping:
                dr         = ds.Tables["timeStamping"].NewRow();
                dr["#"]    = (index + 1).ToString();
                dr["Type"] = gn.Type.ToString();
                dr["Name"] = gn.Name;
                ds.Tables["timeStamping"].Rows.Add(dr);
                break;
            }
        }
示例#8
0
        private void updateDataSet(AccessMethod method, OSCAGeneralName gn, int index)
        {
            switch (method)
            {
            case AccessMethod.CAIssuers:
                dr         = ds.Tables["caIssuers"].NewRow();
                dr["#"]    = (index + 1).ToString();
                dr["Type"] = gn.Type.ToString();
                dr["Name"] = gn.Name;
                ds.Tables["caIssuers"].Rows.Add(dr);
                break;

            case AccessMethod.Ocsp:
                dr         = ds.Tables["ocsp"].NewRow();
                dr["#"]    = (index + 1).ToString();
                dr["Type"] = gn.Type.ToString();
                dr["Name"] = gn.Name;
                ds.Tables["ocsp"].Rows.Add(dr);
                break;
            }
        }
示例#9
0
 /// <summary>
 /// Remove an Alt Name from the extension
 /// </summary>
 /// <param name="Name">The name.</param>
 public void Remove(OSCAGeneralName Name)
 {
     genNames.Remove(Name);
 }
示例#10
0
 /// <summary>
 /// Add a new Alt Name to the extension
 /// </summary>
 /// <param name="Name">The name.</param>
 public void Add(OSCAGeneralName Name)
 {
     genNames.Add(Name);
 }
示例#11
0
 /// <summary>
 /// Remove a crlDistPoint from the extension
 /// </summary>
 /// <param name="Name"></param>
 public void Remove(OSCAGeneralName Name)
 {
     distPoints.Remove(Name);
 }
示例#12
0
 /// <summary>
 /// Add a new crlDistPoint to the extension
 /// </summary>
 /// <param name="Name"></param>
 public void Add(OSCAGeneralName Name)
 {
     distPoints.Add(Name);
 }