CrlStatus.cs 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. #if !BESTHTTP_DISABLE_ALTERNATE_SSL && (!UNITY_WEBGL || UNITY_EDITOR)
  2. #pragma warning disable
  3. using System;
  4. using Best.HTTP.SecureProtocol.Org.BouncyCastle.Asn1.X509;
  5. namespace Best.HTTP.SecureProtocol.Org.BouncyCastle.Asn1.Cmp
  6. {
  7. /**
  8. * CRLStatus ::= SEQUENCE {
  9. * source CRLSource,
  10. * thisUpdate Time OPTIONAL }
  11. */
  12. public class CrlStatus
  13. : Asn1Encodable
  14. {
  15. public static CrlStatus GetInstance(object obj)
  16. {
  17. if (obj is CrlStatus crlStatus)
  18. return crlStatus;
  19. if (obj != null)
  20. return new CrlStatus(Asn1Sequence.GetInstance(obj));
  21. return null;
  22. }
  23. private readonly CrlSource m_source;
  24. private readonly Time m_thisUpdate;
  25. private CrlStatus(Asn1Sequence sequence)
  26. {
  27. int count = sequence.Count;
  28. if (count < 1 || count > 2)
  29. throw new ArgumentException("expected sequence size of 1 or 2, got " + count);
  30. m_source = CrlSource.GetInstance(sequence[0]);
  31. if (sequence.Count == 2)
  32. {
  33. m_thisUpdate = Time.GetInstance(sequence[1]);
  34. }
  35. }
  36. public CrlStatus(CrlSource source, Time thisUpdate)
  37. {
  38. m_source = source;
  39. m_thisUpdate = thisUpdate;
  40. }
  41. public virtual CrlSource Source => m_source;
  42. public virtual Time ThisUpdate => m_thisUpdate;
  43. public override Asn1Object ToAsn1Object()
  44. {
  45. if (m_thisUpdate == null)
  46. return new DerSequence(m_source);
  47. return new DerSequence(m_source, m_thisUpdate);
  48. }
  49. }
  50. }
  51. #pragma warning restore
  52. #endif