Some software written by me and projects I'm involved in.
Some of the software packages are just thrown together from what I found lying around and thought interesting enough to share, some might just be a single source file, some are just a tarball of my working directory and some might even be proper software releases.
Note that many of patches I have contributed to other free software projects are not listed here.
You can probably find more things on:
Kryptoniter: Swedish mailing list for practical use of cryptography.
Malmö Open Source Interest Group: A gathering of people interest in free, libre and open source software in Malmö, Sweden.
These web pages. See how they were made!
Network Time Security (NTS), in Go:
NTS client, using NTS-KE and ntp.
Firefox search plugin to use DDG as a Tor Hidden Service.
Better-than-nothing security (BTNS)
BTNS is IPsec with anonymous keys. I patched OpenBSD's iked
into
accepting both raw (not certificate) and anonymous keys. Proof of
concept.
Using DNS for IPsec authentication
IPsec using DNS for key distribution. I patched racoon
in
ipsec-tools and its management
program, racoonctl
, to load keys dynamically and wrote some Perl
hackery around them to load keys automatically when someone is
querying DNS.
Building a FreeBSD port for Openiked. Also tried to add NAT-T support for FreeBSD and Linux.
A simple static photo album generator. It's a single Bourne shell script using the power of ImageMagick.
A minimalist stacking X window manager directly on top of XCB.
Also available in FreeBSD ports as x11-wm/mcwm
and as packages in
some Linux distributions.
A small program to set the FreeBSD console keyboard in raw scancode mode and show scancodes of keys pressed and released.
Five seconds of inactivity resets the console to the original mode and quits the program.
Also available in FreeBSD ports as misc/kbdscan
. I would have
placed it in sysutils myself, but there you go.
A small program used for getting hold of one or more addresses of resolving DNS servers from IPv6 Router Advertisements with the Recursive DNS Server (RDNSS) and the DNS Search List (DNSSL) options. Initially for RFC 5006 and since updated to support RFC 6106.
Also available in FreeBSD ports as dns/radns
.
A small greylisting daemon in Perl for use with a Mail Transfer Agent such as Exim. Uses Berkeley DB for storage.
Exim can be configured to ask on a Unix domain socket if a message should be let through to its recipient as early as the RCPT TO in the SMTP dialogue. This script stores a triplet of the form “sending MTA IP address, sender address, recipient address” in a table with a timestamp and doesn't let a message through until a certain time has passed. This weeds out a surprisingly large amount of spam.
A theme for the Pelican static blog generator.
From 2011.
Small program to change brightness on the screen on a Genesi Efika MX Smartbook.
From 2009.
A rewrite of the trivial multi-user chat system described below using the libevent library, but this time the server-side only and using only TCP. Can be used with netcat or telnet as a client. Note though that the server doesn't include any TELNET negotiation.
From 2009.
A trivial multi-user chat system using the new SCTP protocol instead of TCP. Written as an experiment and not really production code.
Last touched in 2009.
A trivial Perl script to create a static HTML file containing a directory listing with descriptions of each file, somewhat like the file areas on the bulletin board systems of old.
Last touched 2006.
A Perl script to save and label a game of Nethack to be continued later. Note well that this is considered cheating by many Nethack players. Will only work if you have write access to the save directory and have Berkeley DB installed.
Last touched 2006.
The corresponding Perl script to get back your saved Nethack games when you have saved them with nhsave. The same warnings as above apply.
News Administrator's Friend - naf.tar.gz
Last touched in 2004.
The News Administrator's Friend (NAF), a CGI script and Perl module to manage the Access Control Lists of the INN News server, as modified by me. Note that it only works with the INN MC patch for ACLs. See below.
Last touched in 2006. Work originally done in 2004.
An expanded INN News server with Access Control Lists (ACLs) for newsgroups on a per user level and with user administration through Berkeley DB. It also contains From: line rewriting on postings with the address taken from the database.
See the INSTALL-ACL file in the distribution to get going. Note that you also need the NAF Perl module above to be able to manage users and edit the ACLs.
This release fixes a bug where a data item in a table wasn't always NUL terminated. It also includes a better installation description (INSTALL-ACL) and some test programs.
Based on INN 2.4.1.
First release of my patched INN News Server. See above.
This is a horrid but fun example of an in-process cooperative multi-tasking scheduler using GNU C label addresses, local stacks and a process table that was the result of a discussion at work during the spring 2004. It can, if you are perverse enough, be used as a very low overhead threads or co-routine implementation.
A slightly hacked version of ledbiff, a program to tell you that you have mail by lighting a LED on your keyboard. For the X Window System.
Last touched in 2003.
A Papercut News server distribution with an added backend module for the old Gnuheter news site which was based on PHPnuke. You need Python >=2.0 to run this. It was never finished, but you can read and post to the discussions with a News client if you have some sort of direct access to the MySQL database.
Note that since this was done Gnuheter has gone from a Slashdot lookalike to a blog aggregator.
A proof of concept Payment Service Provider System in Python I wrote in February, 2000.
It's a rather simple proof of concept written in Python that uses simple HTTP requests for the entire seller - payment system - consumer transaction.
The scenario it covers is that a seller has an online catalogue where the consumer chooses what to buy. Both contact the Payment Service Provider who handles the transaction. Think of it like Paypal or, well, VISA or Mastercard.
The system includes both the seller side and the Payment Service Provider side.
It also includes a simple performance test that makes 1000 transactions as quickly as possible.
It is entirely based on the simple CGI mechanism and all transactions occur over ordinary HTTP. It comes in two flavours: one is a pure CGI version that hooks into an existing HTTP server and one is where the CGI scripts are integrated into a Python HTTP server.
From 1999.
A collection of some simple tools in C that go through a tcpdump compatible pcap file and displays some statistics. Includes a small multiplexer, mux, that can insert multiplexed packets from several flows captured in files into the network at the specified bandwidth. Useful for testing and stressing networks. Note: Doesn't seem to work with modern version of the libraries. Needs work.
PCCOM8 Linux Driver (tar ball)
Last touched in 1996.
This is a patch to an old Linux kernel (2.0.9) to make the Decision PCCOM8 multiport serial card work. The patch and the text describing the card was written by Christer Weinigel and myself. This is likely not very useful, but the text describing the card might come in handy if you find one of these cards.
Last updated: <2024-05-14 09:15:27 MEST>