diff --git a/config.toml b/config.toml index c4ddcbe..0b7f46a 100644 --- a/config.toml +++ b/config.toml @@ -3,6 +3,11 @@ languageCode = "en-us" title = "Home" copyright = "Jan Sebastian Götte" theme = "conspiracy" +enableRobotsTXT = true + +[outputs] +home = ['html', 'rss'] +taxonomy = ['html', 'rss'] [params] fediverse_account = "@jaseg@chaos.social" diff --git a/content/blog/ashen-yanartas/ashen-logo-text-dark-plain.svg b/content/blog/ashen-yanartas/ashen-logo-text-dark-plain.svg new file mode 100644 index 0000000..4ed3c9c --- /dev/null +++ b/content/blog/ashen-yanartas/ashen-logo-text-dark-plain.svg @@ -0,0 +1,37 @@ + + + + + + + + + + ashen + + diff --git a/content/blog/ashen-yanartas/ashen-logo-text-light-plain.svg b/content/blog/ashen-yanartas/ashen-logo-text-light-plain.svg new file mode 100644 index 0000000..f3e7460 --- /dev/null +++ b/content/blog/ashen-yanartas/ashen-logo-text-light-plain.svg @@ -0,0 +1,37 @@ + + + + + + + + + + ashen + + diff --git a/content/blog/ashen-yanartas/index.rst b/content/blog/ashen-yanartas/index.rst new file mode 100644 index 0000000..8c37392 --- /dev/null +++ b/content/blog/ashen-yanartas/index.rst @@ -0,0 +1,59 @@ +--- +title: "Project Announcement: Ashen and Yanartas" +date: 2026-05-31T08:00:00+02:00 +summary: > + There are exciting things ahead for the next year: I have been granted funding by both nlnet and by prototype fund + for open-source work on an open source hardware Hardware Security Module. As a vessel for this project, I created a + consulting company, yasec. +--- + +I'm currently in the last days of finishing my PhD (Dr.-Ing.) in Electrical Engineering. To make sure things don't get +boring afterwards, I've been busy looking for new opportunities. As a result, there are exciting things ahead for the +next year: I have been granted funding by both nlnet *and* by Prototype Fund for open-source work on an Open Source +Hardware Hardware Security Module. As infrastructure for these projects, I created a consulting company, `yasec +`__. + +Prototype Fund supports Ashen, the OS for open-source HSMs +---------------------------------------------------------- + +.. raw:: html + + + + + + +Starting June 2026, I will be working on Ashen_, an open-source software stack that provides the operating system layer +for open-source HSMs. The project is funded as part of `Prototype Fund`_'s Class 02. + +Compared to existing open-source HSM software that work at the application level and that don't +consider physical attacks, this stack will provide the underlying operating system services to protect such systems from +physical attacks. A key component of this stack will be a portable mechanism to connect hardware tamper sensors to a +system. The stack will enable deterministic guarantees of the maximum latency until secrets are destroyed after a tamper +alarm was raised. + +.. _Ashen: https://yasec.de/projects/ashen/ +.. _`Prototype Fund`: https://www.prototypefund.de/ + +nlnet supports Yanartas, the OSHW HSM platform +---------------------------------------------- + +After work on the Ashen software stack is completed, I will continue by creating Yanartas_, an Open Source Hardware +design for a complete open-source Hardware Security Module that provides protection against advanced physical attacks +using a security mesh based on the `Inertial HSM`_ technology I developed during my PhD. The design will be customizable +to different use cases and payload sizes from microcontrollers to whole servers. + +.. _Yanartas: https://yasec.de/projects/yanartas/ +.. _`Inertial HSM`: https://tches.iacr.org/index.php/TCHES/article/view/9290 + +Let's talk! +----------- + +In case you're interested to talk about hardware security engineering or open-source hardware, feel free to reach out +through email or on mastodon. The projects are in an early stage, and I'm looking both for collaborators for these +projects, and for opportunities once these projects have been completed. At this time, I only have a small amount of +spare capacity outside of these projects, but that will change with time. I'd love to hear about *your* projects and +your needs for specialist work in case you're interested. + +Follow this blog's `RSS `__ and follow me `on mastodon `__ for +updates! diff --git a/content/blog/ashen-yanartas/yasec-logo-v1-dark-plain.svg b/content/blog/ashen-yanartas/yasec-logo-v1-dark-plain.svg new file mode 100644 index 0000000..ad9a0d2 --- /dev/null +++ b/content/blog/ashen-yanartas/yasec-logo-v1-dark-plain.svg @@ -0,0 +1,31 @@ + + + + + + + + + + + diff --git a/content/blog/ashen-yanartas/yasec-logo-v1-light-plain.svg b/content/blog/ashen-yanartas/yasec-logo-v1-light-plain.svg new file mode 100644 index 0000000..1c70f81 --- /dev/null +++ b/content/blog/ashen-yanartas/yasec-logo-v1-light-plain.svg @@ -0,0 +1,31 @@ + + + + + + + + + + + diff --git a/content/blog/kicoil-theory/header.png b/content/blog/kicoil-theory/header.png new file mode 100644 index 0000000..2b95b66 Binary files /dev/null and b/content/blog/kicoil-theory/header.png differ diff --git a/content/blog/kicoil-theory/index.rst b/content/blog/kicoil-theory/index.rst new file mode 100644 index 0000000..c746cea --- /dev/null +++ b/content/blog/kicoil-theory/index.rst @@ -0,0 +1,40 @@ +--- +title: "The KiCoil Planar Coil Generator" +date: 2025-12-31T13:15:39+02:00 +summary: > + I wrote a layout tool generating planar coils that can handle spiral coils, toroidal coils, and hybrids in between + the two. +--- + +.. raw:: html + +
+ +
+ +A planar coil is a coil that is made from flat traces in some printing process like PCB or IC manufacturing, instead of +being wound from wire. A few weeks ago, I needed one such planar coil that + + +Project State +------------- + +Currently, circular coils are special cased. Their layouts are directly generated, without the use of polygon +offsetting. Windings are efficiently approximated using circular arcs. The circular coil layout code is solid, and +contains decent (albeit not infallible) parameter sanity checks. Its main limitation is that sometimes, clearances can +be violated a bit. + +The arbitrary shape code path is less stable, and produces faulty output in some cases. The most common error is +crossing traces near the first vertex of the polygon when the polygon has highly convex or concave parts. I'm still +improving this code path, but as long as you check the output, any errors it produces should be easy to fix by hand. + +If you would like to contribute, I'd welcome any ideas on the arbitrary shape code path. I think there is no single +optimal solution here, and a generic algorithm that can be adjusted to favor for instance shape accuracy versus winding +smoothness would be nice. + +All project links are listed on `https://jaseg.de/projects/kicoil/ `__. You can check +out the code on my git at `https://git.jaseg.de/kicoil.git `__. Issues are tracked on +codeberg at `https://codeberg.org/jaseg/kicoil `__. The kicad addon can be installed +from the KiCad plugin manager, and you can install the standalone kicoil python package `from PyPI +`__. + diff --git a/content/blog/note-git-server-move.rst b/content/blog/note-git-server-move.rst new file mode 100644 index 0000000..9fde442 --- /dev/null +++ b/content/blog/note-git-server-move.rst @@ -0,0 +1,18 @@ +--- +title: "Housekeeping note: git.jaseg.de has moved" +date: 2026-05-30T10:00:00+02:00 +summary: > + A small note: As part of moving the servers and website to a new, more suitable host for my Ashen and Yanartas + projects as well as the creation of yasec, my freelance consulting business, I've moved git.jaseg.de from a custom + cgit/gitolite setup to a forgejo instance. This may have broken some links, especially deep links into the old cgit. + If you notice any broken links, please reach out through email. +--- + +A small note: As part of moving the servers and website to a new, more suitable host for my Ashen_ and Yanartas_ +projects as well as the creation of yasec_, my freelance consulting business, I've moved `git.jaseg.de +`__ from a custom cgit/gitolite setup to a forgejo instance. This may have broken some links, +especially deep links into the old cgit. If you notice any broken links, please reach out through email. + +.. _Ashen: https://yasec.de/projects/ashen/ +.. _Yanartas: https://yasec.de/projects/yanartas/ +.. _yasec: https://yasec.de/ diff --git a/content/blog/pixacao/example-2026-05-30.svg b/content/blog/pixacao/example-2026-05-30.svg new file mode 100644 index 0000000..4e5a9eb --- /dev/null +++ b/content/blog/pixacao/example-2026-05-30.svg @@ -0,0 +1,644 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/content/blog/pixacao/index.rst b/content/blog/pixacao/index.rst new file mode 100644 index 0000000..77175da --- /dev/null +++ b/content/blog/pixacao/index.rst @@ -0,0 +1,39 @@ +--- +title: "New Artwork: Pixação Experiments" +date: 2026-05-30T09:44:44+02:00 +summary: > + I published a piece of algorithmic art fusing a Pixação graffiti-inspired lettering style with a layout similar to a + Thai Haw-taew (five row) Yantra blessing tattoo. +--- + +.. raw:: html + +
+ A drawing in the style
+        of a sak yant five line thai buddhist blessing tattoo, with lettering not in khmer but in pichação
+        graffiti-inspired letters reading out random hexadecimal characters. (they’re quite hard to read though). The
+        graphic is kept in simple, constistent thickness, black lines on white background. The letters are ornate, with
+        some parts looking leaf-like, and all have a square outer shape. +
+ +I made a small piece of algorithmic art fusing a Pixação graffiti-inspired lettering style with a layout similar to a +Thai Haw-taew (five row) Yantra blessing tattoo because it looks cool. Please have a look at `the live version here. +`__ + +The artwork encodes the latest `NIST Randomness Beacon`_ at the time of viewing, so it's the same for everyone viewing +it simultaneously but it changes unpredictably roughly every 1-3 minutes. The beacon's hexadecimal content is inserted +into the artwork with a Pixação-inspired font that I created. The artwork is loosely based on a Thai buddhist Sak Yant +tattoo, but deviates from it in some details because it's not intended to be a buddhist spiritual artifact. + +Keeping with the spirit of the five row Sak Yant tattoo it is inspired by, this artwork also conveys a blessing. +However, where a five row Sak Yant tattoo blesses its wearer, this artwork is meant to bless your computer when you +print it out and place it near it. Its blessing provides protection from unforseen circumstances by encoding the most +unforseen of things: 120 bit of the 512 bit of entropy in a NIST v2.0 interoperable randomness beacon. + +If you enjoy it, please feel free to share it with your friends. If you print it and you want to share, I'd love to see +a photo of it. You can reach me through my email or on mastodon. + +`Here's the live version of the artwork. `__ + +.. _`NIST Randomness Beacon`: https://csrc.nist.gov/Projects/interoperable-randomness-beacons/beacon-20 + diff --git a/deploy.py b/deploy.py deleted file mode 100644 index f0cab5c..0000000 --- a/deploy.py +++ /dev/null @@ -1,33 +0,0 @@ -#!/usr/bin/env python3 - -import os -import tempfile -import subprocess -from pathlib import Path - -if __name__ == '__main__': - with tempfile.TemporaryDirectory() as tmpdir: - pagefind = Path('~/.cargo/bin/pagefind').expanduser() - pagefind = str(pagefind) if pagefind.is_file() else 'pagefind' - - current_branch = subprocess.run(['git', 'symbolic-ref', '-q', 'HEAD'], check=False, capture_output=True).stdout.strip() - if current_branch == 'refs/heads/deploy': - raise SystemError('This script cannot be run from the deploy branch (run from main instead)') - - subprocess.run(['git', 'worktree', 'add', '--detach', tmpdir], check=True) - try: - env = dict(os.environ) - env['PATH'] = f'{Path("hack").absolute()}:{env["PATH"]}' - hugo = os.environ.get('HUGO', 'hugo') - subprocess.run([hugo], cwd=tmpdir, check=True, env=env) - subprocess.run([pagefind, '--site', 'public'], cwd=tmpdir, check=True, env=env) - subprocess.run(['git', 'add', '--force', 'public'], cwd=tmpdir, check=True) - write_tree = subprocess.run(['git', 'write-tree', '--prefix=public/'], cwd=tmpdir, check=True, capture_output=True) - tree = write_tree.stdout.strip() - - commit = subprocess.run(['git', 'commit-tree', '-p', 'HEAD', '-p', 'refs/heads/deploy', '-m', 'deploy.py auto-commit', tree], cwd=tmpdir, check=True, capture_output=True).stdout.strip() - subprocess.run(['git', 'update-ref', '-m', f'deploy.sh update deploy branch to {commit}', 'refs/heads/deploy', commit], cwd=tmpdir, check=True) - - subprocess.run(['git', 'push', 'git@git.jaseg.de:blog.git', 'deploy'], cwd=tmpdir, check=True) - finally: - subprocess.run(['git', 'worktree', 'remove', '-f', tmpdir], check=True) diff --git a/deploy.sh b/deploy.sh new file mode 100755 index 0000000..4679b53 --- /dev/null +++ b/deploy.sh @@ -0,0 +1,4 @@ +set -e +hugo +~/.cargo/bin/pagefind --site public +rsync -avP public/ wendelstein:/var/www/jaseg.de/ diff --git a/static/pixacao/index.html b/static/pixacao/index.html new file mode 100644 index 0000000..516b1e8 --- /dev/null +++ b/static/pixacao/index.html @@ -0,0 +1,298 @@ + + + + + + Pixação + + + +
+ +
+ +
+ + Print this page to bestow protection from unforeseen circumstances upon your computer. + +
+ +
+
+
+ +
+ +
+ +
+ + + + diff --git a/static/pixacao/template diagram.svg b/static/pixacao/template diagram.svg new file mode 100644 index 0000000..febc7b4 --- /dev/null +++ b/static/pixacao/template diagram.svg @@ -0,0 +1,1085 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/static/pixacao/template pixacao onepage.svg b/static/pixacao/template pixacao onepage.svg new file mode 100644 index 0000000..cb4dd8d --- /dev/null +++ b/static/pixacao/template pixacao onepage.svg @@ -0,0 +1,1227 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/themes/conspiracy/assets/css/style.css b/themes/conspiracy/assets/css/style.css index c20edea..89e37bb 100644 --- a/themes/conspiracy/assets/css/style.css +++ b/themes/conspiracy/assets/css/style.css @@ -480,6 +480,10 @@ img:hover { filter: none; } +.dark-mode-invert { + filter: invert(1) hue-rotate(180deg); +} + /*****************************************************/ /* Code block formatting / syntax highlighting rules */ /*****************************************************/ @@ -690,7 +694,7 @@ footer { --c-bg-behind: hsl(220, 10%, 95%); --c-bg-front: hsl(220, 10%, 96%); --c-bg-highlight: #ffffff; - --c-bg-figure-backdrop: #b5bcc8; + --c-bg-figure-backdrop: #f0f0f0; --c-text: hsl(220, 20%, 30%); --c-text-inverted: hsl(220, 20%, 100%); --c-text-muted: #5d5980; @@ -734,6 +738,10 @@ footer { filter: none; } + .dark-mode-invert { + filter: none; + } + .card { box-shadow: 0 0 3px 1px rgba(0, 0, 0, calc(0.5*var(--shadow-opacity))); }