示例#1
0
 public void T15_Sequence_Nested_BER_Stream_IO()
 {
     using (var stream = new MemoryStream()) {
         var x      = new X690.Sequence();
         var s      = new X690.Sequence();
         var leaves = new X690.Node[] {
             new X690.Null(),
             new X690.Boolean(false),
             new X690.Boolean(true),
             new X690.Integer(-1),
             new X690.Integer(0),
             new X690.Integer(1),
             new X690.Text("WOOF!")
             {
                 IsDefiniteLength = false
             },
             new X690.Text("GRR.."),
             new X690.Text("WOOF!")
             {
                 IsDefiniteLength = false
             },
             new X690.Sequence()
         };
         foreach (var leaf in leaves)
         {
             s.Nodes.Add(leaf);
         }
         x.Nodes.Add(s);
         x.Write(stream);
         stream.Position = 0;
         TT.Peek(x, stream);
         var y = X690.Read(stream);
         Assert.Equal(x, y);
     }
 }
示例#2
0
    /// <summary>
    /// Outputs the node as text tree and it's binary representation.
    /// </summary>
    /// <param name="node">The node under test.</param>
    /// <param name="stream">Stream containing encoded data.</param>
    public static void Peek(X690.Node node, MemoryStream stream)
    {
        var peek = stream.ToArray();

        Console.WriteLine(node.StringTree);
        Console.WriteLine(peek.Length.ToString("x2") + ": " + String.Join(" ", peek.Select(b => b.ToString("x2"))));
    }
示例#3
0
    public void T16_Sequence_Nested_BER_Buffered_IO()
    {
        var buffer = new byte[64];
        var x      = new X690.Sequence();
        var s      = new X690.Sequence();
        var leaves = new X690.Node[] {
            new X690.Null(),
            new X690.Boolean(false),
            new X690.Boolean(true),
            new X690.Integer(-1),
            new X690.Integer(0),
            new X690.Integer(1),
            new X690.Text("WOOF!")
            {
                IsDefiniteLength = false
            },
            new X690.Text("GRR.."),
            new X690.Text("WOOF!")
            {
                IsDefiniteLength = false
            },
            new X690.Sequence()
        };

        foreach (var leaf in leaves)
        {
            s.Nodes.Add(leaf);
        }
        x.Nodes.Add(s);
        var length = x.Write(buffer, 0);

        TT.Peek(x, buffer, length);
        var y = X690.Read(buffer, 0, length);

        Assert.Equal(x, y);
    }
示例#4
0
 /// <summary>
 /// Outputs the node as text tree and it's binary representation.
 /// </summary>
 /// <param name="node">The node under test.</param>
 /// <param name="buffer">Buffer containing encoded data.</param>
 /// <param name="length">Binary data length.</param>
 public static void Peek(X690.Node node, byte[] buffer, int length)
 {
     Console.WriteLine(node.StringTree);
     Console.WriteLine(length.ToString("x2") + ": " + String.Join(" ", buffer.Take(length).Select(b => b.ToString("x2"))));
 }