UserAttributePacket.cs 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. #if !BESTHTTP_DISABLE_ALTERNATE_SSL && (!UNITY_WEBGL || UNITY_EDITOR)
  2. #pragma warning disable
  3. using System;
  4. using System.Collections;
  5. using System.IO;
  6. using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
  7. namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Bcpg
  8. {
  9. /**
  10. * Basic type for a user attribute packet.
  11. */
  12. public class UserAttributePacket
  13. : ContainedPacket
  14. {
  15. private readonly UserAttributeSubpacket[] subpackets;
  16. public UserAttributePacket(
  17. BcpgInputStream bcpgIn)
  18. {
  19. UserAttributeSubpacketsParser sIn = new UserAttributeSubpacketsParser(bcpgIn);
  20. UserAttributeSubpacket sub;
  21. IList v = BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities.Platform.CreateArrayList();
  22. while ((sub = sIn.ReadPacket()) != null)
  23. {
  24. v.Add(sub);
  25. }
  26. subpackets = new UserAttributeSubpacket[v.Count];
  27. for (int i = 0; i != subpackets.Length; i++)
  28. {
  29. subpackets[i] = (UserAttributeSubpacket)v[i];
  30. }
  31. }
  32. public UserAttributePacket(
  33. UserAttributeSubpacket[] subpackets)
  34. {
  35. this.subpackets = subpackets;
  36. }
  37. public UserAttributeSubpacket[] GetSubpackets()
  38. {
  39. return subpackets;
  40. }
  41. public override void Encode(
  42. BcpgOutputStream bcpgOut)
  43. {
  44. MemoryStream bOut = new MemoryStream();
  45. for (int i = 0; i != subpackets.Length; i++)
  46. {
  47. subpackets[i].Encode(bOut);
  48. }
  49. bcpgOut.WritePacket(PacketTag.UserAttribute, bOut.ToArray(), false);
  50. }
  51. }
  52. }
  53. #pragma warning restore
  54. #endif