public static int DERLengthEncode(Stream xdata, ulong length) { int num1 = 0; int num2; if (length <= (ulong)sbyte.MaxValue) { xdata.WriteByte((byte)length); num2 = num1 + 1; } else { xdata.WriteByte((byte)(Asn1Util.BytePrecision(length) | 128)); num2 = num1 + 1; for (int index = Asn1Util.BytePrecision(length); index > 0; --index) { xdata.WriteByte((byte)(length >> (index - 1) * 8)); ++num2; } } return(num2); }