OCSPRequest.cs 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. #if !BESTHTTP_DISABLE_ALTERNATE_SSL && (!UNITY_WEBGL || UNITY_EDITOR)
  2. #pragma warning disable
  3. using System;
  4. using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
  5. namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Asn1.Ocsp
  6. {
  7. public class OcspRequest
  8. : Asn1Encodable
  9. {
  10. private readonly TbsRequest tbsRequest;
  11. private readonly Signature optionalSignature;
  12. public static OcspRequest GetInstance(
  13. Asn1TaggedObject obj,
  14. bool explicitly)
  15. {
  16. return GetInstance(Asn1Sequence.GetInstance(obj, explicitly));
  17. }
  18. public static OcspRequest GetInstance(
  19. object obj)
  20. {
  21. if (obj == null || obj is OcspRequest)
  22. {
  23. return (OcspRequest)obj;
  24. }
  25. if (obj is Asn1Sequence)
  26. {
  27. return new OcspRequest((Asn1Sequence)obj);
  28. }
  29. throw new ArgumentException("unknown object in factory: " + BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities.Platform.GetTypeName(obj), "obj");
  30. }
  31. public OcspRequest(
  32. TbsRequest tbsRequest,
  33. Signature optionalSignature)
  34. {
  35. if (tbsRequest == null)
  36. throw new ArgumentNullException("tbsRequest");
  37. this.tbsRequest = tbsRequest;
  38. this.optionalSignature = optionalSignature;
  39. }
  40. private OcspRequest(
  41. Asn1Sequence seq)
  42. {
  43. tbsRequest = TbsRequest.GetInstance(seq[0]);
  44. if (seq.Count == 2)
  45. {
  46. optionalSignature = Signature.GetInstance(
  47. (Asn1TaggedObject)seq[1], true);
  48. }
  49. }
  50. public TbsRequest TbsRequest
  51. {
  52. get { return tbsRequest; }
  53. }
  54. public Signature OptionalSignature
  55. {
  56. get { return optionalSignature; }
  57. }
  58. /**
  59. * Produce an object suitable for an Asn1OutputStream.
  60. * <pre>
  61. * OcspRequest ::= Sequence {
  62. * tbsRequest TBSRequest,
  63. * optionalSignature [0] EXPLICIT Signature OPTIONAL }
  64. * </pre>
  65. */
  66. public override Asn1Object ToAsn1Object()
  67. {
  68. Asn1EncodableVector v = new Asn1EncodableVector(tbsRequest);
  69. v.AddOptionalTagged(true, 0, optionalSignature);
  70. return new DerSequence(v);
  71. }
  72. }
  73. }
  74. #pragma warning restore
  75. #endif