I have started a new blog at stranger.systems, and am once again actively posting. This domain will continue to stay up to preserve content I haven’t moved over for the forseeable future, but no new posts will be made to this domain. Please update your feed readers if you are still subscribed to this domain.
This might get me some looks, but I have pretty solidly decided to go in on using XChaCha20+Blake3 as the AE of choice for my future open source work. There are numerous reasons for this decision, but it mainly comes down to the desire for defense in depth, and a deep dislike of fundamental properties of polynomial MACs. The Why Nots Why not just use poly1305? The burning question, I can hear it…
Gcc Emacs is the latest attempt to bring native code compilation to Emacs's elisp. It uses gcc's libgccjit to produce native code binaries for the current system from elisp. Installation Installation on my arch linux system was quite simple, but things turned out to be a bit less simple on macOS. I initially tried to use this guide, but needed to perform several tweaks to get things working. The…
As the issue has come up on how to handle data dirs on macOS in the dirs-next project, I thought it might be prudent to take a look at how other popular libraries in other languages deal with the issue. There is some contention over whether XDG style directories (e.g. ~/.config/{.verbatim}) or macOS default style directories should be used (e.g. ~/Library/Application Support{.verbatim}). What do…
I am proud to announce that I have pushed Asuran version 0.1.0 to crates.io! What this means In a practical sense, this release mostly signifies that the core API has settled down enough that I am no longer scared of adding new, more complicated, (and more powerful) features. That doesn't mean asuran is completely useless though, it already has many of the core features you would come to expect…
Background I recently purchased a new air filter from costco, and its actually a pretty nice unit: Only one problem. For some ungodly reason, its an internet of shit device. It has built in wifi and an android app that both kinda seriously sucks and provides functionality not readily accessible through the physical controls on the air filter. This is unacceptable for a number of reasons. My…
Motivation Dotfile management is hard. Most of us are doing it with complicated series of batch scripts, and some of the smarter among us are using ansible to do the job. Ansible is, however, quite heavy weight for this task, and not really well suited to the simple set-and-forget nature of dotfile directories, however well it does work. dotfile-playbook should DWIM, and should be idempotent…
Background The current arsuran repository format is roughly an 'improved' copy of the one borg uses. This format works reasonably well for most purposes, and it is quite possible to squeeze great performance out of it. One weakness it does have, though, is failing to hide chunk lengths. Since both borg and asuran use content defined chunking, both formats are (theoretically) open to fingerprinting…
This week was a bit slow on actual development on asuran proper, there was mostly a lot of documentation changes, and work on an external library for cross-platform sparse file handling. Features Landed New listing API The universal listing API, introduced in last weeks post, is now used by the Target api. This increases the flexibility of Archives and also comes with a mild performance boost!.…
Background The lowest abstraction level asuran provides is a Content Addressable Storage interface where the blobs, hereafter refereed to as "Chunks", are keyed by an HMAC of their plaintext. An HMAC is used, rather than a plain hash, since these keys may leak out of the encrypted sections of the repository, and be visible in plaintext. asuran thus uses an HMAC with a key (stored securely with the…