1 /* Transport Security Layer (TLS)
2 * Copyright (c) 2003-2004 Carlos Guzman Alvarez
4 * Permission is hereby granted, free of charge, to any person
5 * obtaining a copy of this software and associated documentation
6 * files (the "Software"), to deal in the Software without restriction,
7 * including without limitation the rights to use, copy, modify, merge,
8 * publish, distribute, sublicense, and/or sell copies of the Software,
9 * and to permit persons to whom the Software is furnished to do so,
10 * subject to the following conditions:
12 * The above copyright notice and this permission notice shall be included
13 * in all copies or substantial portions of the Software.
15 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
16 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
17 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
18 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
19 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
20 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
22 * DEALINGS IN THE SOFTWARE.
26 using System.Diagnostics;
28 namespace Mono.Security.Protocol.Tls
30 internal class DebugHelper
32 private static bool isInitialized;
34 [Conditional("DEBUG")]
35 public static void Initialize()
39 Debug.Listeners.Add(new TextWriterTraceListener(Console.Out));
40 // Debug.Listeners.Add(new TextWriterTraceListener(@"c:\ssl.log"));
41 Debug.AutoFlush = true;
48 [Conditional("DEBUG")]
49 public static void WriteLine(string format, params object[] args)
52 Debug.WriteLine(String.Format(format, args));
55 [Conditional("DEBUG")]
56 public static void WriteLine(string message)
59 Debug.WriteLine(message);
62 [Conditional("DEBUG")]
63 public static void WriteLine(string message, byte[] buffer)
66 DebugHelper.WriteLine(String.Format("{0} ({1} bytes))", message, buffer.Length));
67 DebugHelper.WriteBuffer(buffer);
70 [Conditional("DEBUG")]
71 public static void WriteBuffer(byte[] buffer)
74 DebugHelper.WriteBuffer(buffer, 0, buffer.Length);
77 [Conditional("DEBUG")]
78 public static void WriteBuffer(byte[] buffer, int index, int length)
81 for (int i = index; i < length; i += 16)
83 int count = (length - i) >= 16 ? 16 : (length - i);
84 for (int j = 0; j < count; j++)
86 Debug.Write(buffer[i + j].ToString("x2") + " ");