示例#1
0
        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);
        }