PolicyQualifierInfo.cs 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. #if !BESTHTTP_DISABLE_ALTERNATE_SSL && (!UNITY_WEBGL || UNITY_EDITOR)
  2. #pragma warning disable
  3. using System;
  4. namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Asn1.X509
  5. {
  6. /**
  7. * Policy qualifiers, used in the X509V3 CertificatePolicies
  8. * extension.
  9. *
  10. * <pre>
  11. * PolicyQualifierInfo ::= Sequence {
  12. * policyQualifierId PolicyQualifierId,
  13. * qualifier ANY DEFINED BY policyQualifierId }
  14. * </pre>
  15. */
  16. public class PolicyQualifierInfo
  17. : Asn1Encodable
  18. {
  19. private readonly DerObjectIdentifier policyQualifierId;
  20. private readonly Asn1Encodable qualifier;
  21. /**
  22. * Creates a new <code>PolicyQualifierInfo</code> instance.
  23. *
  24. * @param policyQualifierId a <code>PolicyQualifierId</code> value
  25. * @param qualifier the qualifier, defined by the above field.
  26. */
  27. public PolicyQualifierInfo(
  28. DerObjectIdentifier policyQualifierId,
  29. Asn1Encodable qualifier)
  30. {
  31. this.policyQualifierId = policyQualifierId;
  32. this.qualifier = qualifier;
  33. }
  34. /**
  35. * Creates a new <code>PolicyQualifierInfo</code> containing a
  36. * cPSuri qualifier.
  37. *
  38. * @param cps the CPS (certification practice statement) uri as a
  39. * <code>string</code>.
  40. */
  41. public PolicyQualifierInfo(
  42. string cps)
  43. {
  44. policyQualifierId = PolicyQualifierID.IdQtCps;
  45. qualifier = new DerIA5String(cps);
  46. }
  47. /**
  48. * Creates a new <code>PolicyQualifierInfo</code> instance.
  49. *
  50. * @param as <code>PolicyQualifierInfo</code> X509 structure
  51. * encoded as an Asn1Sequence.
  52. */
  53. private PolicyQualifierInfo(
  54. Asn1Sequence seq)
  55. {
  56. if (seq.Count != 2)
  57. throw new ArgumentException("Bad sequence size: " + seq.Count, "seq");
  58. policyQualifierId = DerObjectIdentifier.GetInstance(seq[0]);
  59. qualifier = seq[1];
  60. }
  61. public static PolicyQualifierInfo GetInstance(
  62. object obj)
  63. {
  64. if (obj is PolicyQualifierInfo)
  65. return (PolicyQualifierInfo)obj;
  66. if (obj == null)
  67. return null;
  68. return new PolicyQualifierInfo(Asn1Sequence.GetInstance(obj));
  69. }
  70. public virtual DerObjectIdentifier PolicyQualifierId
  71. {
  72. get { return policyQualifierId; }
  73. }
  74. public virtual Asn1Encodable Qualifier
  75. {
  76. get { return qualifier; }
  77. }
  78. /**
  79. * Returns a Der-encodable representation of this instance.
  80. *
  81. * @return a <code>Asn1Object</code> value
  82. */
  83. public override Asn1Object ToAsn1Object()
  84. {
  85. return new DerSequence(policyQualifierId, qualifier);
  86. }
  87. }
  88. }
  89. #pragma warning restore
  90. #endif