Blog
Engineering notes.
Write-ups from the work itself — root-cause analyses, the reasoning behind API decisions, and the defects we found before you did. Same stance as the Phase 4.1 report: publish what went wrong, not only what went right.
Subscribe by RSS. No tracking, no newsletter signup.
-
·6 min read ·Preview · v1.4.0
Don't check the licence. Make the feature need it.
A licence check is a boolean an attacker can patch. So we removed the branch: the feature decrypts its own data with a key only a valid licence carries.
engineering-notessecuritycryptography
-
·4 min read ·Preview · v1.4.0
The public key isn't secret. That's not why we hide it.
Reading an embedded verification key is harmless — the attack is overwriting it. How we made key substitution tamper-evident and fail-closed.
engineering-notessecuritycryptography
-
·5 min read ·Preview · v1.4.0
The signature is unforgeable. The branch that trusts it isn't.
Crypto makes a licence unforgeable, so attackers patch the branch that trusts it. How we obfuscate that branch, and why your own call site matters more.
engineering-notessecuritybuild-and-packaging
-
·8 min read ·Preview · v1.4.0
The file on disk is clean. The running code isn't.
The on-disk signature check hashes a file that an in-memory patch never touches, and it skips static builds entirely. A trust-on-first-use check for the gap.
engineering-notessecurity
-
·5 min read
An HMAC salted with a filename
A valid licence could be denied outright, and the documented remedy never cleared it. The salt depended on how the licence was named, not on which anchor.
postmortemcryptography
-
·5 min read ·Preview · v1.4.0
Adding 56 diagnostic codes without breaking a single caller
The library already knew why verification failed, then threw the distinction away. Promoting it to a public enum, without touching LicenseStatus.
engineering-notesapi-designabi
-
·6 min read ·Preview · v1.4.0
The licence hasn't expired. The clock is three days fast.
A per-section diagnostic can't answer the ticket that costs the most. What it took to correlate across a report instead, and what we refused to build.
engineering-notesdiagnostics