Now we can construct the abstract syntax tree. We will also learn to deal with ambiguity, mostly through prioritised choice.| loup-vaillant.fr
Time to fix that bug. Our recogniser is now fully general.| loup-vaillant.fr
Earley parsers can parse any context-free language, without restriction. This is a tutorial for how to write one.| loup-vaillant.fr
Common wisdom says the only way to cheap software is to skimp on quality or performance. On the contrary, quality and performance are| New stuff
How a paid assignment had me reconsider Monocypher's API, leading to sweeping changes and simplifications.| New stuff
The way the TPM is done leads to bloat. The TKey shows a better way.| New stuff
Readability is more objective than you'd think| New stuff
Crypto is often treated like a black art only anointed experts can hope to wield safely. It's not. There are laws, and we can learn them.| New stuff
How I implemented Elligator mappings from the original paper, with almost no other reference.| New stuff
Efficient elliptic curves tend not to have a prime order. This discusses the problems this causes, and the solutions.| New stuff
Depending on whether we talk about ciphers and hashes, "bits of security" don't really mean the same thing. This explains the differences, and how it might affect the security of your cryptographic systems.| New stuff
Public key cryptography often need fast scalar multiplication over a group with pretty slow additions. This explains the tricks.| New stuff
Hint: loads.| New stuff
Despite advice to the contrary, I have implemented my own crypto for serious use. Here's how.| New stuff
Monocypher 1.0 is out! Now ready for production.| New stuff
I had a ring made for me, to represent my trade.| New stuff
Poly1305 is a state of the art one time authenticator. Let's take a look.| New stuff
Chacha20 is a secure, fast, and amazingly simple encryption algorithm. Let's take a look.| loup-vaillant.fr