Skip to content

docs: eSec is Implemented in eos, and one part is not - #1

Open
srpatcha wants to merge 1 commit into
masterfrom
docs/status-implemented-in-eos
Open

docs: eSec is Implemented in eos, and one part is not#1
srpatcha wants to merge 1 commit into
masterfrom
docs/status-implemented-in-eos

Conversation

@srpatcha

@srpatcha srpatcha commented Sep 1, 2026

Copy link
Copy Markdown
Member

This repository has three files. The README said:

Status: Planned. There is no implementation in this repository yet.

The crypto services are Implemented under §28 — "feature exists and is
usable", evidenced by code and functional tests. In eos, at
services/crypto/: 15 source files and seven test suites, all passing.

test_crypto  test_crypto_aes  test_crypto_ecc  test_crypto_rsa
test_crypto_sha512  test_crypto_ed25519_loworder  test_crypto_failclosed

But flatly upgrading the status would overstate it

Package signature verification is Experimental at best, and this README
should not let a reader assume otherwise:

services/pkg/eos_pkg.c:94
static const uint8_t eos_pkg_public_key[32] = {0};

An all-zero trust anchor. The low-order-key rejection that makes such a key fail
closed rather than open only just landed (embeddedos-org/eos#99) — before it,
that key accepted roughly one arbitrary signature in four. Tracked as
embeddedos-org/eos#98.

A verifier with no real key authenticates nothing. A repository called "the
security framework for EmbeddedOS" is exactly the wrong place to round that up
to "Implemented", so the README now distinguishes the two.

This is the same reasoning eos#84 applies with EOS_ALLOW_STUB_CRYPTO, and that
eAI applies with its compile-time #warning on secure_boot.c: a stub that
announces itself is safe, and one that reads as finished is not.

Also in this change

Replaces the old §24 citation with v2.0's sharper pair:

§10: Repositories should not be the dependency API.

§21.1: A subsystem earns a separate repository when it has a stable interface,
independent release lifecycle, clear maintainers and multiple consumers.

Adds the component manifest (embeddedos-org/embeddedos-stack#20) as the way to
depend on eSec, and records why splitting early is costly: there are two
independent Ed25519 implementations in the platform, in eos and eBoot, and the
same low-order-key bypass was present in both. Duplication across repositories is
how one fix stops being one fix.

The README said "Status: Planned. There is no implementation yet." The
crypto services are Implemented under §28 — 15 source files and seven test
suites passing in eos, at services/crypto/.

But flatly upgrading the status would overstate it. Package signature
verification is Experimental at best: services/pkg/eos_pkg.c verifies
against eos_pkg_public_key[32] = {0}, and the low-order-key rejection that
makes an all-zero anchor fail closed rather than open only just landed
(eos#99). A verifier with no real key authenticates nothing, and a README
claiming a working security framework should say so. Tracked as eos#98.

Also replaces the old rationale with v2.0 §10 and §21.1, adds the component
manifest as the way to depend on this, and records why splitting early is
costly — two Ed25519 implementations across eos and eBoot carried the same
bypass.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant