Files
SuperVPN/output/Libraries/BouncyCastle.Crypto/Org/BouncyCastle/Bcpg/UserAttributePacket.cs
2025-10-09 09:57:24 +09:00

47 lines
1.2 KiB
C#

using System.Collections;
using System.IO;
using Org.BouncyCastle.Utilities;
namespace Org.BouncyCastle.Bcpg;
public class UserAttributePacket : ContainedPacket
{
private readonly UserAttributeSubpacket[] subpackets;
public UserAttributePacket(BcpgInputStream bcpgIn)
{
UserAttributeSubpacketsParser userAttributeSubpacketsParser = new UserAttributeSubpacketsParser(bcpgIn);
IList list = Platform.CreateArrayList();
UserAttributeSubpacket value;
while ((value = userAttributeSubpacketsParser.ReadPacket()) != null)
{
list.Add(value);
}
subpackets = new UserAttributeSubpacket[list.Count];
for (int i = 0; i != subpackets.Length; i++)
{
subpackets[i] = (UserAttributeSubpacket)list[i];
}
}
public UserAttributePacket(UserAttributeSubpacket[] subpackets)
{
this.subpackets = subpackets;
}
public UserAttributeSubpacket[] GetSubpackets()
{
return subpackets;
}
public override void Encode(BcpgOutputStream bcpgOut)
{
MemoryStream memoryStream = new MemoryStream();
for (int i = 0; i != subpackets.Length; i++)
{
subpackets[i].Encode(memoryStream);
}
bcpgOut.WritePacket(PacketTag.UserAttribute, memoryStream.ToArray(), oldFormat: false);
}
}