Org.BouncyCastle.Asn1.DerGenerator.WriteLength C# (CSharp) Méthode

WriteLength() private static méthode

private static WriteLength ( Stream outStr, int length ) : void
outStr Stream
length int
Résultat void
		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);
            }
        }

Usage Example

 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);
 }