CrlID.cs 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. #if !BESTHTTP_DISABLE_ALTERNATE_SSL && (!UNITY_WEBGL || UNITY_EDITOR)
  2. #pragma warning disable
  3. using System;
  4. using System.Collections;
  5. namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Asn1.Ocsp
  6. {
  7. public class CrlID
  8. : Asn1Encodable
  9. {
  10. private readonly DerIA5String crlUrl;
  11. private readonly DerInteger crlNum;
  12. private readonly DerGeneralizedTime crlTime;
  13. // TODO Add GetInstance method(s) and amke this private?
  14. public CrlID(
  15. Asn1Sequence seq)
  16. {
  17. foreach (Asn1TaggedObject o in seq)
  18. {
  19. switch (o.TagNo)
  20. {
  21. case 0:
  22. crlUrl = DerIA5String.GetInstance(o, true);
  23. break;
  24. case 1:
  25. crlNum = DerInteger.GetInstance(o, true);
  26. break;
  27. case 2:
  28. crlTime = DerGeneralizedTime.GetInstance(o, true);
  29. break;
  30. default:
  31. throw new ArgumentException("unknown tag number: " + o.TagNo);
  32. }
  33. }
  34. }
  35. public DerIA5String CrlUrl
  36. {
  37. get { return crlUrl; }
  38. }
  39. public DerInteger CrlNum
  40. {
  41. get { return crlNum; }
  42. }
  43. public DerGeneralizedTime CrlTime
  44. {
  45. get { return crlTime; }
  46. }
  47. /**
  48. * Produce an object suitable for an Asn1OutputStream.
  49. * <pre>
  50. * CrlID ::= Sequence {
  51. * crlUrl [0] EXPLICIT IA5String OPTIONAL,
  52. * crlNum [1] EXPLICIT Integer OPTIONAL,
  53. * crlTime [2] EXPLICIT GeneralizedTime OPTIONAL }
  54. * </pre>
  55. */
  56. public override Asn1Object ToAsn1Object()
  57. {
  58. Asn1EncodableVector v = new Asn1EncodableVector();
  59. v.AddOptionalTagged(true, 0, crlUrl);
  60. v.AddOptionalTagged(true, 1, crlNum);
  61. v.AddOptionalTagged(true, 2, crlTime);
  62. return new DerSequence(v);
  63. }
  64. }
  65. }
  66. #pragma warning restore
  67. #endif