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

BerBitStringParser

A parser for indefinite-length BIT STRINGs.
using Org.BouncyCastle.Utilities.IO; using System.IO; namespace Org.BouncyCastle.Asn1 { internal class BerBitStringParser : Asn1BitStringParser, IAsn1Convertible { private readonly Asn1StreamParser m_parser; private ConstructedBitStream m_bitStream; public int PadBits => m_bitStream.PadBits; internal BerBitStringParser(Asn1StreamParser parser) { m_parser = parser; } public Stream GetOctetStream() { return m_bitStream = new ConstructedBitStream(m_parser, true); } public Stream GetBitStream() { return m_bitStream = new ConstructedBitStream(m_parser, false); } public Asn1Object ToAsn1Object() { try { return Parse(m_parser); } catch (IOException ex) { throw new Asn1ParsingException("IOException converting stream to byte array: " + ex.Message, ex); } } internal static BerBitString Parse(Asn1StreamParser sp) { ConstructedBitStream constructedBitStream = new ConstructedBitStream(sp, false); byte[] data = Streams.ReadAll(constructedBitStream); int padBits = constructedBitStream.PadBits; return new BerBitString(data, padBits); } } }