CertificatePolicies.cs 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. #if !BESTHTTP_DISABLE_ALTERNATE_SSL && (!UNITY_WEBGL || UNITY_EDITOR)
  2. #pragma warning disable
  3. using System;
  4. using System.Text;
  5. namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Asn1.X509
  6. {
  7. public class CertificatePolicies
  8. : Asn1Encodable
  9. {
  10. private readonly PolicyInformation[] policyInformation;
  11. public static CertificatePolicies GetInstance(object obj)
  12. {
  13. if (obj == null || obj is CertificatePolicies)
  14. return (CertificatePolicies)obj;
  15. return new CertificatePolicies(Asn1Sequence.GetInstance(obj));
  16. }
  17. public static CertificatePolicies GetInstance(Asn1TaggedObject obj, bool isExplicit)
  18. {
  19. return GetInstance(Asn1Sequence.GetInstance(obj, isExplicit));
  20. }
  21. /**
  22. * Construct a CertificatePolicies object containing one PolicyInformation.
  23. *
  24. * @param name the name to be contained.
  25. */
  26. public CertificatePolicies(PolicyInformation name)
  27. {
  28. this.policyInformation = new PolicyInformation[] { name };
  29. }
  30. public CertificatePolicies(PolicyInformation[] policyInformation)
  31. {
  32. this.policyInformation = policyInformation;
  33. }
  34. private CertificatePolicies(Asn1Sequence seq)
  35. {
  36. this.policyInformation = new PolicyInformation[seq.Count];
  37. for (int i = 0; i < seq.Count; ++i)
  38. {
  39. policyInformation[i] = PolicyInformation.GetInstance(seq[i]);
  40. }
  41. }
  42. public virtual PolicyInformation[] GetPolicyInformation()
  43. {
  44. return (PolicyInformation[])policyInformation.Clone();
  45. }
  46. /**
  47. * Produce an object suitable for an ASN1OutputStream.
  48. * <pre>
  49. * CertificatePolicies ::= SEQUENCE SIZE {1..MAX} OF PolicyInformation
  50. * </pre>
  51. */
  52. public override Asn1Object ToAsn1Object()
  53. {
  54. return new DerSequence(policyInformation);
  55. }
  56. public override string ToString()
  57. {
  58. StringBuilder sb = new StringBuilder("CertificatePolicies:");
  59. if (policyInformation != null && policyInformation.Length > 0)
  60. {
  61. sb.Append(' ');
  62. sb.Append(policyInformation[0]);
  63. for (int i = 1; i < policyInformation.Length; ++i)
  64. {
  65. sb.Append(", ");
  66. sb.Append(policyInformation[i]);
  67. }
  68. }
  69. return sb.ToString();
  70. }
  71. }
  72. }
  73. #pragma warning restore
  74. #endif