<PackageReference Include="BouncyCastle.Cryptography" Version="2.4.0" />

PrimitiveDerEncoding

using System; namespace Org.BouncyCastle.Asn1 { internal class PrimitiveDerEncoding : DerEncoding { internal readonly byte[] m_contentsOctets; internal PrimitiveDerEncoding(int tagClass, int tagNo, byte[] contentsOctets) : base(tagClass, tagNo) { m_contentsOctets = contentsOctets; } protected internal override int CompareLengthAndContents(DerEncoding other) { PrimitiveDerEncodingSuffixed primitiveDerEncodingSuffixed = other as PrimitiveDerEncodingSuffixed; if (primitiveDerEncodingSuffixed != null) return -primitiveDerEncodingSuffixed.CompareLengthAndContents(this); PrimitiveDerEncoding primitiveDerEncoding = other as PrimitiveDerEncoding; if (primitiveDerEncoding == null) throw new InvalidOperationException(); int num = m_contentsOctets.Length; if (num != primitiveDerEncoding.m_contentsOctets.Length) return num - primitiveDerEncoding.m_contentsOctets.Length; return m_contentsOctets.AsSpan(0, num).SequenceCompareTo(primitiveDerEncoding.m_contentsOctets.AsSpan(0, num)); } public override void Encode(Asn1OutputStream asn1Out) { asn1Out.WriteIdentifier(m_tagClass, m_tagNo); asn1Out.WriteDL(m_contentsOctets.Length); asn1Out.Write(m_contentsOctets, 0, m_contentsOctets.Length); } public override int GetLength() { return Asn1OutputStream.GetLengthOfEncodingDL(m_tagNo, m_contentsOctets.Length); } } }