TimeStampedData.cs 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  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 TimeStampedData
  7. : Asn1Encodable
  8. {
  9. private DerInteger version;
  10. private DerIA5String dataUri;
  11. private MetaData metaData;
  12. private Asn1OctetString content;
  13. private Evidence temporalEvidence;
  14. public TimeStampedData(DerIA5String dataUri, MetaData metaData, Asn1OctetString content,
  15. Evidence temporalEvidence)
  16. {
  17. this.version = new DerInteger(1);
  18. this.dataUri = dataUri;
  19. this.metaData = metaData;
  20. this.content = content;
  21. this.temporalEvidence = temporalEvidence;
  22. }
  23. private TimeStampedData(Asn1Sequence seq)
  24. {
  25. this.version = DerInteger.GetInstance(seq[0]);
  26. int index = 1;
  27. if (seq[index] is DerIA5String)
  28. {
  29. this.dataUri = DerIA5String.GetInstance(seq[index++]);
  30. }
  31. if (seq[index] is MetaData || seq[index] is Asn1Sequence)
  32. {
  33. this.metaData = MetaData.GetInstance(seq[index++]);
  34. }
  35. if (seq[index] is Asn1OctetString)
  36. {
  37. this.content = Asn1OctetString.GetInstance(seq[index++]);
  38. }
  39. this.temporalEvidence = Evidence.GetInstance(seq[index]);
  40. }
  41. public static TimeStampedData GetInstance(object obj)
  42. {
  43. if (obj is TimeStampedData)
  44. return (TimeStampedData)obj;
  45. if (obj != null)
  46. return new TimeStampedData(Asn1Sequence.GetInstance(obj));
  47. return null;
  48. }
  49. public virtual DerIA5String DataUri
  50. {
  51. get { return dataUri; }
  52. }
  53. public MetaData MetaData
  54. {
  55. get { return metaData; }
  56. }
  57. public Asn1OctetString Content
  58. {
  59. get { return content; }
  60. }
  61. public Evidence TemporalEvidence
  62. {
  63. get { return temporalEvidence; }
  64. }
  65. /**
  66. * <pre>
  67. * TimeStampedData ::= SEQUENCE {
  68. * version INTEGER { v1(1) },
  69. * dataUri IA5String OPTIONAL,
  70. * metaData MetaData OPTIONAL,
  71. * content OCTET STRING OPTIONAL,
  72. * temporalEvidence Evidence
  73. * }
  74. * </pre>
  75. * @return
  76. */
  77. public override Asn1Object ToAsn1Object()
  78. {
  79. Asn1EncodableVector v = new Asn1EncodableVector(version);
  80. v.AddOptional(dataUri, metaData, content);
  81. v.Add(temporalEvidence);
  82. return new BerSequence(v);
  83. }
  84. }
  85. }
  86. #pragma warning restore
  87. #endif