private static void WriteLength( Stream outStr, int length) { if (length > 127) { int size = 1; int val = length; while ((val >>= 8) != 0) { size++; } outStr.WriteByte((byte)(size | 0x80)); for (int i = (size - 1) * 8; i >= 0; i -= 8) { outStr.WriteByte((byte)(length >> i)); } } else { outStr.WriteByte((byte)length); } }
internal static void WriteDerEncoded(Stream outStream, int tag, byte[] bytes) { outStream.WriteByte((byte)tag); DerGenerator.WriteLength(outStream, bytes.Length); outStream.Write(bytes, 0, bytes.Length); }