This was meant to be a quick and simple integration. The problem with 
Disconnect is the problem I mentioned below: since OpenVPN uses a nonstandard 
driver for the network communications, the UI will never present a Disconnect 
button, and so there's no way to actually call the Disconnect function in a 
custom dialer DLL.

If anything, you may find the plumbing for hooking into the UI as the real 
value of this code, and then implement something real and usable on top of it. 
I never considered these use cases before this discussion.

-----Original Message-----
From: Selva Nair <selva.n...@gmail.com> 
Sent: Friday, July 6, 2018 9:37 AM
To: Kevin Kane <kk...@microsoft.com>
Cc: Илья Шипицин <chipits...@gmail.com>; Gert Doering <g...@greenie.muc.de>; 
openvpn-devel <openvpn-devel@lists.sourceforge.net>
Subject: Re: [Openvpn-devel] Upstreaming pqcrypto changes from microsoft/openvpn

Hi,

Thanks for the follow up.

On Fri, Jul 6, 2018 at 12:03 PM, Kevin Kane via Openvpn-devel 
<openvpn-devel@lists.sourceforge.net> wrote:
> [Combining threads.]
>
>
>
> The work on the OpenSSL fork, and figuring out just what the right 
> interface is to bring PQ crypto to current crypto libraries, is going to be 
> on-going.
> PQ crypto algorithms don’t fit so well in the common conventions we’ve 
> become accustomed to for current algorithms.
>
>
>
> As for the dialer, I need to look into getting approval to upstream 
> it, but I expect I can share it. The goal of that work was to have 
> some real basic integration with the network connections flyout that 
> appears when you click its icon in the notification area. What I’ve 
> done is modest, though, so let me make clear what I’ve actually done. 
> I changed OpenVPN-GUI when it starts up to create such an entry for 
> each configuration file it finds, and if the user clicks “Connect” on 
> one of those entries, it’s exactly the same as if the user brought up 
> the right-click menu for OpenVPN-GUI’s icon, selected that 
> configuration file, and clicked Connect. The plug-in sends the exact 
> same Windows message to OpenVPN-GUI, which causes it to bring up its 
> status window and instruct the system service to establish the connection. 
> That’s it.
>
>
>
> So there are some caveats. 1) OpenVPN-GUI has to be running; the 
> plug-in will complain if it’s not. In fact OpenVPN-GUI clears out the 
> list when it exits cleanly. 2) If OpenVPN-GUI crashes, the entries 
> will be left in the list but won’t be usable for anything. I prefix 
> each entry with the string “OpenVPN “, though, and the next time it 
> runs it will clean up these entries. 3) Because OpenVPN uses 
> tap-windows instead of the normal Windows NDIS devices for the 
> networking, the flyout can’t detect whether or not the connection is active 
> or not, and so it will always present a “Connect”
> button. OpenVPN-GUI ignores this when the connection is already alive, 
> so nothing bad happens, but it can be a confusing experience. I didn’t 
> investigate what it might take to get tap-windows to surface its 
> connected/disconnected state to the flyout in the correct way, nor did 
> I investigate if this could be used to automatically bring up 
> connections on demand or before login.

I had looked at the dialer.c code and came to the same conclusion -- that it 
needs a lot more work to be usable.

The dll is barebones:  implements only connect (not even disconnect), 
communication with the GUI uses PostMessage with menu-ids (flakey and one way), 
the GUI is not brought to the foreground on connect, so password prompts and 
other popups show minimized etc. etc.

It also pollutes the control panel -> Network connections with an entry for 
each config.

As for connect before login, running the entire GUI and openvpn code as system 
is a no-no. Instead the dll can be extended with minimal code for starting 
openvpn (spawning it with minimal privileges). But in that case wont it be 
better to implement the Pre-Logon_access-Provider (PLAP) interface which 
appears to be meant for such purposes?

Selva
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Openvpn-devel mailing list
Openvpn-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/openvpn-devel

Reply via email to