Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ ReadNamedBitListValue()

static Enum System.Formats.Asn1.AsnDecoder.ReadNamedBitListValue ( ReadOnlySpan< byte > source,
AsnEncodingRules ruleSet,
Type flagsEnumType,
out int bytesConsumed,
Asn1Tag? expectedTag = null )
inlinestatic

Definition at line 1078 of file AsnDecoder.cs.

1079 {
1080 if (flagsEnumType == null)
1081 {
1082 throw new ArgumentNullException("flagsEnumType");
1083 }
1084 Type enumUnderlyingType = flagsEnumType.GetEnumUnderlyingType();
1085 if (!flagsEnumType.IsDefined(typeof(FlagsAttribute), inherit: false))
1086 {
1088 }
1092 {
1093 throw new AsnContentException(System.SR.Format(System.SR.ContentException_NamedBitListValueTooBig, flagsEnumType.Name));
1094 }
1095 Enum result;
1096 if (bytesWritten == 0)
1097 {
1098 result = (Enum)Enum.ToObject(flagsEnumType, 0);
1100 return result;
1101 }
1103 if (ruleSet == AsnEncodingRules.DER || ruleSet == AsnEncodingRules.CER)
1104 {
1105 byte b = valueSpan[bytesWritten - 1];
1106 byte b2 = (byte)(1 << unusedBitCount);
1107 if ((b & b2) == 0)
1108 {
1109 throw new AsnContentException(System.SR.ContentException_InvalidUnderCerOrDer_TryBer);
1110 }
1111 }
1114 return result;
1115 }
static long InterpretNamedBitListReversed(ReadOnlySpan< byte > valueSpan)
static bool TryReadBitString(ReadOnlySpan< byte > source, Span< byte > destination, AsnEncodingRules ruleSet, out int unusedBitCount, out int bytesConsumed, out int bytesWritten, Asn1Tag? expectedTag=null)
static int SizeOf(object structure)
Definition Marshal.cs:697
static string ContentException_InvalidUnderCerOrDer_TryBer
Definition SR.cs:56
static string ContentException_NamedBitListValueTooBig
Definition SR.cs:68
static string Format(string resourceFormat, object p1)
Definition SR.cs:118
static string Argument_NamedBitListRequiresFlagsEnum
Definition SR.cs:22
Definition SR.cs:7

References System.SR.Argument_NamedBitListRequiresFlagsEnum, System.SR.ContentException_InvalidUnderCerOrDer_TryBer, System.SR.ContentException_NamedBitListValueTooBig, System.destination, System.Enum, System.SR.Format(), System.Formats.Asn1.AsnDecoder.InterpretNamedBitListReversed(), System.Runtime.InteropServices.Marshal.SizeOf(), System.source, System.Enum.ToObject(), and System.Formats.Asn1.AsnDecoder.TryReadBitString().

Referenced by System.Formats.Asn1.AsnReader.ReadNamedBitListValue(), System.Formats.Asn1.AsnReader.ReadNamedBitListValue< TFlagsEnum >(), and System.Formats.Asn1.AsnDecoder.ReadNamedBitListValue< TFlagsEnum >().