the:chris:walker ↩

Another year, another abandoned side-project

Here is my latest, “let’s look at all the fun things I started and never finished” post.

Firstly, we will talk about keyboards. I am typing this on a Keychron V10 (ISO) which is just about the perfect keyboard. Red switches (not MX but the same light-linear profile) are just right. The “Alice” layout which I did not know about, but is remarkably similar to the layout I designed for my dream keyboard, is almost perfect. It also runs VIA firmware that can be reprogrammed (up to 4 layers) from a web browser. Finally, it comes with an ISO enter key and is < £100. Fantastic.

Basically, it is unlikely that my DIY keyboard will ever be finished now, as this one is perfect and I still have the MX-brown DAS 4 as a backup… Who knows? maybe, but it seems unlikely…

So what other projects have I started on?

awkward was a foray into messaging


I wanted to build a secure messenger. I ended up writing a HPKE library in Go, and failing to implement MLS which is super complicated. I could have made the whole thing simpler, and possibly less secure, but no.

Implementing HPKE was actually really interesting, and I enjoyed it thoroughly. It was nice to be able to read and understand a spec, implement it and have all the test vectors to validate your implementation. I will get the code on github eventually.

poof is a secure, time-constrained, one-reveal secret sharing service


This is really old, but I realised I have got a proper post on it. It deserves it’s own post, not least because I actually finished it and have been running the instance for a number of years now!

This was originally an itch-scratching project for WebCrypto. I wanted to write something using the APIs and I felt there was a not a simple service for doing this (or I didn’t find one). I was also pissed off with people always putting secrets in email/IM.

7rpm a password manager

in progress!

I have had the domain for ages, and realising that “pm” is the intials for “password manager”, I thought maybe I would write one. Again, an itch-scratching project as the core crypto code is written in Go designed to be compiled to WASM (and native). That way the front and back ends both share the exact same cryptographic code.

It’s also and interesting subject and a good excuse to build a web frontend in svelte. I will need to write a web extension as well and possibly an android app (later) to allow tight intergration with the mobile ecosystem. That sounds like a lot of work, so for now - web app then extension hopefully sharing as much code as possible.

  • Code not available (yet!), but I plan on fully open source.

hindsight a small, privacy-focused web analytics package


Server side only, no-JS page views only analytics. Ingestion and storage done, but no frontend to browse stats…

untitled-vpn a AAA capable VPN service

README only!

This never got very far, in fact I only wrote the README. The idea was that it would be a layer over WireGuard that provided short-lease credentials and performed AAA services: Authentication, Authorisation and Accounting. That last one being very important! I wanted to be able to limit traffic to a given amount of data/time and cut of users after that, or walled-garden them at that point. A bit like a captive portal. In fact it could be used as a captive portal! The captive portal would never allow login and the Wireguard endpoint would be in the captive portal walled garden, so once connected to the VPN you have a tunnel out.