TimeStampedDataParser.cs 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  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 TimeStampedDataParser
  7. {
  8. private DerInteger version;
  9. private DerIA5String dataUri;
  10. private MetaData metaData;
  11. private Asn1OctetStringParser content;
  12. private Evidence temporalEvidence;
  13. private Asn1SequenceParser parser;
  14. private TimeStampedDataParser(Asn1SequenceParser parser)
  15. {
  16. this.parser = parser;
  17. this.version = DerInteger.GetInstance(parser.ReadObject());
  18. Asn1Object obj = parser.ReadObject().ToAsn1Object();
  19. if (obj is DerIA5String)
  20. {
  21. this.dataUri = DerIA5String.GetInstance(obj);
  22. obj = parser.ReadObject().ToAsn1Object();
  23. }
  24. if (//obj is MetaData ||
  25. obj is Asn1SequenceParser)
  26. {
  27. this.metaData = MetaData.GetInstance(obj.ToAsn1Object());
  28. obj = parser.ReadObject().ToAsn1Object();
  29. }
  30. if (obj is Asn1OctetStringParser)
  31. {
  32. this.content = (Asn1OctetStringParser)obj;
  33. }
  34. }
  35. public static TimeStampedDataParser GetInstance(object obj)
  36. {
  37. if (obj is Asn1Sequence)
  38. return new TimeStampedDataParser(((Asn1Sequence)obj).Parser);
  39. if (obj is Asn1SequenceParser)
  40. return new TimeStampedDataParser((Asn1SequenceParser)obj);
  41. return null;
  42. }
  43. public virtual DerIA5String DataUri
  44. {
  45. get { return dataUri; }
  46. }
  47. public virtual MetaData MetaData
  48. {
  49. get { return metaData; }
  50. }
  51. public virtual Asn1OctetStringParser Content
  52. {
  53. get { return content; }
  54. }
  55. public virtual Evidence GetTemporalEvidence()
  56. {
  57. if (temporalEvidence == null)
  58. {
  59. temporalEvidence = Evidence.GetInstance(parser.ReadObject().ToAsn1Object());
  60. }
  61. return temporalEvidence;
  62. }
  63. }
  64. }
  65. #pragma warning restore
  66. #endif