/// <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); } }
/// <summary> /// Create CertificatePolicies extension from XML profile file entry /// </summary> /// <remarks> /// Sample OSCA XML description of the CertificatePolicies extension: /// <code> /// <Extension> /// <name description="Certificate Policies">CertificatePolicies</name> /// <critical>false</critical> /// <value> /// <policyInfo> /// <oid>1.2.3.4</oid> /// <cps>http://foo.bar.com/cps.html</cps> /// --> <unotice></unotice> /// <name>MediumAssurance</name> /// </policyInfo> /// </value> /// </Extension> /// </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); } }
/// <summary> /// Remove a CertPolicy from the extension /// </summary> /// <param name="Policy">Certificate policy</param> public void Remove(CertPolicy Policy) { policies.Remove(Policy); }
/// <summary> /// Add a new CertPolicy to the extension /// </summary> /// <param name="Policy">Certificate policy</param> public void Add(CertPolicy Policy) { policies.Add(Policy); }