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

◆ DecodeCore()

static void System.Security.Cryptography.Asn1.X509ExtensionAsn.DecodeCore ( ref System::Formats::Asn1::AsnValueReader reader,
Asn1Tag expectedTag,
ReadOnlyMemory< byte > rebind,
out X509ExtensionAsn decoded )
inlinestaticprivate

Definition at line 59 of file X509ExtensionAsn.cs.

60 {
61 decoded = default(X509ExtensionAsn);
62 System.Formats.Asn1.AsnValueReader asnValueReader = reader.ReadSequence(expectedTag);
63 ReadOnlySpan<byte> span = rebind.Span;
64 decoded.ExtnId = asnValueReader.ReadObjectIdentifier();
65 if (asnValueReader.HasData && asnValueReader.PeekTag().HasSameClassAndValue(Asn1Tag.Boolean))
66 {
67 decoded.Critical = asnValueReader.ReadBoolean();
68 }
69 else
70 {
72 }
73 if (asnValueReader.TryReadPrimitiveOctetString(out var value))
74 {
75 decoded.ExtnValue = (span.Overlaps(value, out var elementOffset) ? rebind.Slice(elementOffset, value.Length) : ((ReadOnlyMemory<byte>)value.ToArray()));
76 }
77 else
78 {
79 decoded.ExtnValue = asnValueReader.ReadOctetString();
80 }
81 asnValueReader.ThrowIfNotEmpty();
82 }
static readonly Asn1Tag Boolean
Definition Asn1Tag.cs:11
bool HasSameClassAndValue(Asn1Tag other)
Definition Asn1Tag.cs:251
bool ReadBoolean(Asn1Tag? expectedTag=null)
string ReadObjectIdentifier(Asn1Tag? expectedTag=null)
bool TryReadPrimitiveOctetString(out ReadOnlySpan< byte > value, Asn1Tag? expectedTag=null)
byte[] ReadOctetString(Asn1Tag? expectedTag=null)
AsnValueReader ReadSequence(Asn1Tag? expectedTag=null)
unsafe ReadOnlySpan< T > Span
ReadOnlyMemory< T > Slice(int start)

References System.Formats.Asn1.Asn1Tag.Boolean, System.Security.Cryptography.Asn1.X509ExtensionAsn.DefaultCritical, System.Formats.Asn1.AsnValueReader.HasData, System.Formats.Asn1.Asn1Tag.HasSameClassAndValue(), System.Formats.Asn1.AsnValueReader.PeekTag(), System.Formats.Asn1.AsnValueReader.ReadBoolean(), System.Formats.Asn1.AsnValueReader.ReadObjectIdentifier(), System.Formats.Asn1.AsnValueReader.ReadOctetString(), System.Formats.Asn1.AsnValueReader.ReadSequence(), System.ReadOnlyMemory< T >.Slice(), System.ReadOnlyMemory< T >.Span, System.Formats.Asn1.AsnValueReader.ThrowIfNotEmpty(), System.Formats.Asn1.AsnValueReader.TryReadPrimitiveOctetString(), and System.value.

Referenced by System.Security.Cryptography.Asn1.X509ExtensionAsn.Decode().