AsnDecoder.ReadNamedBitListValue メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
オーバーロード
ReadNamedBitListValue(ReadOnlySpan<Byte>, AsnEncodingRules, Type, Int32, Nullable<Asn1Tag>) |
指定したエンコード規則に基づいて、指定したタグを持つ |
ReadNamedBitListValue<TFlagsEnum>(ReadOnlySpan<Byte>, AsnEncodingRules, Int32, Nullable<Asn1Tag>) |
指定したエンコード規則に基づいて、指定したタグを持つ |
ReadNamedBitListValue(ReadOnlySpan<Byte>, AsnEncodingRules, Type, Int32, Nullable<Asn1Tag>)
指定したエンコード規則に基づいて、指定したタグを持つ source
から NamedBitList を読み取り、flagsEnumType
によって指定された [FlagsAttribute] 列挙型に変換します。
public static Enum ReadNamedBitListValue (ReadOnlySpan<byte> source, System.Formats.Asn1.AsnEncodingRules ruleSet, Type flagsEnumType, out int bytesConsumed, System.Formats.Asn1.Asn1Tag? expectedTag = default);
static member ReadNamedBitListValue : ReadOnlySpan<byte> * System.Formats.Asn1.AsnEncodingRules * Type * int * Nullable<System.Formats.Asn1.Asn1Tag> -> Enum
Public Shared Function ReadNamedBitListValue (source As ReadOnlySpan(Of Byte), ruleSet As AsnEncodingRules, flagsEnumType As Type, ByRef bytesConsumed As Integer, Optional expectedTag As Nullable(Of Asn1Tag) = Nothing) As Enum
パラメーター
- source
- ReadOnlySpan<Byte>
エンコードされたデータを含むバッファー。
- ruleSet
- AsnEncodingRules
データを解釈するときに使用するエンコード制約。
- flagsEnumType
- Type
ターゲットの型を表す型オブジェクト。
- bytesConsumed
- Int32
このメソッドが返されるときに、エンコードされた値の合計バイト数。 このパラメーターは初期化前として処理されます。
戻り値
flagsEnumType
に変換された NamedBitList 値。
例外
ruleSet
が定義されていません。
次の値に正しいタグがありません。
または
長さのエンコードは、現在のエンコード規則では無効です。
または
コンテンツは、現在のエンコード規則では無効です。
または
エンコードされた値が大きすぎて値に flagsEnumType
収まりません。
flagsEnumType
は列挙型ではありません。
または
flagsEnumType
が で宣言されていません FlagsAttribute
または
expectedTag
。TagClassは UniversalですがexpectedTag
TagValue、 が メソッドに対して正しくありません。
flagsEnumType
は null
です
適用対象
ReadNamedBitListValue<TFlagsEnum>(ReadOnlySpan<Byte>, AsnEncodingRules, Int32, Nullable<Asn1Tag>)
指定したエンコード規則に基づいて、指定したタグを持つ source
から NamedBitList を読み取り、TFlagsEnum
によって指定された [FlagsAttribute] 列挙型に変換します。
public static TFlagsEnum ReadNamedBitListValue<TFlagsEnum> (ReadOnlySpan<byte> source, System.Formats.Asn1.AsnEncodingRules ruleSet, out int bytesConsumed, System.Formats.Asn1.Asn1Tag? expectedTag = default) where TFlagsEnum : Enum;
static member ReadNamedBitListValue : ReadOnlySpan<byte> * System.Formats.Asn1.AsnEncodingRules * int * Nullable<System.Formats.Asn1.Asn1Tag> -> 'FlagsEnum (requires 'FlagsEnum :> Enum)
Public Shared Function ReadNamedBitListValue(Of TFlagsEnum As Enum) (source As ReadOnlySpan(Of Byte), ruleSet As AsnEncodingRules, ByRef bytesConsumed As Integer, Optional expectedTag As Nullable(Of Asn1Tag) = Nothing) As TFlagsEnum
型パラメーター
- TFlagsEnum
変換先の列挙型。
パラメーター
- source
- ReadOnlySpan<Byte>
エンコードされたデータを含むバッファー。
- ruleSet
- AsnEncodingRules
データを解釈するときに使用するエンコード制約。
- bytesConsumed
- Int32
このメソッドが返されるときに、エンコードされた値の合計バイト数。 このパラメーターは初期化前として処理されます。
戻り値
TFlagsEnum
に変換された NamedBitList 値。
例外
ruleSet
が定義されていません。
次の値に正しいタグがありません。
または
長さのエンコードは、現在のエンコード規則では無効です。
または
コンテンツは、現在のエンコード規則では無効です。
または
エンコードされた値が大きすぎて値に TFlagsEnum
収まりません。
TFlagsEnum
は列挙型ではありません。
または
TFlagsEnum
が で宣言されていません FlagsAttribute
または
expectedTag
。TagClassは UniversalですがexpectedTag
TagValue、 が メソッドに対して正しくありません。
注釈
このメソッドによって実行されるビットアラインメントは、値の最初のバイトの最上位ビットを の最下位ビット TFlagsEnum
として解釈し、ビットは最初のバイトの最下位ビットまで値が増加し、2 番目のバイトの最上位ビットに進むなどです。 このスキームでは、次の ASN.1 型宣言と C# 列挙を一緒に使用できます。
KeyUsage ::= BIT STRING {
digitalSignature (0),
nonRepudiation (1),
keyEncipherment (2),
dataEncipherment (3),
keyAgreement (4),
keyCertSign (5),
cRLSign (6),
encipherOnly (7),
decipherOnly (8) }
[Flags]
enum KeyUsage
{
None = 0, DigitalSignature = 1 << (0),
NonRepudiation = 1 << (1),
KeyEncipherment = 1 << (2),
DataEncipherment = 1 << (3),
KeyAgreement = 1 << (4),
KeyCertSign = 1 << (5),
CrlSign = 1 << (6),
EncipherOnly = 1 << (7),
DecipherOnly = 1 << (8),
}
この例では RFC 3280 (4.2.1.3) の KeyUsage NamedBitList を使用していますが、列挙型の例では とは X509KeyUsageFlags異なる値を使用しています。
適用対象
.NET