Search in sources :

Example 1 with SSLState

use of streamer.ssl.SSLState in project cloudstack by apache.

the class ConsoleProxyRdpClient method initClient.

@Override
public void initClient(final ConsoleProxyClientParam param) {
    if ((System.currentTimeMillis() - _threadStopTime) < 1000) {
        return;
    }
    try {
        int canvasWidth = 1024;
        int canvasHeight = 768;
        setClientParam(param);
        final String host = param.getHypervHost();
        final String password = param.getPassword();
        final String instanceId = param.getClientHostAddress();
        final int port = param.getClientHostPort();
        final SSLState sslState = new SSLState();
        final String username = param.getUsername();
        String name = null;
        String domain = null;
        if (username.contains("\\")) {
            String[] tokens = username.split("\\\\");
            name = tokens[1];
            domain = tokens[0];
        } else {
            name = username;
            domain = "Workgroup";
        }
        _screen = new ScreenDescription();
        _canvas = new RdpBufferedImageCanvas(this, canvasWidth, canvasHeight);
        onFramebufferSizeChange(canvasWidth, canvasHeight);
        _screen.addSizeChangeListener(new SizeChangeListener() {

            @Override
            public void sizeChanged(int width, int height) {
                if (_canvas != null) {
                    _canvas.setCanvasSize(width, height);
                }
            }
        });
        s_logger.info("connecting to instance " + instanceId + " on host " + host);
        _client = new RdpClient("client", host, domain, name, password, instanceId, _screen, _canvas, sslState);
        _mouseEventSource = _client.getMouseEventSource();
        _keyEventSource = _client.getKeyEventSource();
        _worker = new Thread(new Runnable() {

            @Override
            public void run() {
                _socket = new AprSocketWrapperImpl("socket", sslState);
                Pipeline pipeline = new PipelineImpl("Client");
                pipeline.add(_socket, _client);
                pipeline.link("socket", _client.getId(), "socket");
                pipeline.validate();
                InetSocketAddress address = new InetSocketAddress(host, port);
                ConsoleProxy.ensureRoute(host);
                try {
                    _workerDone = false;
                    s_logger.info("Connecting socket to remote server and run main loop(s)");
                    _socket.connect(address);
                } catch (Exception e) {
                    s_logger.info(" error occurred in connecting to socket " + e.getMessage());
                } finally {
                    shutdown();
                }
                _threadStopTime = System.currentTimeMillis();
                s_logger.info("Receiver thread stopped.");
                _workerDone = true;
            }
        });
        _worker.setDaemon(true);
        _worker.start();
    } catch (Exception e) {
        _workerDone = true;
        s_logger.info("error occurred in initializing rdp client " + e.getMessage());
    }
}
Also used : PipelineImpl(streamer.PipelineImpl) InetSocketAddress(java.net.InetSocketAddress) ScreenDescription(common.ScreenDescription) SizeChangeListener(common.SizeChangeListener) Pipeline(streamer.Pipeline) AprSocketWrapperImpl(streamer.apr.AprSocketWrapperImpl) RdpBufferedImageCanvas(com.cloud.consoleproxy.rdp.RdpBufferedImageCanvas) SSLState(streamer.ssl.SSLState) RdpClient(rdpclient.RdpClient)

Example 2 with SSLState

use of streamer.ssl.SSLState in project cloudstack by apache.

the class ClientNtlmsspPubKeyAuth method main.

/**
     * Example.
     */
