Software

Software #

Most of my free software is available on my GitHub profile. The list below contains select software projects that I consider particularly interesting and useful.

Nitriding #

Nitriding is a Go tool kit that makes it possible to run your application inside an AWS Nitro Enclave. Let’s assume that you built a Web service in Rust. You can now use nitriding to move your Rust code into a secure enclave, making it possible for your users to remotely verify that you are in fact running the code that you claim to run.

Tokenizer #

Tokenizer receives sensitive input from somewhere, tokenizes it, and sends the output somewhere else. This summary is deliberately vague because tokenizer’s input, output, and tokenization are pluggable: Input can come from an HTTP API or stdin. Tokenization can be done by HMAC-SHA-256 or CryptoPAn. The output can be a Kafka broker or stdout. Tokenizer further supports pluggable aggregation, which dictates how input is processed.

ZeroTrace #

The ZeroTrace Go package implements the 0trace traceroute technique. The API is straightforward: Instantiate a new ZeroTrace object and call its CalcRTT method by providing the net.Conn object of an already-established TCP connection. The method returns the round-trip time to the client (or the hop that’s closest) or an error.

Exitmap #

Exitmap is a fast and modular Python-based scanner for Tor exit relays. Exitmap modules implement tasks that are run over (a subset of) all exit relays. If you have a background in functional programming, think of exitmap as a map() interface for Tor exit relays: Modules can perform any TCP-based networking task like fetching a web page, uploading a file, connecting to an SSH server, or joining an IRC channel.

Bridgestrap #

Bridgestrap implements an API (for machines) and a Web interface (for people) to test Tor bridge lines by making a Tor instance fetch the bridges’ descriptor.


Last update • August 20, 2023