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

◆ DecodeCore() [2/2]

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

Definition at line 47 of file CurveAsn.cs.

48 {
49 decoded = default(System.Security.Cryptography.Asn1.CurveAsn);
50 System.Formats.Asn1.AsnValueReader asnValueReader = reader.ReadSequence(expectedTag);
51 ReadOnlySpan<byte> span = rebind.Span;
52 int elementOffset;
53 if (asnValueReader.TryReadPrimitiveOctetString(out var value))
54 {
55 decoded.A = (span.Overlaps(value, out elementOffset) ? rebind.Slice(elementOffset, value.Length) : ((ReadOnlyMemory<byte>)value.ToArray()));
56 }
57 else
58 {
59 decoded.A = asnValueReader.ReadOctetString();
60 }
61 if (asnValueReader.TryReadPrimitiveOctetString(out value))
62 {
63 decoded.B = (span.Overlaps(value, out elementOffset) ? rebind.Slice(elementOffset, value.Length) : ((ReadOnlyMemory<byte>)value.ToArray()));
64 }
65 else
66 {
67 decoded.B = asnValueReader.ReadOctetString();
68 }
69 if (asnValueReader.HasData && asnValueReader.PeekTag().HasSameClassAndValue(Asn1Tag.PrimitiveBitString))
70 {
71 if (asnValueReader.TryReadPrimitiveBitString(out var unusedBitCount, out value))
72 {
73 decoded.Seed = (span.Overlaps(value, out elementOffset) ? rebind.Slice(elementOffset, value.Length) : ((ReadOnlyMemory<byte>)value.ToArray()));
74 }
75 else
76 {
77 decoded.Seed = asnValueReader.ReadBitString(out unusedBitCount);
78 }
79 }
80 asnValueReader.ThrowIfNotEmpty();
81 }
static readonly Asn1Tag PrimitiveBitString
Definition Asn1Tag.cs:15
bool HasSameClassAndValue(Asn1Tag other)
Definition Asn1Tag.cs:251
bool TryReadPrimitiveOctetString(out ReadOnlySpan< byte > value, Asn1Tag? expectedTag=null)
byte[] ReadOctetString(Asn1Tag? expectedTag=null)
byte[] ReadBitString(out int unusedBitCount, Asn1Tag? expectedTag=null)
bool TryReadPrimitiveBitString(out int unusedBitCount, out ReadOnlySpan< byte > value, Asn1Tag? expectedTag=null)
AsnValueReader ReadSequence(Asn1Tag? expectedTag=null)
unsafe ReadOnlySpan< T > Span
ReadOnlyMemory< T > Slice(int start)

References System.Formats.Asn1.AsnValueReader.HasData, System.Formats.Asn1.Asn1Tag.HasSameClassAndValue(), System.Formats.Asn1.AsnValueReader.PeekTag(), System.Formats.Asn1.Asn1Tag.PrimitiveBitString, System.Formats.Asn1.AsnValueReader.ReadBitString(), 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.TryReadPrimitiveBitString(), System.Formats.Asn1.AsnValueReader.TryReadPrimitiveOctetString(), and System.value.