TimeStampResp.cs 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. #if !BESTHTTP_DISABLE_ALTERNATE_SSL && (!UNITY_WEBGL || UNITY_EDITOR)
  2. #pragma warning disable
  3. using System;
  4. using BestHTTP.SecureProtocol.Org.BouncyCastle.Asn1.Cmp;
  5. using BestHTTP.SecureProtocol.Org.BouncyCastle.Asn1.Cms;
  6. using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
  7. namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Asn1.Tsp
  8. {
  9. public class TimeStampResp
  10. : Asn1Encodable
  11. {
  12. private readonly PkiStatusInfo pkiStatusInfo;
  13. private readonly ContentInfo timeStampToken;
  14. public static TimeStampResp GetInstance(
  15. object o)
  16. {
  17. if (o == null || o is TimeStampResp)
  18. {
  19. return (TimeStampResp) o;
  20. }
  21. if (o is Asn1Sequence)
  22. {
  23. return new TimeStampResp((Asn1Sequence) o);
  24. }
  25. throw new ArgumentException(
  26. "Unknown object in 'TimeStampResp' factory: " + BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities.Platform.GetTypeName(o));
  27. }
  28. private TimeStampResp(
  29. Asn1Sequence seq)
  30. {
  31. this.pkiStatusInfo = PkiStatusInfo.GetInstance(seq[0]);
  32. if (seq.Count > 1)
  33. {
  34. this.timeStampToken = ContentInfo.GetInstance(seq[1]);
  35. }
  36. }
  37. public TimeStampResp(
  38. PkiStatusInfo pkiStatusInfo,
  39. ContentInfo timeStampToken)
  40. {
  41. this.pkiStatusInfo = pkiStatusInfo;
  42. this.timeStampToken = timeStampToken;
  43. }
  44. public PkiStatusInfo Status
  45. {
  46. get { return pkiStatusInfo; }
  47. }
  48. public ContentInfo TimeStampToken
  49. {
  50. get { return timeStampToken; }
  51. }
  52. /**
  53. * <pre>
  54. * TimeStampResp ::= SEQUENCE {
  55. * status PkiStatusInfo,
  56. * timeStampToken TimeStampToken OPTIONAL }
  57. * </pre>
  58. */
  59. public override Asn1Object ToAsn1Object()
  60. {
  61. Asn1EncodableVector v = new Asn1EncodableVector(pkiStatusInfo);
  62. if (timeStampToken != null)
  63. {
  64. v.Add(timeStampToken);
  65. }
  66. return new DerSequence(v);
  67. }
  68. }
  69. }
  70. #pragma warning restore
  71. #endif