DLSet.cs 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. #if !BESTHTTP_DISABLE_ALTERNATE_SSL && (!UNITY_WEBGL || UNITY_EDITOR)
  2. #pragma warning disable
  3. using System;
  4. namespace Best.HTTP.SecureProtocol.Org.BouncyCastle.Asn1
  5. {
  6. internal class DLSet
  7. : DerSet
  8. {
  9. internal static new readonly DLSet Empty = new DLSet();
  10. internal static new DLSet FromVector(Asn1EncodableVector elementVector)
  11. {
  12. return elementVector.Count < 1 ? Empty : new DLSet(elementVector);
  13. }
  14. /**
  15. * create an empty set
  16. */
  17. internal DLSet()
  18. : base()
  19. {
  20. }
  21. /**
  22. * create a set containing one object
  23. */
  24. internal DLSet(Asn1Encodable element)
  25. : base(element)
  26. {
  27. }
  28. internal DLSet(params Asn1Encodable[] elements)
  29. : base(elements, false)
  30. {
  31. }
  32. /**
  33. * create a set containing a vector of objects.
  34. */
  35. internal DLSet(Asn1EncodableVector elementVector)
  36. : base(elementVector, false)
  37. {
  38. }
  39. internal DLSet(bool isSorted, Asn1Encodable[] elements)
  40. : base(isSorted, elements)
  41. {
  42. }
  43. internal override IAsn1Encoding GetEncoding(int encoding)
  44. {
  45. if (Asn1OutputStream.EncodingDer == encoding)
  46. return base.GetEncoding(encoding);
  47. return new ConstructedDLEncoding(Asn1Tags.Universal, Asn1Tags.Set,
  48. Asn1OutputStream.GetContentsEncodings(encoding, elements));
  49. }
  50. internal override IAsn1Encoding GetEncodingImplicit(int encoding, int tagClass, int tagNo)
  51. {
  52. if (Asn1OutputStream.EncodingDer == encoding)
  53. return base.GetEncodingImplicit(encoding, tagClass, tagNo);
  54. return new ConstructedDLEncoding(tagClass, tagNo,
  55. Asn1OutputStream.GetContentsEncodings(encoding, elements));
  56. }
  57. }
  58. }
  59. #pragma warning restore
  60. #endif