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

◆ DecodeCore() [2/2]

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

Definition at line 69 of file SpecifiedECDomain.cs.

70 {
72 System.Formats.Asn1.AsnValueReader reader2 = reader.ReadSequence(expectedTag);
73 ReadOnlySpan<byte> span = rebind.Span;
74 if (!reader2.TryReadInt32(out decoded.Version))
75 {
76 reader2.ThrowIfNotEmpty();
77 }
78 System.Security.Cryptography.Asn1.FieldID.Decode(ref reader2, rebind, out decoded.FieldID);
79 System.Security.Cryptography.Asn1.CurveAsn.Decode(ref reader2, rebind, out decoded.Curve);
80 int elementOffset;
81 if (reader2.TryReadPrimitiveOctetString(out var value))
82 {
83 decoded.Base = (span.Overlaps(value, out elementOffset) ? rebind.Slice(elementOffset, value.Length) : ((ReadOnlyMemory<byte>)value.ToArray()));
84 }
85 else
86 {
87 decoded.Base = reader2.ReadOctetString();
88 }
89 value = reader2.ReadIntegerBytes();
90 decoded.Order = (span.Overlaps(value, out elementOffset) ? rebind.Slice(elementOffset, value.Length) : ((ReadOnlyMemory<byte>)value.ToArray()));
91 if (reader2.HasData && reader2.PeekTag().HasSameClassAndValue(Asn1Tag.Integer))
92 {
93 value = reader2.ReadIntegerBytes();
94 decoded.Cofactor = (span.Overlaps(value, out elementOffset) ? rebind.Slice(elementOffset, value.Length) : ((ReadOnlyMemory<byte>)value.ToArray()));
95 }
96 if (reader2.HasData && reader2.PeekTag().HasSameClassAndValue(Asn1Tag.ObjectIdentifier))
97 {
98 decoded.Hash = reader2.ReadObjectIdentifier();
99 }
100 reader2.ThrowIfNotEmpty();
101 }
static readonly Asn1Tag Integer
Definition Asn1Tag.cs:13
static readonly Asn1Tag ObjectIdentifier
Definition Asn1Tag.cs:25
bool TryReadInt32(out int value, Asn1Tag? expectedTag=null)
AsnValueReader ReadSequence(Asn1Tag? expectedTag=null)
unsafe ReadOnlySpan< T > Span
ReadOnlyMemory< T > Slice(int start)
static void Decode(ref AsnValueReader reader, ReadOnlyMemory< byte > rebind, out CurveAsn decoded)
Definition CurveAsn.cs:30
static void Decode(ref AsnValueReader reader, ReadOnlyMemory< byte > rebind, out FieldID decoded)
Definition FieldID.cs:38

References System.Security.Cryptography.Asn1.CurveAsn.Decode(), System.Security.Cryptography.Asn1.FieldID.Decode(), System.Formats.Asn1.AsnValueReader.HasData, System.Formats.Asn1.Asn1Tag.HasSameClassAndValue(), System.Formats.Asn1.Asn1Tag.Integer, System.Formats.Asn1.Asn1Tag.ObjectIdentifier, System.Formats.Asn1.AsnValueReader.PeekTag(), System.Formats.Asn1.AsnValueReader.ReadIntegerBytes(), 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.TryReadInt32(), System.Formats.Asn1.AsnValueReader.TryReadPrimitiveOctetString(), and System.value.