Evidence.cs 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  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.Cms
  6. {
  7. public class Evidence
  8. : Asn1Encodable, IAsn1Choice
  9. {
  10. private TimeStampTokenEvidence tstEvidence;
  11. private Asn1Sequence otherEvidence;
  12. public Evidence(TimeStampTokenEvidence tstEvidence)
  13. {
  14. this.tstEvidence = tstEvidence;
  15. }
  16. private Evidence(Asn1TaggedObject tagged)
  17. {
  18. if (tagged.TagNo == 0)
  19. {
  20. this.tstEvidence = TimeStampTokenEvidence.GetInstance(tagged, false);
  21. }
  22. //else if (tagged.TagNo == 1)
  23. //{
  24. // this.ersEvidence = EvidenceRecord.GetInstance(tagged, false);
  25. //}
  26. else if (tagged.TagNo == 2)
  27. {
  28. this.otherEvidence = Asn1Sequence.GetInstance(tagged, false);
  29. }
  30. else
  31. {
  32. throw new ArgumentException("unknown tag in Evidence", "tagged");
  33. }
  34. }
  35. public static Evidence GetInstance(object obj)
  36. {
  37. if (obj is Evidence)
  38. return (Evidence)obj;
  39. if (obj is Asn1TaggedObject)
  40. return new Evidence(Asn1TaggedObject.GetInstance(obj));
  41. throw new ArgumentException("Unknown object in GetInstance: " + BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities.Platform.GetTypeName(obj), "obj");
  42. }
  43. public static Evidence GetInstance(Asn1TaggedObject obj, bool isExplicit)
  44. {
  45. return GetInstance(obj.GetObject()); // must be explicitly tagged
  46. }
  47. public virtual TimeStampTokenEvidence TstEvidence
  48. {
  49. get { return tstEvidence; }
  50. }
  51. //public EvidenceRecord ErsEvidence
  52. //{
  53. // get { return ersEvidence; }
  54. //}
  55. public override Asn1Object ToAsn1Object()
  56. {
  57. if (tstEvidence != null)
  58. return new DerTaggedObject(false, 0, tstEvidence);
  59. //if (ersEvidence != null)
  60. // return new DerTaggedObject(false, 1, ersEvidence);
  61. return new DerTaggedObject(false, 2, otherEvidence);
  62. }
  63. }
  64. }
  65. #pragma warning restore
  66. #endif