Example #1
0
        /// <summary>
        /// Create CertificatePolicies extension from an X509Extension
        /// </summary>
        /// <param name="Extension">X509 extension</param>
        public certificatePolicies(X509Extension Extension) : base(Extension)
        {
            base.oid         = X509Extensions.CertificatePolicies;
            base.name        = "CertificatePolicies";
            base.displayName = "Certificate Policies";

            Crypto.X509.CertificatePolicies certPol = Crypto.X509.CertificatePolicies.GetInstance(Extension);
            PolicyInformation[]             piList  = certPol.GetPolicyInformation();
            foreach (PolicyInformation pi in piList)
            {
                CertPolicy cp = new CertPolicy()
                {
                    Oid = pi.PolicyIdentifier.ToString()
                };
                Asn1Sequence quals = pi.PolicyQualifiers;
                if (quals != null)
                {
                    foreach (DerSequence qual in quals)
                    {
                        PolicyQualifierInfo qi = PolicyQualifierInfo.GetInstance(qual);
                        if (qi.GetPolicyQualifierId().Equals(PolicyQualifierID.IdQtCps))
                        {
                            cp.Cps = qi.GetQualifier();
                        }
                        if (qi.GetPolicyQualifierId().Equals(PolicyQualifierID.IdQtUnotice))
                        {
                            cp.Unotice = qi.GetQualifier();
                        }
                    }
                }
                policies.Add(cp);
            }
        }
Example #2
0
        /// <summary>
        /// Create CertificatePolicies extension from XML profile file entry
        /// </summary>
        /// <remarks>
        /// Sample OSCA XML description of the CertificatePolicies extension:
        /// <code>
        /// &lt;Extension&gt;
        ///     &lt;name description="Certificate Policies"&gt;CertificatePolicies&lt;/name&gt;
        ///     &lt;critical&gt;false&lt;/critical&gt;
        ///     &lt;value&gt;
        ///         &lt;policyInfo&gt;
        ///             &lt;oid&gt;1.2.3.4&lt;/oid&gt;
        ///             &lt;cps&gt;http://foo.bar.com/cps.html&lt;/cps&gt;
        ///             --&gt; &lt;unotice&gt;&lt;/unotice&gt;
        ///             &lt;name&gt;MediumAssurance&lt;/name&gt;
        ///         &lt;/policyInfo&gt;
        ///     &lt;/value&gt;
        /// &lt;/Extension&gt;
        /// </code>
        /// </remarks>
        /// <param name="xml">XML version of the extension</param>
        public certificatePolicies(XElement xml) : base(xml)
        {
            base.oid = X509Extensions.CertificatePolicies;

            foreach (XElement polID in xmlValue.Descendants("policyInfo"))
            {
                CertPolicy pol = new CertPolicy()
                {
                    Oid     = polID.Element("oid").Value,
                    Cps     = polID.Element("cps").Value,
                    Unotice = polID.Element("unotice").Value,
                    Name    = polID.Element("name").Value
                };
                policies.Add(pol);
            }
        }
Example #3
0
 /// <summary>
 /// Remove a CertPolicy from the extension
 /// </summary>
 /// <param name="Policy">Certificate policy</param>
 public void Remove(CertPolicy Policy)
 {
     policies.Remove(Policy);
 }
Example #4
0
 /// <summary>
 /// Add a new CertPolicy to the extension
 /// </summary>
 /// <param name="Policy">Certificate policy</param>
 public void Add(CertPolicy Policy)
 {
     policies.Add(Policy);
 }