<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Ota on Umair's Systems Notebook</title><link>https://umair-as.github.io/blog/tags/ota/</link><description>Recent content in Ota on Umair's Systems Notebook</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Thu, 23 Apr 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://umair-as.github.io/blog/tags/ota/index.xml" rel="self" type="application/rss+xml"/><item><title>Moving RAUC's HTTPS Streaming Key into TPM2 via PKCS#11</title><link>https://umair-as.github.io/blog/posts/rauc-streaming-key-tpm2-pkcs11/</link><pubDate>Thu, 23 Apr 2026 00:00:00 +0000</pubDate><guid>https://umair-as.github.io/blog/posts/rauc-streaming-key-tpm2-pkcs11/</guid><description>Migrating RAUC&amp;rsquo;s mTLS client key from a file on disk to a TPM2-backed PKCS#11 URI. The recipe wiring was straightforward; the URI was not. module-path is a p11-kit URI extension that libp11 — the parser RAUC&amp;rsquo;s streaming path actually uses — rejects outright.</description></item><item><title>RAUC Streaming OTA: When the Sandbox User Can't Reach the TPM</title><link>https://umair-as.github.io/blog/posts/rauc-pkcs11-tpm-streaming-sandbox/</link><pubDate>Tue, 21 Apr 2026 00:00:00 +0000</pubDate><guid>https://umair-as.github.io/blog/posts/rauc-pkcs11-tpm-streaming-sandbox/</guid><description>Switching RAUC&amp;rsquo;s streaming mTLS client key from a file path to a PKCS#11 URI produced a one-line error with no obvious cause. The real problem was not the module path, not the engine, and not a missing PIN — it was the sandbox user&amp;rsquo;s group membership and what tpm2-pkcs11 needs to initialise.</description></item></channel></rss>