RevDetails.cs 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. #if !BESTHTTP_DISABLE_ALTERNATE_SSL && (!UNITY_WEBGL || UNITY_EDITOR)
  2. #pragma warning disable
  3. using System;
  4. using BestHTTP.SecureProtocol.Org.BouncyCastle.Asn1.Crmf;
  5. using BestHTTP.SecureProtocol.Org.BouncyCastle.Asn1.X509;
  6. using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
  7. namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Asn1.Cmp
  8. {
  9. public class RevDetails
  10. : Asn1Encodable
  11. {
  12. private readonly CertTemplate certDetails;
  13. private readonly X509Extensions crlEntryDetails;
  14. private RevDetails(Asn1Sequence seq)
  15. {
  16. certDetails = CertTemplate.GetInstance(seq[0]);
  17. crlEntryDetails = seq.Count <= 1
  18. ? null
  19. : X509Extensions.GetInstance(seq[1]);
  20. }
  21. public static RevDetails GetInstance(object obj)
  22. {
  23. if (obj is RevDetails)
  24. return (RevDetails)obj;
  25. if (obj is Asn1Sequence)
  26. return new RevDetails((Asn1Sequence)obj);
  27. throw new ArgumentException("Invalid object: " + BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities.Platform.GetTypeName(obj), "obj");
  28. }
  29. public RevDetails(CertTemplate certDetails)
  30. : this(certDetails, null)
  31. {
  32. }
  33. public RevDetails(CertTemplate certDetails, X509Extensions crlEntryDetails)
  34. {
  35. this.certDetails = certDetails;
  36. this.crlEntryDetails = crlEntryDetails;
  37. }
  38. public virtual CertTemplate CertDetails
  39. {
  40. get { return certDetails; }
  41. }
  42. public virtual X509Extensions CrlEntryDetails
  43. {
  44. get { return crlEntryDetails; }
  45. }
  46. /**
  47. * <pre>
  48. * RevDetails ::= SEQUENCE {
  49. * certDetails CertTemplate,
  50. * -- allows requester to specify as much as they can about
  51. * -- the cert. for which revocation is requested
  52. * -- (e.g., for cases in which serialNumber is not available)
  53. * crlEntryDetails Extensions OPTIONAL
  54. * -- requested crlEntryExtensions
  55. * }
  56. * </pre>
  57. * @return a basic ASN.1 object representation.
  58. */
  59. public override Asn1Object ToAsn1Object()
  60. {
  61. Asn1EncodableVector v = new Asn1EncodableVector(certDetails);
  62. v.AddOptional(crlEntryDetails);
  63. return new DerSequence(v);
  64. }
  65. }
  66. }
  67. #pragma warning restore
  68. #endif