5
votes

I'm developing sort of VPN application and need virtual network interface (aka TUN/TAP). Is there any such driver available for windows ?

The only one I know of is OpenVPN, but it is GPLed and thus AFAIK can't be used in closed-source app.

If there's no ready solution, I'd appreciate some estimation on how complicated is it to code such beast myself (and possibly some direction on where to start).

I found this similar question, but it dated back 2008.

2
TAP-Win32 from OpenVPN is GPL, but are sure this is a problem? TAP-Win32 is really just a kernel driver and you don't have to link it into your program; your program can use just the usual Windows API calls to talk to it. You (or your lawyer) should investigate the possibility of shipping TAP-Win32 together with a closed source app without sharing your app's code.Ambroz Bizjak
Yeah, I thought of it. Tried to understand from GPL and from GPL FAQ and my (layman) conclusion is that it's not very clear - very possibly it's OK but, but I'm really afraid that someone will decide that it's not OK and take it to court. Don't really want to be in defending position and also don't want to be blamed as bag guys trying to circumvent GPL.Sandman4
Communication with the driver is indeed via file i/o and DeviceIOControl calls.Sandman4
Like one.beat commented in the question below, you should ask the OpenVPN people what they think. But you can go one step further and ask gpl-violations.org as well.Adrian Ratnapala

2 Answers

1
votes

Found this one: wodVPN - claims to come with a virtual network adapter.

0
votes

Try AnyTun. http://www.anytun.org/

It looks like a solid tunnel driver available both on Linux and Windows, and claims to be freely redistributable.

If you do not find it to work, or something like it, I would agree with your first commenter - get a quick session with a lawyer to review the legal contract for the one you found... or even better, just call their sales department - they may say yes without legal worries.

Building the beast, as you say, is likely to be a pain. I've not done it, so I can't give a solid estimate, but it seems wise to avoid.