Rework LuCI build system
[project/luci.git] / libs / nixio / axTLS / samples / vbnet / axssl.vb
diff --git a/libs/nixio/axTLS/samples/vbnet/axssl.vb b/libs/nixio/axTLS/samples/vbnet/axssl.vb
deleted file mode 100644 (file)
index 1b423c8..0000000
+++ /dev/null
@@ -1,702 +0,0 @@
-'
-' Copyright (c) 2007, Cameron Rich
-'
-' All rights reserved.
-'
-' Redistribution and use in source and binary forms, with or without
-' modification, are permitted provided that the following conditions are met:
-'
-' * Redistributions of source code must retain the above copyright notice,
-'   this list of conditions and the following disclaimer.
-' * Redistributions in binary form must reproduce the above copyright
-'   notice, this list of conditions and the following disclaimer in the
-'   documentation and/or other materials provided with the distribution.
-' * Neither the name of the axTLS project nor the names of its
-'   contributors may be used to endorse or promote products derived
-'   from this software without specific prior written permission.
-'
-' THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-' "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-' LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 
-' A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
-' CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-' SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
-' TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-' DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY 
-' OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-' NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
-' THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-'
-
-'
-' Demonstrate the use of the axTLS library in VB.NET with a set of 
-' command-line parameters similar to openssl. In fact, openssl clients 
-' should be able to communicate with axTLS servers and visa-versa.
-'
-' This code has various bits enabled depending on the configuration. To enable
-' the most interesting version, compile with the 'full mode' enabled.
-'
-' To see what options you have, run the following:
-' > axssl.vbnet.exe s_server -?
-' > axssl.vbnet.exe s_client -?
-'
-' The axtls shared library must be in the same directory or be found 
-' by the OS.
-'
-
-Imports System
-Imports System.Net
-Imports System.Net.Sockets
-Imports Microsoft.VisualBasic
-Imports axTLSvb
-
-Public Class axssl
-    ' 
-    ' do_server()
-    '
-    Public Sub do_server(ByVal build_mode As Integer, _
-                                        ByVal args() As String)
-        Dim i As Integer = 1
-        Dim port As Integer = 4433
-        Dim options As Integer = axtls.SSL_DISPLAY_CERTS
-        Dim quiet As Boolean = False
-        Dim password As String = Nothing
-        Dim private_key_file As String = Nothing
-
-        ' organise the cert/ca_cert lists 
-        Dim cert_size As Integer = SSLUtil.MaxCerts()
-        Dim ca_cert_size As Integer = SSLUtil.MaxCACerts()
-        Dim cert(cert_size) As String
-        Dim ca_cert(ca_cert_size) As String
-        Dim cert_index As Integer = 0
-        Dim ca_cert_index As Integer = 0
-
-        While i < args.Length
-            If args(i) = "-accept" Then
-                If i >= args.Length-1
-                    print_server_options(build_mode, args(i))
-                End If
-
-                i += 1
-                port = Int32.Parse(args(i))
-            ElseIf args(i) = "-quiet"
-                quiet = True
-                options = options And Not axtls.SSL_DISPLAY_CERTS
-            ElseIf build_mode >= axtls.SSL_BUILD_SERVER_ONLY
-                If args(i) = "-cert"
-                    If i >= args.Length-1 Or cert_index >= cert_size
-                        print_server_options(build_mode, args(i))
-                    End If
-
-                    i += 1
-                    cert(cert_index) = args(i)
-                    cert_index += 1
-                ElseIf args(i) = "-key"
-                    If i >= args.Length-1
-                        print_server_options(build_mode, args(i))
-                    End If
-
-                    i += 1
-                    private_key_file = args(i)
-                    options = options Or axtls.SSL_NO_DEFAULT_KEY
-                ElseIf args(i) = "-pass"
-                    If i >= args.Length-1
-                        print_server_options(build_mode, args(i))
-                    End If
-
-                    i += 1
-                    password = args(i)
-                ElseIf build_mode >= axtls.SSL_BUILD_ENABLE_VERIFICATION
-                    If args(i) = "-verify" Then
-                        options = options Or axtls.SSL_CLIENT_AUTHENTICATION
-                    ElseIf args(i) = "-CAfile"
-                        If i >= args.Length-1 Or _
-                                    ca_cert_index >= ca_cert_size Then
-                            print_server_options(build_mode, args(i))
-                        End If
-
-                        i += 1
-                        ca_cert(ca_cert_index) = args(i)
-                        ca_cert_index += 1
-                    ElseIf build_mode = axtls.SSL_BUILD_FULL_MODE
-                        If args(i) = "-debug" Then
-                            options = options Or axtls.SSL_DISPLAY_BYTES
-                        ElseIf args(i) = "-state"
-                            options = options Or axtls.SSL_DISPLAY_STATES
-                        ElseIf args(i) = "-show-rsa"
-                            options = options Or axtls.SSL_DISPLAY_RSA
-                        Else
-                            print_server_options(build_mode, args(i))
-                        End If
-                    Else
-                        print_server_options(build_mode, args(i))
-                    End If
-                Else
-                    print_server_options(build_mode, args(i))
-                End If
-            End If
-
-            i += 1
-        End While
-
-        ' Create socket for incoming connections
-        Dim ep As IPEndPoint = New IPEndPoint(IPAddress.Any, port)
-        Dim server_sock As TcpListener = New TcpListener(ep)
-        server_sock.Start()      
-
-        '*********************************************************************
-        ' This is where the interesting stuff happens. Up until now we've
-        ' just been setting up sockets etc. Now we do the SSL handshake.
-        '*********************************************************************/
-        Dim ssl_ctx As SSLServer = New SSLServer(options, _
-                axtls.SSL_DEFAULT_SVR_SESS)
-
-        If ssl_ctx Is Nothing Then
-            Console.Error.WriteLine("Error: Server context is invalid")
-            Environment.Exit(1)
-        End If
-
-        If private_key_file <> Nothing Then
-            Dim obj_type As Integer = axtls.SSL_OBJ_RSA_KEY
-
-            If private_key_file.EndsWith(".p8") Then
-                obj_type = axtls.SSL_OBJ_PKCS8
-            Else If (private_key_file.EndsWith(".p12"))
-                obj_type = axtls.SSL_OBJ_PKCS12
-            End If
-
-            If ssl_ctx.ObjLoad(obj_type, private_key_file, _
-                                            password) <> axtls.SSL_OK Then
-                Console.Error.WriteLine("Error: Private key '" & _
-                        private_key_file & "' is undefined.")
-                Environment.Exit(1)
-            End If
-        End If
-
-        For i = 0 To cert_index-1
-            If ssl_ctx.ObjLoad(axtls.SSL_OBJ_X509_CERT, _
-                            cert(i), Nothing) <> axtls.SSL_OK Then
-                Console.WriteLine("Certificate '" & cert(i) & _
-                        "' is undefined.")
-                Environment.Exit(1)
-            End If
-        Next
-
-        For i = 0 To ca_cert_index-1
-            If ssl_ctx.ObjLoad(axtls.SSL_OBJ_X509_CACERT, _
-                            ca_cert(i), Nothing) <> axtls.SSL_OK Then
-                Console.WriteLine("Certificate '" & ca_cert(i) & _
-                        "' is undefined.")
-                Environment.Exit(1)
-            End If
-        Next
-
-        Dim buf As Byte() = Nothing
-        Dim res As Integer
-        Dim ssl As SSL
-
-        While 1
-            If Not quiet Then
-                Console.WriteLine("ACCEPT")
-            End If
-
-            Dim client_sock As Socket = server_sock.AcceptSocket()
-
-            ssl = ssl_ctx.Connect(client_sock)
-
-            ' do the actual SSL handshake 
-            While 1
-                res = ssl_ctx.Read(ssl, buf)
-                If  res <> axtls.SSL_OK Then
-                    Exit While
-                End If
-
-                ' check when the connection has been established 
-                If ssl.HandshakeStatus() = axtls.SSL_OK
-                    Exit While
-                End If
-
-                ' could do something else here 
-            End While
-
-            If res = axtls.SSL_OK Then  ' connection established and ok
-                If Not quiet
-                    display_session_id(ssl)
-                    display_cipher(ssl)
-                End If
-
-                ' now read (and display) whatever the client sends us
-                While 1
-                    ' keep reading until we get something interesting 
-                    While 1
-                        res = ssl_ctx.Read(ssl, buf)
-                        If res <> axtls.SSL_OK Then
-                            Exit While
-                        End If
-
-                        ' could do something else here
-                    End While
-
-                    If res < axtls.SSL_OK
-                        If Not quiet
-                            Console.WriteLine("CONNECTION CLOSED")
-                        End If
-
-                        Exit While
-                    End If
-
-                    ' convert to String 
-                    Dim str(res) As Char
-                    For i = 0 To res-1
-                        str(i) = Chr(buf(i))
-                    Next
-
-                    Console.Write(str)
-                End While
-            ElseIf Not quiet
-                SSLUtil.DisplayError(res)
-            End If
-
-            ' client was disconnected or the handshake failed. */
-            ssl.Dispose()
-            client_sock.Close()
-        End While
-
-        ssl_ctx.Dispose()
-    End Sub
-
-    ' 
-    ' do_client()
-    '
-    Public Sub do_client(ByVal build_mode As Integer, _
-                                    ByVal args() As String)
-
-        If build_mode < axtls.SSL_BUILD_ENABLE_CLIENT Then
-            print_client_options(build_mode, args(1))
-        End If
-
-        Dim i As Integer = 1
-        Dim res As Integer
-        Dim port As Integer = 4433
-        Dim quiet As Boolean = False
-        Dim password As String = Nothing
-        Dim reconnect As Integer = 0
-        Dim private_key_file As String = Nothing
-        Dim hostname As String = "127.0.0.1"
-
-        ' organise the cert/ca_cert lists
-        Dim ssl As SSL = Nothing
-        Dim cert_size As Integer = SSLUtil.MaxCerts()
-        Dim ca_cert_size As Integer = SSLUtil.MaxCACerts()
-        Dim cert(cert_size) As String
-        Dim ca_cert(ca_cert_size) As String
-        Dim cert_index As Integer = 0
-        Dim ca_cert_index As Integer = 0
-
-        Dim options As Integer = _
-                    axtls.SSL_SERVER_VERIFY_LATER Or axtls.SSL_DISPLAY_CERTS
-        Dim session_id As Byte() = Nothing
-
-        While i < args.Length
-            If args(i) = "-connect" Then
-                Dim host_port As String
-
-                If i >= args.Length-1
-                    print_client_options(build_mode, args(i))
-                End If
-
-                i += 1
-                host_port = args(i)
-
-                Dim index_colon As Integer = host_port.IndexOf(":"C)
-                If index_colon < 0 Then 
-                    print_client_options(build_mode, args(i))
-                End If
-
-                hostname = New String(host_port.ToCharArray(), _
-                        0, index_colon)
-                port = Int32.Parse(New String(host_port.ToCharArray(), _
-                            index_colon+1, host_port.Length-index_colon-1))
-            ElseIf args(i) = "-cert"
-                If i >= args.Length-1 Or cert_index >= cert_size Then
-                    print_client_options(build_mode, args(i))
-                End If
-
-                i += 1
-                cert(cert_index) = args(i)
-                cert_index += 1
-            ElseIf args(i) = "-key"
-                If i >= args.Length-1
-                    print_client_options(build_mode, args(i))
-                End If
-
-                i += 1
-                private_key_file = args(i)
-                options = options Or axtls.SSL_NO_DEFAULT_KEY
-            ElseIf args(i) = "-CAfile"
-                If i >= args.Length-1 Or ca_cert_index >= ca_cert_size
-                    print_client_options(build_mode, args(i))
-                End If
-
-                i += 1
-                ca_cert(ca_cert_index) = args(i)
-                ca_cert_index += 1
-            ElseIf args(i) = "-verify"
-                options = options And Not axtls.SSL_SERVER_VERIFY_LATER
-            ElseIf args(i) = "-reconnect"
-                reconnect = 4
-            ElseIf args(i) = "-quiet"
-                quiet = True
-                options = options And  Not axtls.SSL_DISPLAY_CERTS
-            ElseIf args(i) = "-pass"
-                If i >= args.Length-1
-                    print_client_options(build_mode, args(i))
-                End If
-
-                i += 1
-                password = args(i)
-            ElseIf build_mode = axtls.SSL_BUILD_FULL_MODE
-                If args(i) = "-debug" Then
-                    options = options Or axtls.SSL_DISPLAY_BYTES
-                ElseIf args(i) = "-state"
-                    options = options Or axtls.SSL_DISPLAY_STATES
-                ElseIf args(i) = "-show-rsa"
-                    options = options Or axtls.SSL_DISPLAY_RSA
-                Else
-                    print_client_options(build_mode, args(i))
-                End If
-            Else    ' don't know what this is 
-                print_client_options(build_mode, args(i))
-            End If
-
-            i += 1
-        End While
-
-        'Dim hostInfo As IPHostEntry = Dns.Resolve(hostname)
-        Dim hostInfo As IPHostEntry = Dns.GetHostEntry(hostname)
-        Dim  addresses As IPAddress() = hostInfo.AddressList
-        Dim ep As IPEndPoint = New IPEndPoint(addresses(0), port) 
-        Dim client_sock As Socket = New Socket(AddressFamily.InterNetwork, _
-                SocketType.Stream, ProtocolType.Tcp)
-        client_sock.Connect(ep)
-
-        If Not client_sock.Connected Then
-            Console.WriteLine("could not connect")
-            Environment.Exit(1)
-        End If
-
-        If Not quiet Then
-            Console.WriteLine("CONNECTED")
-        End If
-
-        '*********************************************************************
-        ' This is where the interesting stuff happens. Up until now we've
-        ' just been setting up sockets etc. Now we do the SSL handshake.
-        '*********************************************************************/
-        Dim ssl_ctx As SSLClient = New SSLClient(options, _
-                axtls.SSL_DEFAULT_CLNT_SESS)
-
-        If ssl_ctx Is Nothing Then
-            Console.Error.WriteLine("Error: Client context is invalid")
-            Environment.Exit(1)
-        End If
-
-        If private_key_file <> Nothing Then
-            Dim obj_type As Integer = axtls.SSL_OBJ_RSA_KEY
-
-            If private_key_file.EndsWith(".p8") Then
-                obj_type = axtls.SSL_OBJ_PKCS8
-            Else If (private_key_file.EndsWith(".p12"))
-                obj_type = axtls.SSL_OBJ_PKCS12
-            End If
-
-            If ssl_ctx.ObjLoad(obj_type, private_key_file, _
-                                            password) <> axtls.SSL_OK Then
-                Console.Error.WriteLine("Error: Private key '" & _
-                        private_key_file & "' is undefined.")
-                Environment.Exit(1)
-            End If
-        End If
-
-        For i = 0 To cert_index-1
-            If ssl_ctx.ObjLoad(axtls.SSL_OBJ_X509_CERT, _
-                            cert(i), Nothing) <> axtls.SSL_OK Then
-                Console.WriteLine("Certificate '" & cert(i) & _
-                        "' is undefined.")
-                Environment.Exit(1)
-            End If
-        Next
-
-        For i = 0 To ca_cert_index-1
-            If ssl_ctx.ObjLoad(axtls.SSL_OBJ_X509_CACERT, _
-                            ca_cert(i), Nothing) <> axtls.SSL_OK Then
-                Console.WriteLine("Certificate '" & ca_cert(i) & _
-                        "' is undefined.")
-                Environment.Exit(1)
-            End If
-        Next
-
-        ' Try session resumption?
-        If reconnect > 0 Then
-            While reconnect > 0
-                reconnect -= 1
-                ssl = ssl_ctx.Connect(client_sock, session_id)
-
-                res = ssl.HandshakeStatus()
-                If res <> axtls.SSL_OK Then
-                    If Not quiet Then
-                        SSLUtil.DisplayError(res)
-                    End If
-
-                    ssl.Dispose()
-                    Environment.Exit(1)
-                End If
-
-                display_session_id(ssl)
-                session_id = ssl.GetSessionId()
-
-                If reconnect > 0 Then
-                    ssl.Dispose()
-                    client_sock.Close()
-                    
-                    ' and reconnect
-                    client_sock = New Socket(AddressFamily.InterNetwork, _
-                        SocketType.Stream, ProtocolType.Tcp)
-                    client_sock.Connect(ep)
-                End If
-            End While
-        Else
-            ssl = ssl_ctx.Connect(client_sock, Nothing)
-        End If
-
-        ' check the return status 
-        res = ssl.HandshakeStatus()
-        If res <> axtls.SSL_OK Then
-            If Not quiet Then
-                SSLUtil.DisplayError(res)
-            End If
-
-            Environment.Exit(1)
-        End If
-
-        If Not quiet Then
-            Dim common_name As String = _
-                ssl.GetCertificateDN(axtls.SSL_X509_CERT_COMMON_NAME)
-
-            If common_name <> Nothing
-                Console.WriteLine("Common Name:" & _
-                        ControlChars.Tab & ControlChars.Tab & _
-                        ControlChars.Tab & common_name)
-            End If
-
-            display_session_id(ssl)
-            display_cipher(ssl)
-        End If
-
-        While (1)
-            Dim user_input As String = Console.ReadLine()
-
-            If user_input = Nothing Then
-                Exit While
-            End If
-
-            Dim buf(user_input.Length+1) As Byte
-            buf(buf.Length-2) = Asc(ControlChars.Lf) ' add the carriage return
-            buf(buf.Length-1) = 0                    ' null terminate 
-
-            For i = 0 To user_input.Length-1
-                buf(i) = Asc(user_input.Chars(i))
-            Next
-
-            res = ssl_ctx.Write(ssl, buf, buf.Length)
-            If res < axtls.SSL_OK Then
-                If Not quiet Then
-                    SSLUtil.DisplayError(res)
-                End If
-
-                Exit While
-            End If
-        End While
-
-        ssl_ctx.Dispose()
-    End Sub
-
-    '
-    ' Display what cipher we are using
-    '
-    Private Sub display_cipher(ByVal ssl As SSL)
-        Console.Write("CIPHER is ")
-
-        Select ssl.GetCipherId()
-            Case axtls.SSL_AES128_SHA
-                Console.WriteLine("AES128-SHA")
-
-            Case axtls.SSL_AES256_SHA
-                Console.WriteLine("AES256-SHA")
-
-            Case axtls.SSL_RC4_128_SHA
-                Console.WriteLine("RC4-SHA")
-
-            Case axtls.SSL_RC4_128_MD5
-                Console.WriteLine("RC4-MD5")
-
-            Case Else
-                Console.WriteLine("Unknown - " & ssl.GetCipherId())
-        End Select
-    End Sub
-
-    '
-    ' Display what session id we have.
-    '
-    Private Sub display_session_id(ByVal ssl As SSL)
-        Dim session_id As Byte() = ssl.GetSessionId()
-
-        If session_id.Length > 0 Then
-            Console.WriteLine("-----BEGIN SSL SESSION PARAMETERS-----")
-            Dim b As Byte
-            For Each b In session_id
-                Console.Write("{0:x02}", b)
-            Next
-
-            Console.WriteLine()
-            Console.WriteLine("-----END SSL SESSION PARAMETERS-----")
-        End If
-    End Sub
-
-    ' 
-    ' We've had some sort of command-line error. Print out the basic options.
-    '
-    Public Sub print_options(ByVal options As String)
-        Console.WriteLine("axssl: Error: '" & options & _
-                "' is an invalid command.")
-        Console.WriteLine("usage: axssl.vbnet [s_server|s_client|" & _
-                "version] [args ...]")
-        Environment.Exit(1)
-    End Sub
-
-    ' 
-    ' We've had some sort of command-line error. Print out the server options.
-    '
-    Private Sub print_server_options(ByVal build_mode As Integer, _
-                                    ByVal options As String)
-        Dim cert_size As Integer = SSLUtil.MaxCerts()
-        Dim ca_cert_size As Integer = SSLUtil.MaxCACerts()
-
-        Console.WriteLine("unknown option " & options)
-        Console.WriteLine("usage: s_server [args ...]")
-        Console.WriteLine(" -accept arg" & ControlChars.Tab & _
-                "- port to accept on (default is 4433)")
-        Console.WriteLine(" -quiet" & ControlChars.Tab & ControlChars.Tab & _
-                "- No server output")
-        If build_mode >= axtls.SSL_BUILD_SERVER_ONLY 
-            Console.WriteLine(" -cert arg" & ControlChars.Tab & _
-               "- certificate file to add (in addition to default) to chain -")
-            Console.WriteLine(ControlChars.Tab & ControlChars.Tab & _
-                    "  Can repeat up to " & cert_size & " times")
-            Console.WriteLine(" -key arg" & ControlChars.Tab & _
-                        "- Private key file to use")
-            Console.WriteLine(" -pass" & ControlChars.Tab & ControlChars.Tab & _
-                    "- private key file pass phrase source")
-        End If
-
-        If build_mode >= axtls.SSL_BUILD_ENABLE_VERIFICATION
-            Console.WriteLine(" -verify" & ControlChars.Tab & _
-                    "- turn on peer certificate verification")
-            Console.WriteLine(" -CAfile arg" & ControlChars.Tab & _
-                    "- Certificate authority")
-            Console.WriteLine(ControlChars.Tab & ControlChars.Tab & _
-                    "  Can repeat up to " & ca_cert_size & " times")
-        End If
-
-        If build_mode = axtls.SSL_BUILD_FULL_MODE
-            Console.WriteLine(" -debug" & _
-                    ControlChars.Tab & ControlChars.Tab & _
-                    "- Print more output")
-            Console.WriteLine(" -state" & _
-                    ControlChars.Tab & ControlChars.Tab & _
-                    "- Show state messages")
-            Console.WriteLine(" -show-rsa" & _
-                    ControlChars.Tab & "- Show RSA state")
-        End If
-
-        Environment.Exit(1)
-    End Sub
-
-    '
-    ' We've had some sort of command-line error. Print out the client options.
-    '
-    Private Sub print_client_options(ByVal build_mode As Integer, _
-                                                ByVal options As String)
-        Dim cert_size As Integer = SSLUtil.MaxCerts()
-        Dim ca_cert_size As Integer = SSLUtil.MaxCACerts()
-
-        Console.WriteLine("unknown option " & options)
-
-        If build_mode >= axtls.SSL_BUILD_ENABLE_CLIENT Then
-            Console.WriteLine("usage: s_client [args ...]")
-            Console.WriteLine(" -connect host:port - who to connect to " & _
-                    "(default is localhost:4433)")
-            Console.WriteLine(" -verify" & ControlChars.Tab & _
-                    "- turn on peer certificate verification")
-            Console.WriteLine(" -cert arg" & ControlChars.Tab & _
-                    "- certificate file to use")
-            Console.WriteLine(ControlChars.Tab & ControlChars.Tab & _
-                    "  Can repeat up to " & cert_size & " times")
-            Console.WriteLine(" -key arg" & ControlChars.Tab & _
-                    "- Private key file to use")
-            Console.WriteLine(" -CAfile arg" & ControlChars.Tab & _
-                    "- Certificate authority")
-            Console.WriteLine(ControlChars.Tab & ControlChars.Tab & _
-                    "  Can repeat up to " & ca_cert_size & " times")
-            Console.WriteLine(" -quiet" & _
-                    ControlChars.Tab & ControlChars.Tab & "- No client output")
-            Console.WriteLine(" -pass" & ControlChars.Tab & _
-                    ControlChars.Tab & _
-                    "- private key file pass phrase source")
-            Console.WriteLine(" -reconnect" & ControlChars.Tab & _
-                    "- Drop and re-make the " & _
-                    "connection with the same Session-ID")
-
-            If build_mode = axtls.SSL_BUILD_FULL_MODE Then
-                Console.WriteLine(" -debug" & _
-                        ControlChars.Tab & ControlChars.Tab & _
-                        "- Print more output")
-                Console.WriteLine(" -state" & _
-                        ControlChars.Tab & ControlChars.Tab & _
-                        "- Show state messages")
-                Console.WriteLine(" -show-rsa" & ControlChars.Tab & _
-                        "- Show RSA state")
-            End If
-        Else 
-            Console.WriteLine("Change configuration to allow this feature")
-        End If
-
-        Environment.Exit(1)
-    End Sub
-
-End Class
-
-Public Module MyMain
-    Function Main(ByVal args() As String) As Integer
-        Dim runner As axssl = New axssl()
-
-        If args.Length = 1 And args(0) = "version" Then
-           Console.WriteLine("axssl.vbnet " & SSLUtil.Version())
-            Environment.Exit(0)
-        End If
-
-        If args.Length < 1 
-            runner.print_options("")
-        ElseIf args(0) <> "s_server" And args(0) <> "s_client"
-            runner.print_options(args(0))
-        End If
-
-        Dim build_mode As Integer = SSLUtil.BuildMode()
-
-        If args(0) = "s_server" Then
-            runner.do_server(build_mode, args)
-        Else
-            runner.do_client(build_mode, args)
-        End If
-    End Function
-End Module