public static void main(String[] args) {
    System.setProperty("streamer.Element.debug", "true");
    /* @formatter:off */
    //
    // Client NEGOTIATE
    //
    byte[] clientNegotiatePacket = new byte[] { (byte) 0x30, (byte) 0x37, (byte) 0xa0, (byte) 0x03, (byte) 0x02, (byte) 0x01, (byte) 0x02, (byte) 0xa1, (byte) 0x30, (byte) 0x30, (byte) 0x2e, (byte) 0x30, (byte) 0x2c, (byte) 0xa0, (byte) 0x2a, (byte) 0x04, (byte) 0x28, (byte) 0x4e, (byte) 0x54, (byte) 0x4c, (byte) 0x4d, (byte) 0x53, (byte) 0x53, (byte) 0x50, (byte) 0x00, (byte) 0x01, (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0xb7, (byte) 0x82, (byte) 0x08, (byte) 0xe2, (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x06, (byte) 0x01, (byte) 0xb1, (byte) 0x1d, (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x0f };
    //
    // Server CHALLENGE
    //
    byte[] serverChallengePacket = new byte[] { // TAG: [UNIVERSAL 16] (constructed) "SEQUENCE" LEN: 258 bytes
    0x30, // TAG: [UNIVERSAL 16] (constructed) "SEQUENCE" LEN: 258 bytes
    (byte) 0x82, // TAG: [UNIVERSAL 16] (constructed) "SEQUENCE" LEN: 258 bytes
    0x01, // TAG: [UNIVERSAL 16] (constructed) "SEQUENCE" LEN: 258 bytes
    0x02, // TAG: [0] (constructed) LEN: 3 bytes
    (byte) 0xa0, // TAG: [0] (constructed) LEN: 3 bytes
    0x03, // TAG: [UNIVERSAL 2] (primitive) "INTEGER" LEN: 1 bytes, Version: 0x3
    0x02, // TAG: [UNIVERSAL 2] (primitive) "INTEGER" LEN: 1 bytes, Version: 0x3
    0x01, // TAG: [UNIVERSAL 2] (primitive) "INTEGER" LEN: 1 bytes, Version: 0x3
    0x03, // TAG: [1] (constructed) LEN: 250 bytes
    (byte) 0xa1, // TAG: [1] (constructed) LEN: 250 bytes
    (byte) 0x81, // TAG: [1] (constructed) LEN: 250 bytes
    (byte) 0xfa, // TAG: [UNIVERSAL 16] (constructed) "SEQUENCE" LEN: 247 bytes
    0x30, // TAG: [UNIVERSAL 16] (constructed) "SEQUENCE" LEN: 247 bytes
    (byte) 0x81, // TAG: [UNIVERSAL 16] (constructed) "SEQUENCE" LEN: 247 bytes
    (byte) 0xf7, // TAG: [UNIVERSAL 16] (constructed) "SEQUENCE" LEN: 244 bytes
    0x30, // TAG: [UNIVERSAL 16] (constructed) "SEQUENCE" LEN: 244 bytes
    (byte) 0x81, // TAG: [UNIVERSAL 16] (constructed) "SEQUENCE" LEN: 244 bytes
    (byte) 0xf4, // TAG: [0] (constructed) LEN: 241 bytes
    (byte) 0xa0, // TAG: [0] (constructed) LEN: 241 bytes
    (byte) 0x81, // TAG: [0] (constructed) LEN: 241 bytes
    (byte) 0xf1, // TAG: [UNIVERSAL 4] (primitive) "OCTET STRING" LEN: 238 bytes
    0x04, // TAG: [UNIVERSAL 4] (primitive) "OCTET STRING" LEN: 238 bytes
    (byte) 0x81, // TAG: [UNIVERSAL 4] (primitive) "OCTET STRING" LEN: 238 bytes
    (byte) 0xee, // "NTLMSSP\0"
    0x4e, // "NTLMSSP\0"
    0x54, // "NTLMSSP\0"
    0x4c, // "NTLMSSP\0"
    0x4d, // "NTLMSSP\0"
    0x53, // "NTLMSSP\0"
    0x53, // "NTLMSSP\0"
    0x50, // "NTLMSSP\0"
    0x00, // MessageType (CHALLENGE)
    0x02, // MessageType (CHALLENGE)
    0x00, // MessageType (CHALLENGE)
    0x00, // MessageType (CHALLENGE)
    0x00, // TargetName (length: 30, allocated space: 30, offset: 56)
    0x1e, // TargetName (length: 30, allocated space: 30, offset: 56)
    0x00, // TargetName (length: 30, allocated space: 30, offset: 56)
    0x1e, // TargetName (length: 30, allocated space: 30, offset: 56)
    0x00, // TargetName (length: 30, allocated space: 30, offset: 56)
    0x38, // TargetName (length: 30, allocated space: 30, offset: 56)
    0x00, // TargetName (length: 30, allocated space: 30, offset: 56)
    0x00, // TargetName (length: 30, allocated space: 30, offset: 56)
    0x00, // NegotiateFlags: NEGOTIATE_56 NEGOTIATE_KEY_EXCH NEGOTIATE_128 NEGOTIATE_VERSION NEGOTIATE_TARGET_INFO NEGOTIATE_EXTENDED_SESSION_SECURITY TARGET_TYPE_SERVER NEGOTIATE_ALWAYS_SIGN NEGOTIATE_NTLM NEGOTIATE_SEAL NEGOTIATE_SIGN REQUEST_TARGET NEGOTIATE_UNICODE
    0x35, // NegotiateFlags: NEGOTIATE_56 NEGOTIATE_KEY_EXCH NEGOTIATE_128 NEGOTIATE_VERSION NEGOTIATE_TARGET_INFO NEGOTIATE_EXTENDED_SESSION_SECURITY TARGET_TYPE_SERVER NEGOTIATE_ALWAYS_SIGN NEGOTIATE_NTLM NEGOTIATE_SEAL NEGOTIATE_SIGN REQUEST_TARGET NEGOTIATE_UNICODE
    (byte) 0x82, // NegotiateFlags: NEGOTIATE_56 NEGOTIATE_KEY_EXCH NEGOTIATE_128 NEGOTIATE_VERSION NEGOTIATE_TARGET_INFO NEGOTIATE_EXTENDED_SESSION_SECURITY TARGET_TYPE_SERVER NEGOTIATE_ALWAYS_SIGN NEGOTIATE_NTLM NEGOTIATE_SEAL NEGOTIATE_SIGN REQUEST_TARGET NEGOTIATE_UNICODE
    (byte) 0x8a, // NegotiateFlags: NEGOTIATE_56 NEGOTIATE_KEY_EXCH NEGOTIATE_128 NEGOTIATE_VERSION NEGOTIATE_TARGET_INFO NEGOTIATE_EXTENDED_SESSION_SECURITY TARGET_TYPE_SERVER NEGOTIATE_ALWAYS_SIGN NEGOTIATE_NTLM NEGOTIATE_SEAL NEGOTIATE_SIGN REQUEST_TARGET NEGOTIATE_UNICODE
    (byte) 0xe2, //  ServerChallenge
    (byte) 0xc1, //  ServerChallenge
    (byte) 0x4a, //  ServerChallenge
    (byte) 0xc8, //  ServerChallenge
    (byte) 0x98, //  ServerChallenge
    (byte) 0x2f, //  ServerChallenge
    (byte) 0xd1, //  ServerChallenge
    (byte) 0x93, //  ServerChallenge
    (byte) 0xd4, //  Reserved
    0x00, //  Reserved
    0x00, //  Reserved
    0x00, //  Reserved
    0x00, //  Reserved
    0x00, //  Reserved
    0x00, //  Reserved
    0x00, //  Reserved
    0x00, // TargetInfo (length: 152, allocated space: 152, offset: 86)
    (byte) 0x98, // TargetInfo (length: 152, allocated space: 152, offset: 86)
    0x00, // TargetInfo (length: 152, allocated space: 152, offset: 86)
    (byte) 0x98, // TargetInfo (length: 152, allocated space: 152, offset: 86)
    0x00, // TargetInfo (length: 152, allocated space: 152, offset: 86)
    0x56, // TargetInfo (length: 152, allocated space: 152, offset: 86)
    0x00, // TargetInfo (length: 152, allocated space: 152, offset: 86)
    0x00, // TargetInfo (length: 152, allocated space: 152, offset: 86)
    0x00, // Version (6.3, build 9431) , NTLM current revision: 15
    0x06, // Version (6.3, build 9431) , NTLM current revision: 15
    0x03, // Version (6.3, build 9431) , NTLM current revision: 15
    (byte) 0xd7, // Version (6.3, build 9431) , NTLM current revision: 15
    0x24, // Version (6.3, build 9431) , NTLM current revision: 15
    0x00, // Version (6.3, build 9431) , NTLM current revision: 15
    0x00, // Version (6.3, build 9431) , NTLM current revision: 15
    0x00, // Version (6.3, build 9431) , NTLM current revision: 15
    0x0f, // Target name value: "WIN-LO419B2LSR0"
    0x57, // Target name value: "WIN-LO419B2LSR0"
    0x00, // Target name value: "WIN-LO419B2LSR0"
    0x49, // Target name value: "WIN-LO419B2LSR0"
    0x00, // Target name value: "WIN-LO419B2LSR0"
    0x4e, // Target name value: "WIN-LO419B2LSR0"
    0x00, // Target name value: "WIN-LO419B2LSR0"
    0x2d, // Target name value: "WIN-LO419B2LSR0"
    0x00, // Target name value: "WIN-LO419B2LSR0"
    0x4c, // Target name value: "WIN-LO419B2LSR0"
    0x00, // Target name value: "WIN-LO419B2LSR0"
    0x4f, // Target name value: "WIN-LO419B2LSR0"
    0x00, // Target name value: "WIN-LO419B2LSR0"
    0x34, // Target name value: "WIN-LO419B2LSR0"
    0x00, // Target name value: "WIN-LO419B2LSR0"
    0x31, // Target name value: "WIN-LO419B2LSR0"
    0x00, // Target name value: "WIN-LO419B2LSR0"
    0x39, // Target name value: "WIN-LO419B2LSR0"
    0x00, // Target name value: "WIN-LO419B2LSR0"
    0x42, // Target name value: "WIN-LO419B2LSR0"
    0x00, // Target name value: "WIN-LO419B2LSR0"
    0x32, // Target name value: "WIN-LO419B2LSR0"
    0x00, // Target name value: "WIN-LO419B2LSR0"
    0x4c, // Target name value: "WIN-LO419B2LSR0"
    0x00, // Target name value: "WIN-LO419B2LSR0"
    0x53, // Target name value: "WIN-LO419B2LSR0"
    0x00, // Target name value: "WIN-LO419B2LSR0"
    0x52, // Target name value: "WIN-LO419B2LSR0"
    0x00, // Target name value: "WIN-LO419B2LSR0"
    0x30, // Target name value: "WIN-LO419B2LSR0"
    0x00, // Item Type: NetBIOS domain name (0x0002, LE)
    0x02, // Item Type: NetBIOS domain name (0x0002, LE)
    0x00, //  Item Length: 30 (LE)
    0x1e, //  Item Length: 30 (LE)
    0x00, // "WIN-LO419B2LSR0"
    0x57, // "WIN-LO419B2LSR0"
    0x00, // "WIN-LO419B2LSR0"
    0x49, // "WIN-LO419B2LSR0"
    0x00, // "WIN-LO419B2LSR0"
    0x4e, // "WIN-LO419B2LSR0"
    0x00, // "WIN-LO419B2LSR0"
    0x2d, // "WIN-LO419B2LSR0"
    0x00, // "WIN-LO419B2LSR0"
    0x4c, // "WIN-LO419B2LSR0"
    0x00, // "WIN-LO419B2LSR0"
    0x4f, // "WIN-LO419B2LSR0"
    0x00, // "WIN-LO419B2LSR0"
    0x34, // "WIN-LO419B2LSR0"
    0x00, // "WIN-LO419B2LSR0"
    0x31, // "WIN-LO419B2LSR0"
    0x00, // "WIN-LO419B2LSR0"
    0x39, // "WIN-LO419B2LSR0"
    0x00, // "WIN-LO419B2LSR0"
    0x42, // "WIN-LO419B2LSR0"
    0x00, // "WIN-LO419B2LSR0"
    0x32, // "WIN-LO419B2LSR0"
    0x00, // "WIN-LO419B2LSR0"
    0x4c, // "WIN-LO419B2LSR0"
    0x00, // "WIN-LO419B2LSR0"
    0x53, // "WIN-LO419B2LSR0"
    0x00, // "WIN-LO419B2LSR0"
    0x52, // "WIN-LO419B2LSR0"
    0x00, // "WIN-LO419B2LSR0"
    0x30, // "WIN-LO419B2LSR0"
    0x00, //  Item Type: NetBIOS computer name (0x0001, LE)
    0x01, //  Item Type: NetBIOS computer name (0x0001, LE)
    0x00, //  Item Length: 30 (LE)
    0x1e, //  Item Length: 30 (LE)
    0x00, // "WIN-LO419B2LSR0"
    0x57, // "WIN-LO419B2LSR0"
    0x00, // "WIN-LO419B2LSR0"
    0x49, // "WIN-LO419B2LSR0"
    0x00, // "WIN-LO419B2LSR0"
    0x4e, // "WIN-LO419B2LSR0"
    0x00, // "WIN-LO419B2LSR0"
    0x2d, // "WIN-LO419B2LSR0"
    0x00, // "WIN-LO419B2LSR0"
    0x4c, // "WIN-LO419B2LSR0"
    0x00, // "WIN-LO419B2LSR0"
    0x4f, // "WIN-LO419B2LSR0"
    0x00, // "WIN-LO419B2LSR0"
    0x34, // "WIN-LO419B2LSR0"
    0x00, // "WIN-LO419B2LSR0"
    0x31, // "WIN-LO419B2LSR0"
    0x00, // "WIN-LO419B2LSR0"
    0x39, // "WIN-LO419B2LSR0"
    0x00, // "WIN-LO419B2LSR0"
    0x42, // "WIN-LO419B2LSR0"
    0x00, // "WIN-LO419B2LSR0"
    0x32, // "WIN-LO419B2LSR0"
    0x00, // "WIN-LO419B2LSR0"
    0x4c, // "WIN-LO419B2LSR0"
    0x00, // "WIN-LO419B2LSR0"
    0x53, // "WIN-LO419B2LSR0"
    0x00, // "WIN-LO419B2LSR0"
    0x52, // "WIN-LO419B2LSR0"
    0x00, // "WIN-LO419B2LSR0"
    0x30, // "WIN-LO419B2LSR0"
    0x00, // Item Type: DNS domain name (0x0004, LE)
    0x04, // Item Type: DNS domain name (0x0004, LE)
    0x00, //  Item Length: 30 (LE)
    0x1e, //  Item Length: 30 (LE)
    0x00, // "WIN-LO419B2LSR0"
    0x57, // "WIN-LO419B2LSR0"
    0x00, // "WIN-LO419B2LSR0"
    0x49, // "WIN-LO419B2LSR0"
    0x00, // "WIN-LO419B2LSR0"
    0x4e, // "WIN-LO419B2LSR0"
    0x00, // "WIN-LO419B2LSR0"
    0x2d, // "WIN-LO419B2LSR0"
    0x00, // "WIN-LO419B2LSR0"
    0x4c, // "WIN-LO419B2LSR0"
    0x00, // "WIN-LO419B2LSR0"
    0x4f, // "WIN-LO419B2LSR0"
    0x00, // "WIN-LO419B2LSR0"
    0x34, // "WIN-LO419B2LSR0"
    0x00, // "WIN-LO419B2LSR0"
    0x31, // "WIN-LO419B2LSR0"
    0x00, // "WIN-LO419B2LSR0"
    0x39, // "WIN-LO419B2LSR0"
    0x00, // "WIN-LO419B2LSR0"
    0x42, // "WIN-LO419B2LSR0"
    0x00, // "WIN-LO419B2LSR0"
    0x32, // "WIN-LO419B2LSR0"
    0x00, // "WIN-LO419B2LSR0"
    0x4c, // "WIN-LO419B2LSR0"
    0x00, // "WIN-LO419B2LSR0"
    0x53, // "WIN-LO419B2LSR0"
    0x00, // "WIN-LO419B2LSR0"
    0x52, // "WIN-LO419B2LSR0"
    0x00, // "WIN-LO419B2LSR0"
    0x30, // "WIN-LO419B2LSR0"
    0x00, // Item Type: DNS computer name (0x0003, LE)
    0x03, // Item Type: DNS computer name (0x0003, LE)
    0x00, //  Item Length: 30 (LE)
    0x1e, //  Item Length: 30 (LE)
    0x00, // "WIN-LO419B2LSR0"
    0x57, // "WIN-LO419B2LSR0"
    0x00, // "WIN-LO419B2LSR0"
    0x49, // "WIN-LO419B2LSR0"
    0x00, // "WIN-LO419B2LSR0"
    0x4e, // "WIN-LO419B2LSR0"
    0x00, // "WIN-LO419B2LSR0"
    0x2d, // "WIN-LO419B2LSR0"
    0x00, // "WIN-LO419B2LSR0"
    0x4c, // "WIN-LO419B2LSR0"
    0x00, // "WIN-LO419B2LSR0"
    0x4f, // "WIN-LO419B2LSR0"
    0x00, // "WIN-LO419B2LSR0"
    0x34, // "WIN-LO419B2LSR0"
    0x00, // "WIN-LO419B2LSR0"
    0x31, // "WIN-LO419B2LSR0"
    0x00, // "WIN-LO419B2LSR0"
    0x39, // "WIN-LO419B2LSR0"
    0x00, // "WIN-LO419B2LSR0"
    0x42, // "WIN-LO419B2LSR0"
    0x00, // "WIN-LO419B2LSR0"
    0x32, // "WIN-LO419B2LSR0"
    0x00, // "WIN-LO419B2LSR0"
    0x4c, // "WIN-LO419B2LSR0"
    0x00, // "WIN-LO419B2LSR0"
    0x53, // "WIN-LO419B2LSR0"
    0x00, // "WIN-LO419B2LSR0"
    0x52, // "WIN-LO419B2LSR0"
    0x00, // "WIN-LO419B2LSR0"
    0x30, // "WIN-LO419B2LSR0"
    0x00, // Item Type: Timestamp (0x0007, LE)
    0x07, // Item Type: Timestamp (0x0007, LE)
    0x00, //  Item Length: 8 (LE)
    0x08, //  Item Length: 8 (LE)
    0x00, // Time: Oct 10, 2013 23:36:20.056937300 EEST
    (byte) 0x1d, // Time: Oct 10, 2013 23:36:20.056937300 EEST
    (byte) 0xea, // Time: Oct 10, 2013 23:36:20.056937300 EEST
    (byte) 0x6b, // Time: Oct 10, 2013 23:36:20.056937300 EEST
    (byte) 0x60, // Time: Oct 10, 2013 23:36:20.056937300 EEST
    (byte) 0xf8, // Time: Oct 10, 2013 23:36:20.056937300 EEST
    (byte) 0xc5, // Time: Oct 10, 2013 23:36:20.056937300 EEST
    (byte) 0xce, // Time: Oct 10, 2013 23:36:20.056937300 EEST
    (byte) 0x01, // Attribute: End of list
    0x00, 0x00, 0x00, 0x00 };
    //
    // Client NTLMSSP_AUTH
    //
    byte[] clientAuthPacket = new byte[] { //  TAG: [UNIVERSAL 16] (constructed) "SEQUENCE" LEN: 787 bytes
    0x30, //  TAG: [UNIVERSAL 16] (constructed) "SEQUENCE" LEN: 787 bytes
    (byte) 0x82, //  TAG: [UNIVERSAL 16] (constructed) "SEQUENCE" LEN: 787 bytes
    0x03, //  TAG: [UNIVERSAL 16] (constructed) "SEQUENCE" LEN: 787 bytes
    0x13, //  TAG: [0] (constructed) LEN: 3 bytes
    (byte) 0xa0, //  TAG: [0] (constructed) LEN: 3 bytes
    0x03, //  TAG: [UNIVERSAL 2] (primitive) "INTEGER" LEN: 1 bytes
    0x02, //  TAG: [UNIVERSAL 2] (primitive) "INTEGER" LEN: 1 bytes
    0x01, //  TAG: [UNIVERSAL 2] (primitive) "INTEGER" LEN: 1 bytes
    0x02, //  TAG: [1] (constructed) LEN: 484 bytes
    (byte) 0xa1, //  TAG: [1] (constructed) LEN: 484 bytes
    (byte) 0x82, //  TAG: [1] (constructed) LEN: 484 bytes
    0x01, //  TAG: [1] (constructed) LEN: 484 bytes
    (byte) 0xe4, //  TAG: [UNIVERSAL 16] (constructed) "SEQUENCE" LEN: 480 bytes
    0x30, //  TAG: [UNIVERSAL 16] (constructed) "SEQUENCE" LEN: 480 bytes
    (byte) 0x82, //  TAG: [UNIVERSAL 16] (constructed) "SEQUENCE" LEN: 480 bytes
    0x01, //  TAG: [UNIVERSAL 16] (constructed) "SEQUENCE" LEN: 480 bytes
    (byte) 0xe0, //  TAG: [UNIVERSAL 16] (constructed) "SEQUENCE" LEN: 476 bytes
    0x30, //  TAG: [UNIVERSAL 16] (constructed) "SEQUENCE" LEN: 476 bytes
    (byte) 0x82, //  TAG: [UNIVERSAL 16] (constructed) "SEQUENCE" LEN: 476 bytes
    0x01, //  TAG: [UNIVERSAL 16] (constructed) "SEQUENCE" LEN: 476 bytes
    (byte) 0xdc, //  TAG: [0] (constructed) LEN: 472 bytes
    (byte) 0xa0, //  TAG: [0] (constructed) LEN: 472 bytes
    (byte) 0x82, //  TAG: [0] (constructed) LEN: 472 bytes
    0x01, //  TAG: [0] (constructed) LEN: 472 bytes
    (byte) 0xd8, // TAG: [UNIVERSAL 4] (primitive) "OCTET STRING" LEN: 468 bytes
    0x04, // TAG: [UNIVERSAL 4] (primitive) "OCTET STRING" LEN: 468 bytes
    (byte) 0x82, // TAG: [UNIVERSAL 4] (primitive) "OCTET STRING" LEN: 468 bytes
    0x01, // TAG: [UNIVERSAL 4] (primitive) "OCTET STRING" LEN: 468 bytes
    (byte) 0xd4, //  "NTLMSSP\0"
    0x4e, //  "NTLMSSP\0"
    0x54, //  "NTLMSSP\0"
    0x4c, //  "NTLMSSP\0"
    0x4d, //  "NTLMSSP\0"
    0x53, //  "NTLMSSP\0"
    0x53, //  "NTLMSSP\0"
    0x50, //  "NTLMSSP\0"
    0x00, //  NTLM Message Type: NTLMSSP_AUTH (0x00000003)
    0x03, //  NTLM Message Type: NTLMSSP_AUTH (0x00000003)
    0x00, //  NTLM Message Type: NTLMSSP_AUTH (0x00000003)
    0x00, //  NTLM Message Type: NTLMSSP_AUTH (0x00000003)
    0x00, //  LmChallengeResponse (length 24, allocated: 24, offset 146)
    0x18, //  LmChallengeResponse (length 24, allocated: 24, offset 146)
    0x00, //  LmChallengeResponse (length 24, allocated: 24, offset 146)
    0x18, //  LmChallengeResponse (length 24, allocated: 24, offset 146)
    0x00, //  LmChallengeResponse (length 24, allocated: 24, offset 146)
    (byte) 0x92, //  LmChallengeResponse (length 24, allocated: 24, offset 146)
    0x00, //  LmChallengeResponse (length 24, allocated: 24, offset 146)
    0x00, //  LmChallengeResponse (length 24, allocated: 24, offset 146)
    0x00, //  NtChallengeResponse (length 282, allocated: 282, offset 170)
    0x1a, //  NtChallengeResponse (length 282, allocated: 282, offset 170)
    0x01, //  NtChallengeResponse (length 282, allocated: 282, offset 170)
    0x1a, //  NtChallengeResponse (length 282, allocated: 282, offset 170)
    0x01, //  NtChallengeResponse (length 282, allocated: 282, offset 170)
    (byte) 0xaa, //  NtChallengeResponse (length 282, allocated: 282, offset 170)
    0x00, //  NtChallengeResponse (length 282, allocated: 282, offset 170)
    0x00, //  NtChallengeResponse (length 282, allocated: 282, offset 170)
    0x00, // DomainName (length 18, allocated: 88, offset 88)
    0x12, // DomainName (length 18, allocated: 88, offset 88)
    0x00, // DomainName (length 18, allocated: 88, offset 88)
    0x12, // DomainName (length 18, allocated: 88, offset 88)
    0x00, // DomainName (length 18, allocated: 88, offset 88)
    0x58, // DomainName (length 18, allocated: 88, offset 88)
    0x00, // DomainName (length 18, allocated: 88, offset 88)
    0x00, // DomainName (length 18, allocated: 88, offset 88)
    0x00, // UserName (length 26, allocated:26, offset 106)
    0x1a, // UserName (length 26, allocated:26, offset 106)
    0x00, // UserName (length 26, allocated:26, offset 106)
    0x1a, // UserName (length 26, allocated:26, offset 106)
    0x00, // UserName (length 26, allocated:26, offset 106)
    0x6a, // UserName (length 26, allocated:26, offset 106)
    0x00, // UserName (length 26, allocated:26, offset 106)
    0x00, // UserName (length 26, allocated:26, offset 106)
    0x00, // Workstation (length 14, offset 132)
    0x0e, // Workstation (length 14, offset 132)
    0x00, // Workstation (length 14, offset 132)
    0x0e, // Workstation (length 14, offset 132)
    0x00, // Workstation (length 14, offset 132)
    (byte) 0x84, // Workstation (length 14, offset 132)
    0x00, // Workstation (length 14, offset 132)
    0x00, // Workstation (length 14, offset 132)
    0x00, // EncryptedRandomSessionKey (length 16, offset 452)
    0x10, // EncryptedRandomSessionKey (length 16, offset 452)
    0x00, // EncryptedRandomSessionKey (length 16, offset 452)
    0x10, // EncryptedRandomSessionKey (length 16, offset 452)
    0x00, // EncryptedRandomSessionKey (length 16, offset 452)
    (byte) 0xc4, // EncryptedRandomSessionKey (length 16, offset 452)
    0x01, // EncryptedRandomSessionKey (length 16, offset 452)
    0x00, // EncryptedRandomSessionKey (length 16, offset 452)
    0x00, // NegotiateFlags
    0x35, // NegotiateFlags
    (byte) 0xb2, // NegotiateFlags
    (byte) 0x88, // NegotiateFlags
    (byte) 0xe2, //  Version (6.1, Build 7601), NTLM current revision: 15
    0x06, //  Version (6.1, Build 7601), NTLM current revision: 15
    0x01, //  Version (6.1, Build 7601), NTLM current revision: 15
    (byte) 0xb1, //  Version (6.1, Build 7601), NTLM current revision: 15
    0x1d, //  Version (6.1, Build 7601), NTLM current revision: 15
    0x00, //  Version (6.1, Build 7601), NTLM current revision: 15
    0x00, //  Version (6.1, Build 7601), NTLM current revision: 15
    0x00, //  Version (6.1, Build 7601), NTLM current revision: 15
    0x0f, // Message integrity check
    (byte) 0x8c, // Message integrity check
    (byte) 0x69, // Message integrity check
    (byte) 0x53, // Message integrity check
    (byte) 0x1c, // Message integrity check
    (byte) 0xbb, // Message integrity check
    (byte) 0x6f, // Message integrity check
    (byte) 0xfb, // Message integrity check
    (byte) 0x9a, // Message integrity check
    (byte) 0x5d, // Message integrity check
    (byte) 0x2c, // Message integrity check
    (byte) 0x63, // Message integrity check
    (byte) 0xf2, // Message integrity check
    (byte) 0xc9, // Message integrity check
    (byte) 0x51, // Message integrity check
    (byte) 0xc5, // Message integrity check
    (byte) 0x11, // Domain name value: "Workgroup"
    0x77, // Domain name value: "Workgroup"
    0x00, // Domain name value: "Workgroup"
    0x6f, // Domain name value: "Workgroup"
    0x00, // Domain name value: "Workgroup"
    0x72, // Domain name value: "Workgroup"
    0x00, // Domain name value: "Workgroup"
    0x6b, // Domain name value: "Workgroup"
    0x00, // Domain name value: "Workgroup"
    0x67, // Domain name value: "Workgroup"
    0x00, // Domain name value: "Workgroup"
    0x72, // Domain name value: "Workgroup"
    0x00, // Domain name value: "Workgroup"
    0x6f, // Domain name value: "Workgroup"
    0x00, // Domain name value: "Workgroup"
    0x75, // Domain name value: "Workgroup"
    0x00, // Domain name value: "Workgroup"
    0x70, // Domain name value: "Workgroup"
    0x00, // User name value: "Administrator"
    0x41, // User name value: "Administrator"
    0x00, // User name value: "Administrator"
    0x64, // User name value: "Administrator"
    0x00, // User name value: "Administrator"
    0x6d, // User name value: "Administrator"
    0x00, // User name value: "Administrator"
    0x69, // User name value: "Administrator"
    0x00, // User name value: "Administrator"
    0x6e, // User name value: "Administrator"
    0x00, // User name value: "Administrator"
    0x69, // User name value: "Administrator"
    0x00, // User name value: "Administrator"
    0x73, // User name value: "Administrator"
    0x00, // User name value: "Administrator"
    0x74, // User name value: "Administrator"
    0x00, // User name value: "Administrator"
    0x72, // User name value: "Administrator"
    0x00, // User name value: "Administrator"
    0x61, // User name value: "Administrator"
    0x00, // User name value: "Administrator"
    0x74, // User name value: "Administrator"
    0x00, // User name value: "Administrator"
    0x6f, // User name value: "Administrator"
    0x00, // User name value: "Administrator"
    0x72, // User name value: "Administrator"
    0x00, //  Workstation host name value: "apollo3"
    0x61, //  Workstation host name value: "apollo3"
    0x00, //  Workstation host name value: "apollo3"
    0x70, //  Workstation host name value: "apollo3"
    0x00, //  Workstation host name value: "apollo3"
    0x6f, //  Workstation host name value: "apollo3"
    0x00, //  Workstation host name value: "apollo3"
    0x6c, //  Workstation host name value: "apollo3"
    0x00, //  Workstation host name value: "apollo3"
    0x6c, //  Workstation host name value: "apollo3"
    0x00, //  Workstation host name value: "apollo3"
    0x6f, //  Workstation host name value: "apollo3"
    0x00, //  Workstation host name value: "apollo3"
    0x33, //  Workstation host name value: "apollo3"
    0x00, // Response: HMAC_MD(ResponseKeyLM, concatenate(ServerChallenge, ClientChallenge), where ResponseKeyLM=ntlmv2Hash(target, user, password)
    (byte) 0x17, (byte) 0x9b, (byte) 0x7d, (byte) 0x7b, (byte) 0x2f, (byte) 0x79, (byte) 0x9f, (byte) 0x19, (byte) 0xa0, (byte) 0x4b, (byte) 0x00, (byte) 0xed, (byte) 0x2b, (byte) 0x39, (byte) 0xbb, (byte) 0x23, // Client challenge (fixed for debugging)
    (byte) 0x01, (byte) 0x02, (byte) 0x03, (byte) 0x04, (byte) 0x05, (byte) 0x06, (byte) 0x07, (byte) 0x08, //  HMAC
    (byte) 0x49, //  HMAC
    (byte) 0xea, //  HMAC
    (byte) 0x27, //  HMAC
    (byte) 0x4f, //  HMAC
    (byte) 0xcc, //  HMAC
    (byte) 0x05, //  HMAC
    (byte) 0x8b, //  HMAC
    (byte) 0x79, //  HMAC
    (byte) 0x20, //  HMAC
    (byte) 0x0b, //  HMAC
    (byte) 0x08, //  HMAC
    (byte) 0x42, //  HMAC
    (byte) 0xa9, //  HMAC
    (byte) 0xc8, //  HMAC
    (byte) 0x0e, //  HMAC
    (byte) 0xc7, // Header: 0x00000101 (LE)
    0x01, // Header: 0x00000101 (LE)
    0x01, // Header: 0x00000101 (LE)
    0x00, // Header: 0x00000101 (LE)
    0x00, // Reserved: 0x00000000
    0x00, // Reserved: 0x00000000
    0x00, // Reserved: 0x00000000
    0x00, // Reserved: 0x00000000
    0x00, // Time: Oct 10, 2013 23:36:20.056937300 EEST
    (byte) 0x1d, // Time: Oct 10, 2013 23:36:20.056937300 EEST
    (byte) 0xea, // Time: Oct 10, 2013 23:36:20.056937300 EEST
    (byte) 0x6b, // Time: Oct 10, 2013 23:36:20.056937300 EEST
    (byte) 0x60, // Time: Oct 10, 2013 23:36:20.056937300 EEST
    (byte) 0xf8, // Time: Oct 10, 2013 23:36:20.056937300 EEST
    (byte) 0xc5, // Time: Oct 10, 2013 23:36:20.056937300 EEST
    (byte) 0xce, // Time: Oct 10, 2013 23:36:20.056937300 EEST
    (byte) 0x01, // Client challenge (fixed)
    (byte) 0x01, // Client challenge (fixed)
    (byte) 0x02, // Client challenge (fixed)
    (byte) 0x03, // Client challenge (fixed)
    (byte) 0x04, // Client challenge (fixed)
    (byte) 0x05, // Client challenge (fixed)
    (byte) 0x06, // Client challenge (fixed)
    (byte) 0x07, // Client challenge (fixed)
    (byte) 0x08, //  Reserved
    0x00, //  Reserved
    0x00, //  Reserved
    0x00, //  Reserved
    0x00, // Item Type: NetBIOS domain name (0x0002, LE)
    0x02, // Item Type: NetBIOS domain name (0x0002, LE)
    0x00, //  Item Length: 30 (LE)
    0x1e, //  Item Length: 30 (LE)
    0x00, //  "WIN-LO419B2LSR0 "
    0x57, //  "WIN-LO419B2LSR0 "
    0x00, //  "WIN-LO419B2LSR0 "
    0x49, //  "WIN-LO419B2LSR0 "
    0x00, //  "WIN-LO419B2LSR0 "
    0x4e, //  "WIN-LO419B2LSR0 "
    0x00, //  "WIN-LO419B2LSR0 "
    0x2d, //  "WIN-LO419B2LSR0 "
    0x00, //  "WIN-LO419B2LSR0 "
    0x4c, //  "WIN-LO419B2LSR0 "
    0x00, //  "WIN-LO419B2LSR0 "
    0x4f, //  "WIN-LO419B2LSR0 "
    0x00, //  "WIN-LO419B2LSR0 "
    0x34, //  "WIN-LO419B2LSR0 "
    0x00, //  "WIN-LO419B2LSR0 "
    0x31, //  "WIN-LO419B2LSR0 "
    0x00, //  "WIN-LO419B2LSR0 "
    0x39, //  "WIN-LO419B2LSR0 "
    0x00, //  "WIN-LO419B2LSR0 "
    0x42, //  "WIN-LO419B2LSR0 "
    0x00, //  "WIN-LO419B2LSR0 "
    0x32, //  "WIN-LO419B2LSR0 "
    0x00, //  "WIN-LO419B2LSR0 "
    0x4c, //  "WIN-LO419B2LSR0 "
    0x00, //  "WIN-LO419B2LSR0 "
    0x53, //  "WIN-LO419B2LSR0 "
    0x00, //  "WIN-LO419B2LSR0 "
    0x52, //  "WIN-LO419B2LSR0 "
    0x00, //  "WIN-LO419B2LSR0 "
    0x30, //  "WIN-LO419B2LSR0 "
    0x00, //  Item Type: NetBIOS computer name (0x0001, LE)
    0x01, //  Item Type: NetBIOS computer name (0x0001, LE)
    0x00, // Item Length: 30 (LE)
    0x1e, // Item Length: 30 (LE)
    0x00, //  "WIN-LO419B2LSR0 "
    0x57, //  "WIN-LO419B2LSR0 "
    0x00, //  "WIN-LO419B2LSR0 "
    0x49, //  "WIN-LO419B2LSR0 "
    0x00, //  "WIN-LO419B2LSR0 "
    0x4e, //  "WIN-LO419B2LSR0 "
    0x00, //  "WIN-LO419B2LSR0 "
    0x2d, //  "WIN-LO419B2LSR0 "
    0x00, //  "WIN-LO419B2LSR0 "
    0x4c, //  "WIN-LO419B2LSR0 "
    0x00, //  "WIN-LO419B2LSR0 "
    0x4f, //  "WIN-LO419B2LSR0 "
    0x00, //  "WIN-LO419B2LSR0 "
    0x34, //  "WIN-LO419B2LSR0 "
    0x00, //  "WIN-LO419B2LSR0 "
    0x31, //  "WIN-LO419B2LSR0 "
    0x00, //  "WIN-LO419B2LSR0 "
    0x39, //  "WIN-LO419B2LSR0 "
    0x00, //  "WIN-LO419B2LSR0 "
    0x42, //  "WIN-LO419B2LSR0 "
    0x00, //  "WIN-LO419B2LSR0 "
    0x32, //  "WIN-LO419B2LSR0 "
    0x00, //  "WIN-LO419B2LSR0 "
    0x4c, //  "WIN-LO419B2LSR0 "
    0x00, //  "WIN-LO419B2LSR0 "
    0x53, //  "WIN-LO419B2LSR0 "
    0x00, //  "WIN-LO419B2LSR0 "
    0x52, //  "WIN-LO419B2LSR0 "
    0x00, //  "WIN-LO419B2LSR0 "
    0x30, //  "WIN-LO419B2LSR0 "
    0x00, // Item Type: DNS domain name (0x0004, LE)
    0x04, // Item Type: DNS domain name (0x0004, LE)
    0x00, // Item Length: 30 (LE)
    0x1e, // Item Length: 30 (LE)
    0x00, //  "WIN-LO419B2LSR0 "
    0x57, //  "WIN-LO419B2LSR0 "
    0x00, //  "WIN-LO419B2LSR0 "
    0x49, //  "WIN-LO419B2LSR0 "
    0x00, //  "WIN-LO419B2LSR0 "
    0x4e, //  "WIN-LO419B2LSR0 "
    0x00, //  "WIN-LO419B2LSR0 "
    0x2d, //  "WIN-LO419B2LSR0 "
    0x00, //  "WIN-LO419B2LSR0 "
    0x4c, //  "WIN-LO419B2LSR0 "
    0x00, //  "WIN-LO419B2LSR0 "
    0x4f, //  "WIN-LO419B2LSR0 "
    0x00, //  "WIN-LO419B2LSR0 "
    0x34, //  "WIN-LO419B2LSR0 "
    0x00, //  "WIN-LO419B2LSR0 "
    0x31, //  "WIN-LO419B2LSR0 "
    0x00, //  "WIN-LO419B2LSR0 "
    0x39, //  "WIN-LO419B2LSR0 "
    0x00, //  "WIN-LO419B2LSR0 "
    0x42, //  "WIN-LO419B2LSR0 "
    0x00, //  "WIN-LO419B2LSR0 "
    0x32, //  "WIN-LO419B2LSR0 "
    0x00, //  "WIN-LO419B2LSR0 "
    0x4c, //  "WIN-LO419B2LSR0 "
    0x00, //  "WIN-LO419B2LSR0 "
    0x53, //  "WIN-LO419B2LSR0 "
    0x00, //  "WIN-LO419B2LSR0 "
    0x52, //  "WIN-LO419B2LSR0 "
    0x00, //  "WIN-LO419B2LSR0 "
    0x30, //  "WIN-LO419B2LSR0 "
    0x00, // Item Type: DNS computer name (0x0003, LE)
    0x03, // Item Type: DNS computer name (0x0003, LE)
    0x00, // Item Length: 30 (LE)
    0x1e, // Item Length: 30 (LE)
    0x00, //  "WIN-LO419B2LSR0 "
    0x57, //  "WIN-LO419B2LSR0 "
    0x00, //  "WIN-LO419B2LSR0 "
    0x49, //  "WIN-LO419B2LSR0 "
    0x00, //  "WIN-LO419B2LSR0 "
    0x4e, //  "WIN-LO419B2LSR0 "
    0x00, //  "WIN-LO419B2LSR0 "
    0x2d, //  "WIN-LO419B2LSR0 "
    0x00, //  "WIN-LO419B2LSR0 "
    0x4c, //  "WIN-LO419B2LSR0 "
    0x00, //  "WIN-LO419B2LSR0 "
    0x4f, //  "WIN-LO419B2LSR0 "
    0x00, //  "WIN-LO419B2LSR0 "
    0x34, //  "WIN-LO419B2LSR0 "
    0x00, //  "WIN-LO419B2LSR0 "
    0x31, //  "WIN-LO419B2LSR0 "
    0x00, //  "WIN-LO419B2LSR0 "
    0x39, //  "WIN-LO419B2LSR0 "
    0x00, //  "WIN-LO419B2LSR0 "
    0x42, //  "WIN-LO419B2LSR0 "
    0x00, //  "WIN-LO419B2LSR0 "
    0x32, //  "WIN-LO419B2LSR0 "
    0x00, //  "WIN-LO419B2LSR0 "
    0x4c, //  "WIN-LO419B2LSR0 "
    0x00, //  "WIN-LO419B2LSR0 "
    0x53, //  "WIN-LO419B2LSR0 "
    0x00, //  "WIN-LO419B2LSR0 "
    0x52, //  "WIN-LO419B2LSR0 "
    0x00, //  "WIN-LO419B2LSR0 "
    0x30, //  "WIN-LO419B2LSR0 "
    0x00, // Item Type: Timestamp (0x0007, LE)
    0x07, // Item Type: Timestamp (0x0007, LE)
    0x00, // Item Length: 8 (LE)
    0x08, // Item Length: 8 (LE)
    0x00, // Timestamp: Oct 10, 2013 23:36:20.056937300 EEST
    (byte) 0x1d, // Timestamp: Oct 10, 2013 23:36:20.056937300 EEST
    (byte) 0xea, // Timestamp: Oct 10, 2013 23:36:20.056937300 EEST
    (byte) 0x6b, // Timestamp: Oct 10, 2013 23:36:20.056937300 EEST
    (byte) 0x60, // Timestamp: Oct 10, 2013 23:36:20.056937300 EEST
    (byte) 0xf8, // Timestamp: Oct 10, 2013 23:36:20.056937300 EEST
    (byte) 0xc5, // Timestamp: Oct 10, 2013 23:36:20.056937300 EEST
    (byte) 0xce, // Timestamp: Oct 10, 2013 23:36:20.056937300 EEST
    (byte) 0x01, // Item Type: Flags (0x0006, LE)
    0x06, // Item Type: Flags (0x0006, LE)
    0x00, // Item Length: 4 (LE)
    0x04, // Item Length: 4 (LE)
    0x00, // Flags: 0x00000002
    0x02, // Flags: 0x00000002
    0x00, // Flags: 0x00000002
    0x00, // Flags: 0x00000002
    0x00, // Item Type: Channel Bindings (0x000a, LE)
    0x0a, // Item Type: Channel Bindings (0x000a, LE)
    0x00, // Item Length: 16 (LE)
    0x10, // Item Length: 16 (LE)
    0x00, // Channel Bindings: 00000000000000000000000000000000
    0x00, // Channel Bindings: 00000000000000000000000000000000
    0x00, // Channel Bindings: 00000000000000000000000000000000
    0x00, // Channel Bindings: 00000000000000000000000000000000
    0x00, // Channel Bindings: 00000000000000000000000000000000
    0x00, // Channel Bindings: 00000000000000000000000000000000
    0x00, // Channel Bindings: 00000000000000000000000000000000
    0x00, // Channel Bindings: 00000000000000000000000000000000
    0x00, // Channel Bindings: 00000000000000000000000000000000
    0x00, // Channel Bindings: 00000000000000000000000000000000
    0x00, // Channel Bindings: 00000000000000000000000000000000
    0x00, // Channel Bindings: 00000000000000000000000000000000
    0x00, // Channel Bindings: 00000000000000000000000000000000
    0x00, // Channel Bindings: 00000000000000000000000000000000
    0x00, // Channel Bindings: 00000000000000000000000000000000
    0x00, // Channel Bindings: 00000000000000000000000000000000
    0x00, // Item Type: Target Name (0x0009, LE)
    0x09, // Item Type: Target Name (0x0009, LE)
    0x00, // Item Length: 42 (LE)
    0x2a, // Item Length: 42 (LE)
    0x00, // Target Name: "TERMSRV/192.168.0.101" (UTF-16)
    0x54, // Target Name: "TERMSRV/192.168.0.101" (UTF-16)
    0x00, // Target Name: "TERMSRV/192.168.0.101" (UTF-16)
    0x45, // Target Name: "TERMSRV/192.168.0.101" (UTF-16)
    0x00, // Target Name: "TERMSRV/192.168.0.101" (UTF-16)
    0x52, // Target Name: "TERMSRV/192.168.0.101" (UTF-16)
    0x00, // Target Name: "TERMSRV/192.168.0.101" (UTF-16)
    0x4d, // Target Name: "TERMSRV/192.168.0.101" (UTF-16)
    0x00, // Target Name: "TERMSRV/192.168.0.101" (UTF-16)
    0x53, // Target Name: "TERMSRV/192.168.0.101" (UTF-16)
    0x00, // Target Name: "TERMSRV/192.168.0.101" (UTF-16)
    0x52, // Target Name: "TERMSRV/192.168.0.101" (UTF-16)
    0x00, // Target Name: "TERMSRV/192.168.0.101" (UTF-16)
    0x56, // Target Name: "TERMSRV/192.168.0.101" (UTF-16)
    0x00, // Target Name: "TERMSRV/192.168.0.101" (UTF-16)
    0x2f, // Target Name: "TERMSRV/192.168.0.101" (UTF-16)
    0x00, // Target Name: "TERMSRV/192.168.0.101" (UTF-16)
    0x31, // Target Name: "TERMSRV/192.168.0.101" (UTF-16)
    0x00, // Target Name: "TERMSRV/192.168.0.101" (UTF-16)
    0x39, // Target Name: "TERMSRV/192.168.0.101" (UTF-16)
    0x00, // Target Name: "TERMSRV/192.168.0.101" (UTF-16)
    0x32, // Target Name: "TERMSRV/192.168.0.101" (UTF-16)
    0x00, // Target Name: "TERMSRV/192.168.0.101" (UTF-16)
    0x2e, // Target Name: "TERMSRV/192.168.0.101" (UTF-16)
    0x00, // Target Name: "TERMSRV/192.168.0.101" (UTF-16)
    0x31, // Target Name: "TERMSRV/192.168.0.101" (UTF-16)
    0x00, // Target Name: "TERMSRV/192.168.0.101" (UTF-16)
    0x36, // Target Name: "TERMSRV/192.168.0.101" (UTF-16)
    0x00, // Target Name: "TERMSRV/192.168.0.101" (UTF-16)
    0x38, // Target Name: "TERMSRV/192.168.0.101" (UTF-16)
    0x00, // Target Name: "TERMSRV/192.168.0.101" (UTF-16)
    0x2e, // Target Name: "TERMSRV/192.168.0.101" (UTF-16)
    0x00, // Target Name: "TERMSRV/192.168.0.101" (UTF-16)
    0x30, // Target Name: "TERMSRV/192.168.0.101" (UTF-16)
    0x00, // Target Name: "TERMSRV/192.168.0.101" (UTF-16)
    0x2e, // Target Name: "TERMSRV/192.168.0.101" (UTF-16)
    0x00, // Target Name: "TERMSRV/192.168.0.101" (UTF-16)
    0x31, // Target Name: "TERMSRV/192.168.0.101" (UTF-16)
    0x00, // Target Name: "TERMSRV/192.168.0.101" (UTF-16)
    0x30, // Target Name: "TERMSRV/192.168.0.101" (UTF-16)
    0x00, // Target Name: "TERMSRV/192.168.0.101" (UTF-16)
    0x31, // Target Name: "TERMSRV/192.168.0.101" (UTF-16)
    0x00, //
    0x00, //
    0x00, //
    0x00, //
    0x00, //
    0x00, //
    0x00, //
    0x00, //
    0x00, //
    0x00, //
    0x00, //
    0x00, //
    0x00, //
    0x00, //
    0x00, //
    0x00, //
    0x00, // 2c 24 da 10 17 cf 40 69 35 49 6f 58 e1 29 9e 79
    (byte) 0x2c, (byte) 0x24, (byte) 0xda, (byte) 0x10, (byte) 0x17, (byte) 0xcf, (byte) 0x40, (byte) 0x69, (byte) 0x35, (byte) 0x49, (byte) 0x6f, (byte) 0x58, (byte) 0xe1, (byte) 0x29, (byte) 0x9e, (byte) 0x79, // TAG: [3] (constructed) LEN: 290 bytes
    (byte) 0xa3, // TAG: [3] (constructed) LEN: 290 bytes
    (byte) 0x82, // TAG: [3] (constructed) LEN: 290 bytes
    0x01, // TAG: [3] (constructed) LEN: 290 bytes
    0x22, // TAG: [UNIVERSAL 4] (primitive) "OCTET STRING" LEN: 286 bytes
    0x04, // TAG: [UNIVERSAL 4] (primitive) "OCTET STRING" LEN: 286 bytes
    (byte) 0x82, // TAG: [UNIVERSAL 4] (primitive) "OCTET STRING" LEN: 286 bytes
    0x01, // TAG: [UNIVERSAL 4] (primitive) "OCTET STRING" LEN: 286 bytes
    0x1e, // Version: 0x00000001
    (byte) 0x01, (byte) 0x00, (byte) 0x00, (byte) 0x00, // Checksum (8 bytes): An 8-byte array that contains the checksum for the message.
    (byte) 0x72, (byte) 0x76, (byte) 0x1e, (byte) 0x57, (byte) 0x49, (byte) 0xb5, (byte) 0x0f, (byte) 0xad, // seqNum of the message: 0
    (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, // Encrypted public key
    (byte) 0x15, (byte) 0xf7, (byte) 0xf2, (byte) 0x54, (byte) 0xda, (byte) 0xa9, (byte) 0xe5, (byte) 0xad, (byte) 0x85, (byte) 0x04, (byte) 0x67, (byte) 0x4d, (byte) 0x0b, (byte) 0xcb, (byte) 0xf9, (byte) 0xb1, (byte) 0xf8, (byte) 0x02, (byte) 0x8a, (byte) 0x77, (byte) 0xc2, (byte) 0x63, (byte) 0xab, (byte) 0xd5, (byte) 0x74, (byte) 0x23, (byte) 0x9f, (byte) 0x9d, (byte) 0x5d, (byte) 0x1f, (byte) 0xd3, (byte) 0xb3, (byte) 0xa0, (byte) 0xac, (byte) 0x16, (byte) 0x8a, (byte) 0x4b, (byte) 0x08, (byte) 0xf5, (byte) 0x47, (byte) 0x70, (byte) 0x58, (byte) 0x10, (byte) 0xb4, (byte) 0xe7, (byte) 0x87, (byte) 0xb3, (byte) 0x4b, (byte) 0xc9, (byte) 0xa2, (byte) 0xd5, (byte) 0xd1, (byte) 0xca, (byte) 0x0f, (byte) 0xd4, (byte) 0xe3, (byte) 0x8d, (byte) 0x76, (byte) 0x5a, (byte) 0x60, (byte) 0x28, (byte) 0xf8, (byte) 0x06, (byte) 0x5d, (byte) 0xe4, (byte) 0x7e, (byte) 0x21, (byte) 0xc8, (byte) 0xbb, (byte) 0xac, (byte) 0xe5, (byte) 0x79, (byte) 0x85, (byte) 0x30, (byte) 0x9b, (byte) 0x88, (byte) 0x13, (byte) 0x2f, (byte) 0x8f, (byte) 0xfc, (byte) 0x04, (byte) 0x52, (byte) 0xfe, (byte) 0x87, (byte) 0x94, (byte) 0xcf, (byte) 0xcb, (byte) 0x49, (byte) 0x4a, (byte) 0xda, (byte) 0x6f, (byte) 0xdd, (byte) 0xee, (byte) 0x57, (byte) 0xa5, (byte) 0xe4, (byte) 0x4d, (byte) 0x0e, (byte) 0x5c, (byte) 0x3d, (byte) 0x0b, (byte) 0x63, (byte) 0x1f, (byte) 0xf6, (byte) 0x3d, (byte) 0x1b, (byte) 0xae, (byte) 0x5a, (byte) 0xf6, (byte) 0x42, (byte) 0x2a, (byte) 0x46, (byte) 0xfa, (byte) 0x42, (byte) 0x71, (byte) 0x67, (byte) 0x46, (byte) 0x02, (byte) 0x71, (byte) 0xea, (byte) 0x51, (byte) 0x98, (byte) 0xf7, (byte) 0xd4, (byte) 0x43, (byte) 0xbf, (byte) 0x8e, (byte) 0xe8, (byte) 0x3c, (byte) 0xc8, (byte) 0xfa, (byte) 0x79, (byte) 0x9d, (byte) 0x8c, (byte) 0xfc, (byte) 0xc2, (byte) 0x42, (byte) 0xc9, (byte) 0xbb, (byte) 0xd0, (byte) 0xab, (byte) 0x81, (byte) 0xc4, (byte) 0x53, (byte) 0xfd, (byte) 0x41, (byte) 0xda, (byte) 0xab, (byte) 0x0f, (byte) 0x25, (byte) 0x79, (byte) 0x5f, (byte) 0xbd, (byte) 0xa3, (byte) 0x8c, (byte) 0xd3, (byte) 0xf5, (byte) 0x1b, (byte) 0xab, (byte) 0x20, (byte) 0xd1, (byte) 0xf4, (byte) 0xd8, (byte) 0x81, (byte) 0x9c, (byte) 0x18, (byte) 0x4a, (byte) 0xa4, (byte) 0x77, (byte) 0xee, (byte) 0xe1, (byte) 0x51, (byte) 0xee, (byte) 0x2a, (byte) 0xc1, (byte) 0x94, (byte) 0x37, (byte) 0xc5, (byte) 0x06, (byte) 0x7a, (byte) 0x3f, (byte) 0x0f, (byte) 0x25, (byte) 0x5b, (byte) 0x4e, (byte) 0x6a, (byte) 0xdc, (byte) 0x0b, (byte) 0x62, (byte) 0x6f, (byte) 0x12, (byte) 0x83, (byte) 0x03, (byte) 0xae, (byte) 0x4e, (byte) 0xce, (byte) 0x2b, (byte) 0x6e, (byte) 0xd4, (byte) 0xd5, (byte) 0x23, (byte) 0x27, (byte) 0xf6, (byte) 0xa6, (byte) 0x38, (byte) 0x67, (byte) 0xec, (byte) 0x95, (byte) 0x82, (byte) 0xc6, (byte) 0xba, (byte) 0xd4, (byte) 0xf6, (byte) 0xe6, (byte) 0x22, (byte) 0x7d, (byte) 0xb9, (byte) 0xe4, (byte) 0x81, (byte) 0x97, (byte) 0x24, (byte) 0xff, (byte) 0x40, (byte) 0xb2, (byte) 0x42, (byte) 0x3c, (byte) 0x11, (byte) 0x24, (byte) 0xd0, (byte) 0x3a, (byte) 0x96, (byte) 0xd9, (byte) 0xc1, (byte) 0x13, (byte) 0xd6, (byte) 0x62, (byte) 0x45, (byte) 0x21, (byte) 0x60, (byte) 0x5b, (byte) 0x7b, (byte) 0x2b, (byte) 0x62, (byte) 0x44, (byte) 0xf7, (byte) 0x40, (byte) 0x93, (byte) 0x29, (byte) 0x5b, (byte) 0x44, (byte) 0xb7, (byte) 0xda, (byte) 0x9c, (byte) 0xa6, (byte) 0xa9, (byte) 0x3b, (byte) 0xe1, (byte) 0x3b, (byte) 0x9d, (byte) 0x31, (byte) 0xf2, (byte) 0x21, (byte) 0x53, (byte) 0x0f, (byte) 0xb3, (byte) 0x70, (byte) 0x55, (byte) 0x84, (byte) 0x2c, (byte) 0xb4 };
    SSLState sslState = new SSLState();
    sslState.serverCertificateSubjectPublicKeyInfo = new byte[] { // Sequence, length: 290 bytes
    0x30, // Sequence, length: 290 bytes
    (byte) 0x82, // Sequence, length: 290 bytes
    0x01, // Sequence, length: 290 bytes
    0x22, // Sequence, length: 13 bytes {
    0x30, // Sequence, length: 13 bytes {
    0x0d, // Object ID, length: 9 bytes
    0x06, // Object ID, length: 9 bytes
    0x09, 0x2a, (byte) 0x86, 0x48, (byte) 0x86, (byte) 0xf7, 0x0d, 0x01, 0x01, 0x01, // NULL, length: 0 bytes
    0x05, // NULL, length: 0 bytes
    0x00, // Bit string, length: 271 bytes
    (byte) 0x03, // Bit string, length: 271 bytes
    (byte) 0x82, // Bit string, length: 271 bytes
    (byte) 0x01, // Bit string, length: 271 bytes
    (byte) 0x0f, // Pading
    (byte) 0x00, // Sequence
    (byte) 0x30, // Sequence
    (byte) 0x82, // Sequence
    (byte) 0x01, // Sequence
    (byte) 0x0a, // Integer, length: 257 bytes
    (byte) 0x02, // Integer, length: 257 bytes
    (byte) 0x82, // Integer, length: 257 bytes
    (byte) 0x01, // Integer, length: 257 bytes
    (byte) 0x01, (byte) 0x00, (byte) 0xa8, (byte) 0x56, (byte) 0x65, (byte) 0xd3, (byte) 0xce, (byte) 0x8a, (byte) 0x54, (byte) 0x4d, (byte) 0x9d, (byte) 0xb0, (byte) 0x84, (byte) 0x31, (byte) 0x19, (byte) 0x71, (byte) 0x7f, (byte) 0xdd, (byte) 0x42, (byte) 0xfb, (byte) 0x2a, (byte) 0x7a, (byte) 0x72, (byte) 0x13, (byte) 0xa1, (byte) 0xb9, (byte) 0x72, (byte) 0xbb, (byte) 0xd3, (byte) 0x08, (byte) 0xad, (byte) 0x7d, (byte) 0x6c, (byte) 0x15, (byte) 0x65, (byte) 0x03, (byte) 0xd1, (byte) 0xc4, (byte) 0x54, (byte) 0xc5, (byte) 0x33, (byte) 0x6b, (byte) 0x7d, (byte) 0x69, (byte) 0x89, (byte) 0x5e, (byte) 0xfe, (byte) 0xe0, (byte) 0x01, (byte) 0xc0, (byte) 0x7e, (byte) 0x9b, (byte) 0xcb, (byte) 0x5d, (byte) 0x65, (byte) 0x36, (byte) 0xcd, (byte) 0x77, (byte) 0x5d, (byte) 0xf3, (byte) 0x7a, (byte) 0x5b, (byte) 0x29, (byte) 0x44, (byte) 0x72, (byte) 0xd5, (byte) 0x38, (byte) 0xe2, (byte) 0xcf, (byte) 0xb1, (byte) 0xc7, (byte) 0x78, (byte) 0x9b, (byte) 0x58, (byte) 0xb9, (byte) 0x17, (byte) 0x7c, (byte) 0xb7, (byte) 0xd6, (byte) 0xc7, (byte) 0xc7, (byte) 0xbf, (byte) 0x90, (byte) 0x4e, (byte) 0x7c, (byte) 0x39, (byte) 0x93, (byte) 0xcb, (byte) 0x2e, (byte) 0xe0, (byte) 0xc2, (byte) 0x33, (byte) 0x2d, (byte) 0xa5, (byte) 0x7e, (byte) 0xe0, (byte) 0x7b, (byte) 0xb6, (byte) 0xf9, (byte) 0x91, (byte) 0x32, (byte) 0xb7, (byte) 0xd4, (byte) 0x85, (byte) 0xb7, (byte) 0x35, (byte) 0x2d, (byte) 0x2b, (byte) 0x00, (byte) 0x6d, (byte) 0xf8, (byte) 0xea, (byte) 0x8c, (byte) 0x97, (byte) 0x5f, (byte) 0x51, (byte) 0x1d, (byte) 0x68, (byte) 0x04, (byte) 0x3c, (byte) 0x79, (byte) 0x14, (byte) 0x71, (byte) 0xa7, (byte) 0xc7, (byte) 0xd7, (byte) 0x70, (byte) 0x7a, (byte) 0xe0, (byte) 0xba, (byte) 0x12, (byte) 0x69, (byte) 0xc8, (byte) 0xd3, (byte) 0xd9, (byte) 0x4e, (byte) 0xab, (byte) 0x51, (byte) 0x47, (byte) 0xa3, (byte) 0xec, (byte) 0x99, (byte) 0xd4, (byte) 0x88, (byte) 0xca, (byte) 0xda, (byte) 0xc2, (byte) 0x7f, (byte) 0x79, (byte) 0x4b, (byte) 0x66, (byte) 0xed, (byte) 0x87, (byte) 0xbe, (byte) 0xc2, (byte) 0x5f, (byte) 0xea, (byte) 0xcf, (byte) 0xe1, (byte) 0xb5, (byte) 0xf0, (byte) 0x3d, (byte) 0x9b, (byte) 0xf2, (byte) 0x19, (byte) 0xc3, (byte) 0xe0, (byte) 0xe1, (byte) 0x7a, (byte) 0x45, (byte) 0x71, (byte) 0x12, (byte) 0x3d, (byte) 0x72, (byte) 0x1d, (byte) 0x6f, (byte) 0x2b, (byte) 0x1c, (byte) 0x46, (byte) 0x68, (byte) 0xc0, (byte) 0x8f, (byte) 0x4f, (byte) 0xce, (byte) 0x3a, (byte) 0xc5, (byte) 0xcd, (byte) 0x22, (byte) 0x65, (byte) 0x2d, (byte) 0x43, (byte) 0xb0, (byte) 0x5c, (byte) 0xdd, (byte) 0x89, (byte) 0xae, (byte) 0xbe, (byte) 0x70, (byte) 0x59, (byte) 0x5e, (byte) 0x0c, (byte) 0xbd, (byte) 0xf5, (byte) 0x46, (byte) 0x82, (byte) 0x1e, (byte) 0xe4, (byte) 0x86, (byte) 0x95, (byte) 0x7b, (byte) 0x60, (byte) 0xae, (byte) 0x45, (byte) 0x50, (byte) 0xc2, (byte) 0x54, (byte) 0x08, (byte) 0x49, (byte) 0x9a, (byte) 0x9e, (byte) 0xfb, (byte) 0xb2, (byte) 0xb6, (byte) 0x78, (byte) 0xe5, (byte) 0x2f, (byte) 0x9c, (byte) 0x5a, (byte) 0xd0, (byte) 0x8a, (byte) 0x03, (byte) 0x77, (byte) 0x68, (byte) 0x30, (byte) 0x93, (byte) 0x78, (byte) 0x6d, (byte) 0x90, (byte) 0x6d, (byte) 0x50, (byte) 0xfa, (byte) 0xa7, (byte) 0x65, (byte) 0xfe, (byte) 0x59, (byte) 0x33, (byte) 0x27, (byte) 0x4e, (byte) 0x4b, (byte) 0xf8, (byte) 0x38, (byte) 0x44, (byte) 0x3a, (byte) 0x12, (byte) 0xf4, (byte) 0x07, (byte) 0xa0, (byte) 0x8d, (byte) 0x02, (byte) 0x03, (byte) 0x01, (byte) 0x00, (byte) 0x01 };
    /* @formatter:on */
    NtlmState ntlmState = new NtlmState();
    MockSource source = new MockSource("source", ByteBuffer.convertByteArraysToByteBuffers(serverChallengePacket, new byte[] { 1, 2, 3 }));
    Element ntlmssp_negotiate = new ClientNtlmsspNegotiate("ntlmssp_negotiate", ntlmState);
    Element ntlmssp_challenge = new ServerNtlmsspChallenge("ntlmssp_challenge", ntlmState);
    Element ntlmssp_auth = new ClientNtlmsspPubKeyAuth("ntlmssp_auth", ntlmState, sslState, "192.168.0.101", "workgroup", "apollo3", "Administrator", "R2Preview!");
    Element sink = new MockSink("sink", ByteBuffer.convertByteArraysToByteBuffers(clientNegotiatePacket, clientAuthPacket), (Dumper) ntlmssp_auth);
    Element mainSink = new MockSink("mainSink", ByteBuffer.convertByteArraysToByteBuffers(new byte[] { 1, 2, 3 }));
    Pipeline pipeline = new PipelineImpl("test");
    pipeline.add(source, ntlmssp_negotiate, ntlmssp_challenge, ntlmssp_auth, sink, mainSink);
    pipeline.link("source", "ntlmssp_negotiate", "ntlmssp_challenge", "ntlmssp_auth", "mainSink");
    pipeline.link("ntlmssp_negotiate >" + OTOUT, "ntlmssp_negotiate< sink");
    pipeline.link("ntlmssp_challenge >" + OTOUT, "ntlmssp_challenge< sink");
    pipeline.link("ntlmssp_auth >" + OTOUT, "ntlmssp_auth< sink");
    pipeline.runMainLoop("source", STDOUT, false, false);
}
Also used : MockSource(streamer.debug.MockSource) MockSink(streamer.debug.MockSink) PipelineImpl(streamer.PipelineImpl) Element(streamer.Element) SSLState(streamer.ssl.SSLState) Pipeline(streamer.Pipeline)

Example 3 with SSLState

use of streamer.ssl.SSLState in project cloudstack by apache.

the class Client method runClient.

public void runClient(String[] args) {
    try {
        Protocol protocol = parseOptions(args);
        if (protocol == Protocol.NONE)
            return;
        System.setProperty("streamer.Link.debug", "" + debugLink.used);
        System.setProperty("streamer.Element.debug", "" + debugElement.used);
        System.setProperty("streamer.Pipeline.debug", "" + debugPipeline.used);
        SSLState sslState = new SSLState();
        // Create socket wrapper
        if ("jre".equals(sslImplementation.value)) {
            socket = new SocketWrapperImpl("socket", sslState);
        } else if ("apr".equals(sslImplementation.value)) {
            socket = new AprSocketWrapperImpl("socket", sslState);
        } else if ("bco".equals(sslImplementation.value)) {
            socket = new BcoSocketWrapperImpl("socket", sslState);
        } else {
            throw new RuntimeException("Unexpected option value: \"" + sslImplementation.value + "\". " + sslImplementation.help());
        }
        screen = new ScreenDescription();
        canvas = new BufferedImageCanvas(canvasWidth.value, canvasHeight.value);
        screen.addSizeChangeListener(new SizeChangeListener() {

            @Override
            public void sizeChanged(int width, int height) {
                if (canvas != null) {
                    canvas.setCanvasSize(width, height);
                    if (scroller != null)
                        scroller.setSize(canvas.getWidth(), canvas.getHeight());
                }
            }
        });
        assemblePipeline(setMainElementAndAddressBasedOnProtocol(protocol, sslState));
        frame = createVncClientMainWindow(canvas, protocol.toString() + " " + hostName.value, new WindowAdapter() {

            @Override
            public void windowClosing(WindowEvent evt) {
                shutdown();
            }
        });
        try {
            // Connect socket to remote server and run main loop(s)
            socket.connect(address);
        } finally {
            shutdown();
        }
    } catch (Exception e) {
        e.printStackTrace(System.err);
    }
}
Also used : WindowAdapter(java.awt.event.WindowAdapter) SocketWrapperImpl(streamer.SocketWrapperImpl) AprSocketWrapperImpl(streamer.apr.AprSocketWrapperImpl) BcoSocketWrapperImpl(streamer.bco.BcoSocketWrapperImpl) WindowEvent(java.awt.event.WindowEvent) AprSocketWrapperImpl(streamer.apr.AprSocketWrapperImpl) SSLState(streamer.ssl.SSLState) BcoSocketWrapperImpl(streamer.bco.BcoSocketWrapperImpl)

Aggregations

SSLState (streamer.ssl.SSLState)3 Pipeline (streamer.Pipeline)2 PipelineImpl (streamer.PipelineImpl)2 AprSocketWrapperImpl (streamer.apr.AprSocketWrapperImpl)2 RdpBufferedImageCanvas (com.cloud.consoleproxy.rdp.RdpBufferedImageCanvas)1 ScreenDescription (common.ScreenDescription)1 SizeChangeListener (common.SizeChangeListener)1 WindowAdapter (java.awt.event.WindowAdapter)1 WindowEvent (java.awt.event.WindowEvent)1 InetSocketAddress (java.net.InetSocketAddress)1 RdpClient (rdpclient.RdpClient)1 Element (streamer.Element)1 SocketWrapperImpl (streamer.SocketWrapperImpl)1 BcoSocketWrapperImpl (streamer.bco.BcoSocketWrapperImpl)1 MockSink (streamer.debug.MockSink)1 MockSource (streamer.debug.MockSource)1