<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Cryptography on Tom Meurs</title>
    <link>https://tommeurs.nl/en/tags/cryptography/</link>
    <description>Recent content in Cryptography on Tom Meurs</description>
    <generator>Hugo</generator>
    <language>en</language>
    <copyright>© Tom Meurs</copyright>
    <lastBuildDate>Sat, 18 Apr 2026 10:47:00 +0200</lastBuildDate>
    <atom:link href="https://tommeurs.nl/en/tags/cryptography/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Quantum-safe GPG identity with multiple aliases</title>
      <link>https://tommeurs.nl/en/posts/quantum-safe-gpg-identity/</link>
      <pubDate>Sat, 18 Apr 2026 10:47:00 +0200</pubDate>
      <guid>https://tommeurs.nl/en/posts/quantum-safe-gpg-identity/</guid>
      <description>&lt;blockquote&gt;&#xA;&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt; One GPG masterkey that only certifies, kept offline. Three aliases bound to it, so anyone can check they&amp;rsquo;re the same person. Ed25519 subkeys for signing and SSH, an ML-KEM plus X448 subkey for encryption so recorded ciphertext stays closed after a quantum computer shows up, and three backups that each assume the other two are gone. Needs GnuPG 2.5.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;A cryptographic signature still means exactly what it says. If the key is yours and the signature verifies, the content came from you. No vendor handed you that identity, no CA can pull it, no platform can suspend it. It exists because you generated the key, and it&amp;rsquo;s yours for as long as you hold the private half. Most of what gets called &amp;ldquo;online identity&amp;rdquo; is borrowed. A handle someone can ban, an email address the domain owner can take back the day they feel like it. A GPG signature sits outside all of that.&lt;/p&gt;</description>
    </item>
    <item>
      <title>cert-manager: Automatic TLS Certificates in Kubernetes</title>
      <link>https://tommeurs.nl/en/posts/cert-manager-kubernetes-tls/</link>
      <pubDate>Sun, 12 Apr 2026 21:38:00 +0100</pubDate>
      <guid>https://tommeurs.nl/en/posts/cert-manager-kubernetes-tls/</guid>
      <description>&lt;blockquote&gt;&#xA;&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt; cert-manager watches Certificate resources, fetches the certificate from Let&amp;rsquo;s Encrypt, your own CA or Vault, stores it in a Secret and renews it 30 days before it expires. I run one DNS-01 ClusterIssuer through Cloudflare and one wildcard certificate, copy that Secret into the namespaces that need it, and let two Prometheus alerts tell me when a renewal is stuck. Nothing left to remember.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;For years my certificates renewed the way most people&amp;rsquo;s do. A calendar reminder, a manual &lt;code&gt;certbot&lt;/code&gt; run, and the hope that I&amp;rsquo;d get to it before the thing expired. It worked, right up to the morning a service started throwing cert errors at me and I had no idea why. The renewal cron had been failing for weeks. Quietly.&lt;/p&gt;</description>
    </item>
    <item>
      <title>YubiKey &#43; Pass &#43; GPG &#43; SSH: One Key to Rule Them All</title>
      <link>https://tommeurs.nl/en/posts/yubikey-pass-gpg-ssh/</link>
      <pubDate>Tue, 13 Jan 2026 17:00:00 +0100</pubDate>
      <guid>https://tommeurs.nl/en/posts/yubikey-pass-gpg-ssh/</guid>
      <description>&lt;blockquote&gt;&#xA;&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt; One YubiKey carries a GPG key with a signing, an encryption and an authentication subkey. gpg-agent hands the authentication subkey to SSH, git signs with the signing subkey and pass decrypts with the encryption subkey, so one PIN in the morning and a touch per action replace every password I used to type. The SSH part alone is three steps and worth doing on its own.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;Every morning I plug in my YubiKey, type one PIN, and that&amp;rsquo;s the last secret I type until I pull it out again. SSH to a server, no password. Sign a commit, no passphrase. Pull a secret out of pass, touch the key. One thing in a USB port, and the rest of the day my authentication happens without me.&lt;/p&gt;</description>
    </item>
    <item>
      <title>GPG explained: from first key to daily use</title>
      <link>https://tommeurs.nl/en/posts/gpg-beginners-guide/</link>
      <pubDate>Tue, 06 Jan 2026 19:00:00 +0100</pubDate>
      <guid>https://tommeurs.nl/en/posts/gpg-beginners-guide/</guid>
      <description>&lt;blockquote&gt;&#xA;&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt; GPG encrypts files and signs things, and it sits under pass, under signed git commits and under the checksums maintainers publish. One command gives you a working keypair in five minutes. Subkeys and a YubiKey come later, if ever, and the UX is bad enough that I complain about it at length below.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;GPG is a tool I kept meaning to learn and didn&amp;rsquo;t, for years. The docs are a wall of text, the terminology is its own dialect, and the error messages are cryptic in both senses of the word.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
