I knew that I needed IPsec, and the only free implementation under active development I could find for Linux was FreeSWAN, but looking closer it seemed too much for my simple case. My first impression was that it was hard to understand and hard to configure, especially for the simple case of manually configured tunnels with fixed keys. Routing was also strange. I wanted something resembling the standard IPIP tunnel, but when I could not find it, I printed out the IPsec RFCs and started reading, and after that I started coding.
I decided to use the cryptoapi patches for the encryption/decryption algorithms, which really gave me a head start on the hard stuff.
The code has been running on my netword for some time now, and I feel that it's time to share the code to the rest of the community. Please try it out and let me know what you think!
The link for this article located at Tobias Ringström is no longer available.