RevDetails.cs 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  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. /**
  8. * <pre>
  9. * RevDetails ::= SEQUENCE {
  10. * certDetails CertTemplate,
  11. * -- allows requester to specify as much as they can about
  12. * -- the cert. for which revocation is requested
  13. * -- (e.g., for cases in which serialNumber is not available)
  14. * crlEntryDetails Extensions OPTIONAL
  15. * -- requested crlEntryExtensions
  16. * }
  17. * </pre>
  18. */
  19. public class RevDetails
  20. : Asn1Encodable
  21. {
  22. public static RevDetails GetInstance(object obj)
  23. {
  24. if (obj is RevDetails revDetails)
  25. return revDetails;
  26. if (obj != null)
  27. return new RevDetails(Asn1Sequence.GetInstance(obj));
  28. return null;
  29. }
  30. private readonly CertTemplate m_certDetails;
  31. private readonly X509Extensions m_crlEntryDetails;
  32. private RevDetails(Asn1Sequence seq)
  33. {
  34. m_certDetails = CertTemplate.GetInstance(seq[0]);
  35. if (seq.Count > 1)
  36. {
  37. m_crlEntryDetails = X509Extensions.GetInstance(seq[1]);
  38. }
  39. }
  40. public RevDetails(CertTemplate certDetails)
  41. : this(certDetails, null)
  42. {
  43. }
  44. public RevDetails(CertTemplate certDetails, X509Extensions crlEntryDetails)
  45. {
  46. m_certDetails = certDetails;
  47. m_crlEntryDetails = crlEntryDetails;
  48. }
  49. public virtual CertTemplate CertDetails => m_certDetails;
  50. public virtual X509Extensions CrlEntryDetails => m_crlEntryDetails;
  51. /**
  52. * <pre>
  53. * RevDetails ::= SEQUENCE {
  54. * certDetails CertTemplate,
  55. * -- allows requester to specify as much as they can about
  56. * -- the cert. for which revocation is requested
  57. * -- (e.g., for cases in which serialNumber is not available)
  58. * crlEntryDetails Extensions OPTIONAL
  59. * -- requested crlEntryExtensions
  60. * }
  61. * </pre>
  62. * @return a basic ASN.1 object representation.
  63. */
  64. public override Asn1Object ToAsn1Object()
  65. {
  66. Asn1EncodableVector v = new Asn1EncodableVector(m_certDetails);
  67. v.AddOptional(m_crlEntryDetails);
  68. return new DerSequence(v);
  69. }
  70. }
  71. }
  72. #pragma warning restore
  73. #endif