SCVPReqRes.cs 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. #if !BESTHTTP_DISABLE_ALTERNATE_SSL && (!UNITY_WEBGL || UNITY_EDITOR)
  2. #pragma warning disable
  3. using System;
  4. namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Asn1.Cms
  5. {
  6. public class ScvpReqRes
  7. : Asn1Encodable
  8. {
  9. private readonly ContentInfo request;
  10. private readonly ContentInfo response;
  11. public static ScvpReqRes GetInstance(object obj)
  12. {
  13. if (obj is ScvpReqRes)
  14. return (ScvpReqRes)obj;
  15. if (obj != null)
  16. return new ScvpReqRes(Asn1Sequence.GetInstance(obj));
  17. return null;
  18. }
  19. private ScvpReqRes(Asn1Sequence seq)
  20. {
  21. if (seq[0] is Asn1TaggedObject)
  22. {
  23. this.request = ContentInfo.GetInstance(Asn1TaggedObject.GetInstance(seq[0]), true);
  24. this.response = ContentInfo.GetInstance(seq[1]);
  25. }
  26. else
  27. {
  28. this.request = null;
  29. this.response = ContentInfo.GetInstance(seq[0]);
  30. }
  31. }
  32. public ScvpReqRes(ContentInfo response)
  33. : this(null, response)
  34. {
  35. }
  36. public ScvpReqRes(ContentInfo request, ContentInfo response)
  37. {
  38. this.request = request;
  39. this.response = response;
  40. }
  41. public virtual ContentInfo Request
  42. {
  43. get { return request; }
  44. }
  45. public virtual ContentInfo Response
  46. {
  47. get { return response; }
  48. }
  49. /**
  50. * <pre>
  51. * ScvpReqRes ::= SEQUENCE {
  52. * request [0] EXPLICIT ContentInfo OPTIONAL,
  53. * response ContentInfo }
  54. * </pre>
  55. * @return the ASN.1 primitive representation.
  56. */
  57. public override Asn1Object ToAsn1Object()
  58. {
  59. Asn1EncodableVector v = new Asn1EncodableVector();
  60. v.AddOptionalTagged(true, 0, request);
  61. v.Add(response);
  62. return new DerSequence(v);
  63. }
  64. }
  65. }
  66. #pragma warning restore
  67. #endif