mirror of
https://github.com/openglow-org/forgefirm.git
synced 2026-10-17 18:11:42 -07:00
The gnutls bbappend builds GnuTLS with --enable-ktls and installs /etc/gnutls/config with ktls = true, so after the handshake the kernel seals and opens forgectrl's HTTPS records (the kernel side is meta-openglow's CONFIG_TLS and patch 0016). It also backports GnuTLS dc016daf: 3.8.4 hands the kernel the record sequence number where a TLS 1.2 ChaCha20-Poly1305 connection's IV belongs, so every such connection failed the kernel's first decryption. forgectrl is the only program on the image that links GnuTLS. forgectrl.tls-records, in its own module (suite/tlsrec.py), reads the result from the outside with openssl s_client on loopback: a desktop offer (AES-GCM first) gets ChaCha20-Poly1305 over TLS 1.3 and 1.2 and the kernel takes both directions' keys; an AES-128-GCM-only offer, three times over each protocol, gets it, the kernel takes its keys, and the CAAM's job-ring interrupt counts the records; a TLS 1.2 CBC-only offer connects and stays in GnuTLS (the control for the kernel's counters); every copy of the panel page equals the plain-HTTP copy byte for byte, with no decrypt error; the kernel's drivers are rfc7539(chacha20-neon,poly1305-neon) and ctr-aes-caam with ghash-ce. Proof: on the image before these fixes the test failed on both bugs it names (the TLS 1.2 ChaCha20 page arrived empty with a decrypt error; the AES-GCM pages arrived damaged); on image 20260927224418 it passes. The unit suite (500 tests) and the coverage lint (0 uncovered paths) pass on the host.
38 lines
1.5 KiB
Python
38 lines
1.5 KiB
Python
# Copyright 2026 514 LLC d/b/a OpenGlow
|
|
# Written by Scott Wiederhold
|
|
# https://community.openglow.org
|
|
# SPDX-License-Identifier: MIT
|
|
|
|
"""The acceptance suite: one module per subsystem, imported in display
|
|
order. Each module registers its tests with @catalog.test."""
|
|
|
|
from . import image # noqa: F401,E402
|
|
from . import kernel # noqa: F401,E402
|
|
from . import forgectrl # noqa: F401,E402
|
|
from . import setup # noqa: F401,E402
|
|
from . import setup_dark # noqa: F401,E402
|
|
from . import setup_sheet # noqa: F401,E402
|
|
from . import logs # noqa: F401,E402
|
|
from . import motion # noqa: F401,E402
|
|
from . import cooling # noqa: F401,E402
|
|
from . import laser # noqa: F401,E402
|
|
from . import camera # noqa: F401,E402
|
|
from . import update # noqa: F401,E402
|
|
from . import cloud # noqa: F401,E402
|
|
# Last: it stands on the setup record's consent and on the cloud suite's dark print.
|
|
from . import exthost # noqa: F401,E402
|
|
from . import extcore # noqa: F401,E402
|
|
from . import extcall # noqa: F401,E402
|
|
from . import extdest # noqa: F401,E402
|
|
from . import extlife # noqa: F401,E402
|
|
from . import evmore # noqa: F401,E402
|
|
from . import extcat # noqa: F401,E402
|
|
from . import extmcode # noqa: F401,E402
|
|
from . import extwizard # noqa: F401,E402
|
|
from . import updlock # noqa: F401,E402
|
|
from . import homeoff # noqa: F401,E402
|
|
from . import bedsize # noqa: F401,E402
|
|
from . import extsender # noqa: F401,E402
|
|
from . import tray # noqa: F401,E402
|
|
from . import tlsrec # noqa: F401,E402
|