Edit

Share via


AsnDecoder.ReadBitString Method

Definition

Reads a Bit String value from source with a specified tag under the specified encoding rules, returning the contents in a new array.

public static byte[] ReadBitString (ReadOnlySpan<byte> source, System.Formats.Asn1.AsnEncodingRules ruleSet, out int unusedBitCount, out int bytesConsumed, System.Formats.Asn1.Asn1Tag? expectedTag = default);
static member ReadBitString : ReadOnlySpan<byte> * System.Formats.Asn1.AsnEncodingRules * int * int * Nullable<System.Formats.Asn1.Asn1Tag> -> byte[]
Public Shared Function ReadBitString (source As ReadOnlySpan(Of Byte), ruleSet As AsnEncodingRules, ByRef unusedBitCount As Integer, ByRef bytesConsumed As Integer, Optional expectedTag As Nullable(Of Asn1Tag) = Nothing) As Byte()

Parameters

source
ReadOnlySpan<Byte>

The buffer containing encoded data.

ruleSet
AsnEncodingRules

The encoding constraints to use when interpreting the data.

unusedBitCount
Int32

On success, receives the number of bits in the last byte which were reported as "unused" by the writer. This parameter is treated as uninitialized.

bytesConsumed
Int32

When this method returns, the total number of bytes for the encoded value. This parameter is treated as uninitialized.

expectedTag
Nullable<Asn1Tag>

The tag to check for before reading, or null for the default tag (Universal 3).

Returns

Byte[]

An array containing the contents of the Bit String value.

Exceptions

ruleSet is not defined.

The next value does not have the correct tag.

-or-

The length encoding is not valid under the current encoding rules.

-or-

The contents are not valid under the current encoding rules.

expectedTag.TagClass is Universal, but expectedTag.TagValue is not correct for the method.

Remarks

The least significant bits in the last byte which are reported as "unused" by the unusedBitCount value will be copied into the return value as unset bits, irrespective of their value in the encoded representation.

Applies to