DerOutputStream.cs 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. #if !BESTHTTP_DISABLE_ALTERNATE_SSL && (!UNITY_WEBGL || UNITY_EDITOR)
  2. #pragma warning disable
  3. using System;
  4. using System.IO;
  5. using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities.IO;
  6. namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Asn1
  7. {
  8. public class DerOutputStream
  9. : FilterStream
  10. {
  11. public DerOutputStream(Stream os)
  12. : base(os)
  13. {
  14. }
  15. public virtual void WriteObject(Asn1Encodable encodable)
  16. {
  17. Asn1OutputStream.Create(s, Asn1Encodable.Der).WriteObject(encodable);
  18. }
  19. public virtual void WriteObject(Asn1Object primitive)
  20. {
  21. Asn1OutputStream.Create(s, Asn1Encodable.Der).WriteObject(primitive);
  22. }
  23. }
  24. internal class DerOutputStreamNew
  25. : Asn1OutputStream
  26. {
  27. internal DerOutputStreamNew(Stream os)
  28. : base(os)
  29. {
  30. }
  31. internal override bool IsBer
  32. {
  33. get { return false; }
  34. }
  35. internal override void WritePrimitive(Asn1Object primitive, bool withID)
  36. {
  37. Asn1Set asn1Set = primitive as Asn1Set;
  38. if (null != asn1Set)
  39. {
  40. /*
  41. * NOTE: Even a DerSet isn't necessarily already in sorted order (particularly from DerSetParser),
  42. * so all sets have to be converted here.
  43. */
  44. primitive = new DerSet(asn1Set.elements);
  45. }
  46. primitive.Encode(this, withID);
  47. }
  48. }
  49. }
  50. #pragma warning restore
  51. #endif