Skip to content
🔧 Developer beta launches 30 September 2026 — free for developers. Flash your own ESP32-S3 and test it. Learn more →

Software Bill of Materials (SBOM)

Artefact Components Document
Firmware, ESP32-S3 8 cryptin-firmware-sbom.json
CLI, Linux x64 8 cryptin-cli-linux-x64-sbom.json
CLI, Windows x64 5 cryptin-cli-win-x64-sbom.json

All three are SPDX 2.3 JSON. The two CLI documents are regenerable with scripts/make-sbom-cli.py in the SDK repository.

In compliance with the EU Cyber Resilience Act (CRA), lake8.dev publishes the Software Bill of Materials for the Crypt-in firmware.

Format: SPDX 2.3 JSON  |  Scope: Crypt-in firmware for ESP32-S3  |  Firmware version: beta-2026-09  |  Platforms: Windows and Linux — one SBOM, valid for both  |  Last updated: July 2026

This document is not platform-specific. Every version listed below is pinned exactly, so a Windows host and a Linux host resolve to the same components: one SBOM describes both, and there is no second document to look for.

⬇ Download SBOM (SPDX 2.3 JSON)

Component Version License
Monocypher 4.0.3 BSD-2-Clause OR CC0-1.0
arduino-esp32 3.3.9 LGPL-2.1-only
ESP-IDF 5.5.4+sha.735507283d Apache-2.0
platform-espressif32 (pioarduino mirror) 55.03.39 Apache-2.0

Host tools (Python — not in the firmware image)

Section titled “Host tools (Python — not in the firmware image)”
Component Version License
hidapi (Python) 0.15.0 BSD-3-Clause OR GPL-3.0-only
PyNaCl 1.6.2 Apache-2.0
cryptography (Python) 49.0.0 Apache-2.0 OR BSD-3-Clause

All Python tool versions are pinned exactly in tools/requirements.txt — no >= ranges — so this table is reproducible rather than indicative: a fresh install on Windows and one on Linux both resolve to these versions and no others. That is what makes a single SBOM valid for both platforms.

Monocypher ships vendored under firmware/src/crypto/, and its header carries an unsubstituted __git__ placeholder instead of a version string. The 4.0.3 version above was established by SHA-256 comparison of monocypher.c, monocypher.h, monocypher-ed25519.c and monocypher-ed25519.h against the official 4.0.3 release tag: all four files are byte-for-byte identical to that release.

Format: SPDX 2.3 JSON  |  Scope: cryptin CLI 1.0.0, self-contained .NET 9 build for linux-x64  |  Last updated: August 2026

⬇ Download SBOM (SPDX 2.3 JSON)

Component Version License
CryptinSDK 1.0.0 Apache-2.0
HidSharp 2.6.4 Apache-2.0
System.IO.Ports 9.0.0 MIT
runtime.linux-x64.runtime.native.System.IO.Ports 9.0.0 MIT
runtimepack.Microsoft.NETCore.App.Runtime.linux-x64 9.0.10 MIT

System libraries, not bundled (DEPENDS_ON)

Section titled “System libraries, not bundled (DEPENDS_ON)”
Component Version License
libudev provided by the host LGPL-2.1-or-later
OpenSSL provided by the host Apache-2.0

The CLI binary is self-contained for .NET but requires two system libraries:

  • libudev — USB HID access
  • OpenSSL — TLS

They are declared DEPENDS_ON in the SBOM, not CONTAINS: they are not bundled in the binary and must be present on the target system.

After copying the binary to a target machine, test the commands that touch the device, not only the ones that touch files:

Terminal window
# Following packaging/LINUX.md
cryptin status # talks to the dongle over HID -> needs libudev
cryptin reset # device operation
cryptin recover # device operation

encrypt and decrypt can succeed on a system where HID access is broken, because they do their work on files. A packaging error in the libudev dependency therefore shows up only on status, reset and recover — which is exactly why those three are the ones to run.

Format: SPDX 2.3 JSON  |  Scope: cryptin CLI 1.0.0, self-contained .NET 9 build for win-x64  |  Last updated: August 2026

⬇ Download SBOM (SPDX 2.3 JSON)

Component Version License
CryptinSDK 1.0.0 Apache-2.0
HidSharp 2.6.4 Apache-2.0
System.IO.Ports 9.0.0 MIT
runtimepack.Microsoft.NETCore.App.Runtime.win-x64 9.0.10 MIT

There is no DEPENDS_ON section here: on Windows the equivalents of libudev and OpenSSL are part of the operating system itself, so the Windows document has five components where the Linux one has eight. The difference between the two SBOMs is that, not a difference in what the CLI does.

The same CVE note applies: track the runtime 9.0.10, not net9.0.

This SBOM covers the firmware running on the ESP32-S3 dongle and the internal Python host tools used to test it. Those tools are cross-platform — the same code runs on Windows, Linux and macOS wherever Python and hidapi are available — but they are a test harness, not a distributable SDK. See Python tools.

The Windows client (Personal v1) is a different program entirely — not the Python tools on Windows — with its own language and its own dependency tree. It is open source under GPL-3.0 — the SDKs are Apache-2.0, see Licence — but it is not covered by this SBOM.

The CLI is covered by its own two documents above — one per platform — since August 2026. Until then this page stated that the CLI had no SBOM: that is no longer true, and the sentence has been corrected rather than left standing.

Still not covered:

  • The Windows client, Personal v1 — a separate program with its own dependency tree. It is GPL-3.0, but it has no SBOM of its own yet
  • The licence server (proprietary, closed source)

The firmware is built with the PlatformIO / pioarduino toolchain listed under Firmware components. The reference build for beta-2026-09 was produced on Windows; the toolchain itself is cross-platform, and the component versions above are what determine the resulting image, not the operating system that ran the compiler.

If you discover a vulnerability in any listed component, report it to security@lake8.dev under the Vulnerability Disclosure Policy.

We will coordinate disclosure with the upstream maintainer and issue a firmware update within 90 days of confirmation.

Alcuni contenuti sono stati redatti con il supporto di strumenti di intelligenza artificiale generativa e revisionati dall'autore. Le immagini hardware hanno scopo puramente illustrativo.

Some content was drafted with the support of generative AI tools and reviewed by the author. Hardware images are purely illustrative.

Einige Inhalte wurden mit Unterstützung generativer KI-Werkzeuge verfasst und vom Autor überprüft. Hardware-Abbildungen dienen ausschließlich illustrativen Zwecken.

Algunos contenidos han sido redactados con el apoyo de herramientas de IA generativa y revisados por el autor. Las imágenes de hardware tienen carácter meramente ilustrativo.

In caso di conflitto tra versioni linguistiche, prevale il testo in lingua italiana.