Skip to main content

CRA Compliance Kit for IoT Devices

Meet EU Cyber Resilience Act (CRA) requirements in one pip install.

PyPI version Python License: MIT


Key Deadlines

Obligation Date Status
Vulnerability reporting (24h to ENISA) September 11, 2026 53 days
Full CRA conformity assessment December 11, 2027 18 months
Penalties for non-compliance Up to EUR 15M or 2.5% of global turnover Active

What This Kit Provides

Module CRA Requirement License
DeviceIdentityService (identity.py) Device identity, access control — Art. 10(2-3) MIT
FirmwareHealthService (firmware.py) Vulnerability tracking, CVE matching — Art. 13(1-3) MIT
InputClassifier (input_guard.py) Secure by default input handling — Art. 10(1) MIT
PhysicalActionGuard (action_guard.py) Hard-blocked & confirm-required actions — Art. 10(3) MIT
CycloneDX SBOM Generator (sbom/generator.py) SBOM maintenance for ENISA — Art. 13(8) MIT
GuardianSubsystem (commercial) Central security health scoring Gated — contact info@starcaller.uk
BehaviouralBaselineService (commercial) Welford anomaly detection Gated — contact info@starcaller.uk
MemoryProvenance (commercial) HMAC-SHA256 audit chain Gated — contact info@starcaller.uk
CrossOracleSigner (commercial) Inter-service request signing Gated — contact info@starcaller.uk

Quickstart

pip install cra-compliance-kit
from cra_kit.identity import DeviceIdentityService, TrustTier
from cra_kit.firmware import FirmwareHealthService
from cra_kit.input_guard import InputClassifier
from cra_kit.action_guard import PhysicalActionGuard

# 1. Enrol devices with tiered trust
identity = DeviceIdentityService()
identity.enrol_device("sensor-01", "temperature_sensor", trust_tier=TrustTier.ENVIRONMENTAL)

# 2. Check firmware against CVE database
fw = FirmwareHealthService()
check = fw.check_device("sensor-01", "gateway", "1.5.3")
print(f"Vulnerable to {len(check.vulnerabilities_found)} CVEs")

# 3. Sanitize every input
classifier = InputClassifier()
safe, findings = classifier.is_safe(user_input)

# 4. Restrict dangerous actions
guard = PhysicalActionGuard()
result = guard.check_action("format_storage")
assert result["allowed"] == False  # Hard blocked

# 5. Generate SBOM
python -m sbom.generator --product "MyIoTGateway" --version "2.1.0" --output sbom.xml

CRA Article Mapping

Article Requirement How We Satisfy It
Article 10(1) Secure by default configuration InputClassifier blocks injection, sanitises inputs before processing
Article 10(2) Device identity & authentication DeviceIdentityService — 5-tier trust model with certificate-based enrollment
Article 10(3) Access control mechanisms PhysicalActionGuard — 10 hard-blocked + 11 confirm-required actions, time-aware
Article 13(1-3) Vulnerability handling & remediation FirmwareHealthService — CVE matching, semantic version gating, severity scoring
Article 13(8) SBOM accessible to ENISA on request CycloneDX 1.5 generator with automatic installed-package scanning

Architecture Overview

Each module is self-contained with zero external dependencies (stdlib only). Modules store state in SQLite at ~/.cra_kit/ for persistence.

User Input
    |
    v
InputClassifier  ── detects 8 injection families (prompt, code, SQL, command, XSS, SSRF, traversal, format string)
    |
    v
DeviceIdentityService  ── authenticates, checks trust tier (0-4)
    |
    v
PhysicalActionGuard  ── blocks/confirms dangerous actions, time-gated at night
    |
    v
FirmwareHealthService  ── matches version against CVE database
    |
    v
SBOM Generator (CycloneDX 1.5 XML)

Open-Core Licensing

Package Type Modules License Price
Open Source identity.py, firmware.py, input_guard.py, action_guard.py, sbom/generator.py MIT Free
Professional (coming soon) Guardian + Baselines + Provenance + Signing Commercial 1,500/yr
Enterprise (coming soon) All pro + priority support + SLA Commercial 7,500/yr

Requirements

  • Python 3.9+
  • SQLite (built into Python standard library)
  • Zero external dependencies

Who Built This

StarTeQ Ltd — the team behind Starcaller, a privacy-first AI appliance with a 9.3/10 security trust score and 8-module security stack in production.

Contact: info@starcaller.uk Website: starcaller.uk/cra-compliance

CRA Watch — Live Vulnerability Monitoring

Monitor your registered products in real time at the CRA Watch Dashboard.

  • Daily CISA KEV polling at 06:00 UTC
  • NVD + EPSS enrichment on-demand
  • CycloneDX VEX generation
  • ENISA Article 14 notification drafts
  • 24hr / 72hr / 14-day deadline tracking

CRA Watch

Metadata

Release files for cra-compliance-kit 1.0.5

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for cra-compliance-kit 1.0.5
File Size Uploaded
cra_compliance_kit-1.0.5.tar.gz 13.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for cra-compliance-kit 1.0.5
File Interpreter ABI Platform
cra_compliance_kit-1.0.5-py3-none-any.whl Python 3 none any Details

Total release size: 30.0 kB

Release files / cra_compliance_kit-1.0.5.tar.gz

Download URL cra_compliance_kit-1.0.5.tar.gz
Size 13.7 kB
Tags Source
SHA-256 checksum
How to use checksums
50abf6ad64fa49ba3438e7be17d275cc2017698efa71e642c7a287dcaefedbf7
BLAKE2b-256 checksum
How to use checksums
70d0d55653e22dd1c685b5e4e7c6fc6899d7cad6e893f729009335959b8cac5a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.9

Release files / cra_compliance_kit-1.0.5-py3-none-any.whl

Download URL cra_compliance_kit-1.0.5-py3-none-any.whl
Size 16.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
3c91cd98807a4b2cf6907e48d4a3e4394125c32961fb723c4f63836b7cc7baa9
BLAKE2b-256 checksum
How to use checksums
e30d7666b797d7d7c8821417d2715faa6bc297e2be2aab5a3b3c9f7ba5c29f71
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.9

Release history Release notifications | RSS feed

This release

1.0.5 This release

2 release files

1.0.4

2 release files

1.0.3

2 release files

1.0.2

2 release files

1.0.1

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page