So we've got electronic ID's, (smartcards) but except for doing our taxes we're not using them so much.
Now under linux there are options to use them for SSH authentication, but these days I'm mostly using Putty on Windows, so I wanted it to work with this client.
After some searches I found a possible candidate: Putty-cac : http://www.risacher.org/putty-cac/
It works with CAPI, the military uses it, it's opensource and based on Putty. Seems like a win-win-win-win. And for once it also is :-)
So I downloaded the source from https://github.com/risacher/putty-cac/archive/master.zip
compared it with the official putty source from http://svn.tartarus.org/sgt/putty/ to see if nothing suspicious was added to the code. There wasn't, so I could safely build the binary myself.
I remembered that Visual Studio Express was a free C++ compiler from Microsoft, so i download version 2010
So now just open the project and press build right? Wrong! The project was made in Visual studio 6 and apparently you can not convert from visual studio 6 to visual studio 2010. According to the internets you need to first install Visual studio 2008, convert there, save it, open it in Visual studio 2010, convert, save and build.
Here is an overview for those that want to do this:
Start visual C++ 2008
Open Project - c:\temp\putty-cac-master\windows\MSVC\putty.dsw
Convert and open project
Choose File - Save All
Start visual C++ 2010 (and close 2008 ;-)
Open Project - c:\temp\putty-cac-master\windows\MSVC\putty.sln
You'll get a wizard: Next - Next - Finish
Now when you try to build it, it won't. You'll need to add a define
Add #define SECURITY_WIN32 at the top of the file
If you compile now you'll get linking errors. You'll need to add 'sc.c' and 'capi.c' to the 'source files'
Now you're finally ready to build your binary. Press build and enjoy your own build putty.
To actually use your EID with this, just follow the CAPI instructions on http://www.risacher.org/putty-cac/
Stuff you'll need to get this working:
Microsoft Windows SDK for Windows 7 and .NET Framework 4
Visual 2008 express
Visual 2010 express
PuTTY CAC source