<PackageReference Include="BouncyCastle.Cryptography" Version="2.6.1" />

UserAttributeSubpacketsParser

using Org.BouncyCastle.Bcpg.Attr; using System.IO; namespace Org.BouncyCastle.Bcpg { public class UserAttributeSubpacketsParser { private readonly Stream m_input; public UserAttributeSubpacketsParser(Stream input) { m_input = input; } public virtual UserAttributeSubpacket ReadPacket() { StreamUtilities.StreamFlags flags; int num = StreamUtilities.ReadBodyLen(m_input, out flags); if (num < 0) return null; if (flags.HasFlag(StreamUtilities.StreamFlags.Partial)) throw new IOException("unrecognised length reading user attribute sub packet"); bool forceLongLength = flags.HasFlag(StreamUtilities.StreamFlags.LongLength); byte num2 = StreamUtilities.RequireByte(m_input); byte[] array = new byte[num - 1]; StreamUtilities.RequireBytes(m_input, array); UserAttributeSubpacketTag userAttributeSubpacketTag = (UserAttributeSubpacketTag)num2; if (userAttributeSubpacketTag == UserAttributeSubpacketTag.ImageAttribute) return new ImageAttrib(forceLongLength, array); return new UserAttributeSubpacket(userAttributeSubpacketTag, forceLongLength, array); } } }