RevAnnContent.cs 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. #if !BESTHTTP_DISABLE_ALTERNATE_SSL && (!UNITY_WEBGL || UNITY_EDITOR)
  2. #pragma warning disable
  3. using Best.HTTP.SecureProtocol.Org.BouncyCastle.Asn1.Crmf;
  4. using Best.HTTP.SecureProtocol.Org.BouncyCastle.Asn1.X509;
  5. namespace Best.HTTP.SecureProtocol.Org.BouncyCastle.Asn1.Cmp
  6. {
  7. public class RevAnnContent
  8. : Asn1Encodable
  9. {
  10. public static RevAnnContent GetInstance(object obj)
  11. {
  12. if (obj is RevAnnContent revAnnContent)
  13. return revAnnContent;
  14. if (obj != null)
  15. return new RevAnnContent(Asn1Sequence.GetInstance(obj));
  16. return null;
  17. }
  18. private readonly PkiStatusEncodable m_status;
  19. private readonly CertId m_certID;
  20. private readonly Asn1GeneralizedTime m_willBeRevokedAt;
  21. private readonly Asn1GeneralizedTime m_badSinceDate;
  22. private readonly X509Extensions m_crlDetails;
  23. public RevAnnContent(PkiStatusEncodable status, CertId certID, Asn1GeneralizedTime willBeRevokedAt,
  24. Asn1GeneralizedTime badSinceDate)
  25. : this(status, certID, willBeRevokedAt, badSinceDate, null)
  26. {
  27. }
  28. public RevAnnContent(PkiStatusEncodable status, CertId certID, Asn1GeneralizedTime willBeRevokedAt,
  29. Asn1GeneralizedTime badSinceDate, X509Extensions crlDetails)
  30. {
  31. m_status = status;
  32. m_certID = certID;
  33. m_willBeRevokedAt = willBeRevokedAt;
  34. m_badSinceDate = badSinceDate;
  35. m_crlDetails = crlDetails;
  36. }
  37. private RevAnnContent(Asn1Sequence seq)
  38. {
  39. m_status = PkiStatusEncodable.GetInstance(seq[0]);
  40. m_certID = CertId.GetInstance(seq[1]);
  41. m_willBeRevokedAt = Asn1GeneralizedTime.GetInstance(seq[2]);
  42. m_badSinceDate = Asn1GeneralizedTime.GetInstance(seq[3]);
  43. if (seq.Count > 4)
  44. {
  45. m_crlDetails = X509Extensions.GetInstance(seq[4]);
  46. }
  47. }
  48. public virtual PkiStatusEncodable Status => m_status;
  49. public virtual CertId CertID => m_certID;
  50. public virtual Asn1GeneralizedTime WillBeRevokedAt => m_willBeRevokedAt;
  51. public virtual Asn1GeneralizedTime BadSinceDate => m_badSinceDate;
  52. public virtual X509Extensions CrlDetails => m_crlDetails;
  53. /**
  54. * <pre>
  55. * RevAnnContent ::= SEQUENCE {
  56. * status PKIStatus,
  57. * certId CertId,
  58. * willBeRevokedAt GeneralizedTime,
  59. * badSinceDate GeneralizedTime,
  60. * crlDetails Extensions OPTIONAL
  61. * -- extra CRL details (e.g., crl number, reason, location, etc.)
  62. * }
  63. * </pre>
  64. * @return a basic ASN.1 object representation.
  65. */
  66. public override Asn1Object ToAsn1Object()
  67. {
  68. Asn1EncodableVector v = new Asn1EncodableVector(m_status, m_certID, m_willBeRevokedAt, m_badSinceDate);
  69. v.AddOptional(m_crlDetails);
  70. return new DerSequence(v);
  71. }
  72. }
  73. }
  74. #pragma warning restore
  75. #endif