Files
git.stella-ops.org/docs
master dac8e10e36 feat(crypto): Complete Phase 2 - Configuration-driven crypto architecture with 100% compliance
## Summary

This commit completes Phase 2 of the configuration-driven crypto architecture, achieving
100% crypto compliance by eliminating all hardcoded cryptographic implementations.

## Key Changes

### Phase 1: Plugin Loader Infrastructure
- **Plugin Discovery System**: Created StellaOps.Cryptography.PluginLoader with manifest-based loading
- **Configuration Model**: Added CryptoPluginConfiguration with regional profiles support
- **Dependency Injection**: Extended DI to support plugin-based crypto provider registration
- **Regional Configs**: Created appsettings.crypto.{international,russia,eu,china}.yaml
- **CI Workflow**: Added .gitea/workflows/crypto-compliance.yml for audit enforcement

### Phase 2: Code Refactoring
- **API Extension**: Added ICryptoProvider.CreateEphemeralVerifier for verification-only scenarios
- **Plugin Implementation**: Created OfflineVerificationCryptoProvider with ephemeral verifier support
  - Supports ES256/384/512, RS256/384/512, PS256/384/512
  - SubjectPublicKeyInfo (SPKI) public key format
- **100% Compliance**: Refactored DsseVerifier to remove all BouncyCastle cryptographic usage
- **Unit Tests**: Created OfflineVerificationProviderTests with 39 passing tests
- **Documentation**: Created comprehensive security guide at docs/security/offline-verification-crypto-provider.md
- **Audit Infrastructure**: Created scripts/audit-crypto-usage.ps1 for static analysis

### Testing Infrastructure (TestKit)
- **Determinism Gate**: Created DeterminismGate for reproducibility validation
- **Test Fixtures**: Added PostgresFixture and ValkeyFixture using Testcontainers
- **Traits System**: Implemented test lane attributes for parallel CI execution
- **JSON Assertions**: Added CanonicalJsonAssert for deterministic JSON comparisons
- **Test Lanes**: Created test-lanes.yml workflow for parallel test execution

### Documentation
- **Architecture**: Created CRYPTO_CONFIGURATION_DRIVEN_ARCHITECTURE.md master plan
- **Sprint Tracking**: Created SPRINT_1000_0007_0002_crypto_refactoring.md (COMPLETE)
- **API Documentation**: Updated docs2/cli/crypto-plugins.md and crypto.md
- **Testing Strategy**: Created testing strategy documents in docs/implplan/SPRINT_5100_0007_*

## Compliance & Testing

-  Zero direct System.Security.Cryptography usage in production code
-  All crypto operations go through ICryptoProvider abstraction
-  39/39 unit tests passing for OfflineVerificationCryptoProvider
-  Build successful (AirGap, Crypto plugin, DI infrastructure)
-  Audit script validates crypto boundaries

## Files Modified

**Core Crypto Infrastructure:**
- src/__Libraries/StellaOps.Cryptography/CryptoProvider.cs (API extension)
- src/__Libraries/StellaOps.Cryptography/CryptoSigningKey.cs (verification-only constructor)
- src/__Libraries/StellaOps.Cryptography/EcdsaSigner.cs (fixed ephemeral verifier)

**Plugin Implementation:**
- src/__Libraries/StellaOps.Cryptography.Plugin.OfflineVerification/ (new)
- src/__Libraries/StellaOps.Cryptography.PluginLoader/ (new)

**Production Code Refactoring:**
- src/AirGap/StellaOps.AirGap.Importer/Validation/DsseVerifier.cs (100% compliant)

**Tests:**
- src/__Libraries/__Tests/StellaOps.Cryptography.Plugin.OfflineVerification.Tests/ (new, 39 tests)
- src/__Libraries/__Tests/StellaOps.Cryptography.PluginLoader.Tests/ (new)

**Configuration:**
- etc/crypto-plugins-manifest.json (plugin registry)
- etc/appsettings.crypto.*.yaml (regional profiles)

**Documentation:**
- docs/security/offline-verification-crypto-provider.md (600+ lines)
- docs/implplan/CRYPTO_CONFIGURATION_DRIVEN_ARCHITECTURE.md (master plan)
- docs/implplan/SPRINT_1000_0007_0002_crypto_refactoring.md (Phase 2 complete)

## Next Steps

Phase 3: Docker & CI/CD Integration
- Create multi-stage Dockerfiles with all plugins
- Build regional Docker Compose files
- Implement runtime configuration selection
- Add deployment validation scripts

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-23 18:20:00 +02:00
..
2025-11-25 08:01:23 +02:00
up
2025-11-25 22:09:44 +02:00
2025-12-11 02:32:18 +02:00
up
2025-11-26 20:23:28 +02:00
up
2025-12-12 09:35:37 +02:00
up
2025-11-25 22:09:44 +02:00
up
2025-12-13 09:37:15 +02:00
up
2025-12-14 23:20:14 +02:00
2025-12-20 12:15:16 +02:00
2025-12-20 12:15:16 +02:00

Stella Ops

Stella Ops isn't just another scanner—it's a different product category: deterministic, evidence-linked vulnerability decisions that survive auditors, regulators, and supply-chain propagation.

Stella Ops delivers four capabilities no competitor offers together:

  1. Signed Reachability Every reachability graph is sealed with DSSE; optional edge-bundle attestations for runtime/init/contested paths. Both static call-graph edges and runtime-derived edges can be attested—true hybrid reachability.
  2. Deterministic Replay Scans run bit-for-bit identical from frozen feeds and analyzer manifests. Auditors and incident responders can re-run historical findings and trust the results weren't tampered with.
  3. Explainable Policy (Lattice VEX) The lattice engine merges SBOM data, advisories, VEX statements, and waivers into a single verdict with human-readable justifications. Explicit "Unknown" state handling ensures incomplete data never leads to false safety.
  4. Sovereign + Offline Operation FIPS, eIDAS, GOST, SM, or PQC profiles are first-class toggles. Offline Kits and regional crypto profiles keep every decision inside your perimeter—air-gapped verification works by default.

Proof points: Decision Capsules (sealed evidence bundles), SBOM cartographing, deterministic replay manifests, lattice policy UI with OpenVEX, evidence-linked VEX decisions, and postquantum trust packs ready for regulated sectors.

Choose Your Path

If you want to… Open this Read time
Understand the promise and pain we solve overview.md ≈ 2 min
Run a first scan and see the CLI quickstart.md ≈ 5 min
Browse key capabilities at a glance key-features.md ≈ 3 min
Check architecture, road to production, or evaluate fit See "Dig deeper" below ≤ 30 min curated set

Explore the Essentials

  1. Value in context Overview compresses the "Why" + "What" stories and shows how Stella Ops stands apart.
  2. Try it fast Quickstart walks through fetching the signed bundles, configuring .env, and verifying the first scan.
  3. Feature confidence Key Features gives nine capability cards covering Decision Capsules, Delta SBOM, VEX-first policy, Sovereign crypto, Deterministic replay, and more.
  4. Up-next checkpoints Evaluation checklist helps teams plan Day-0 to Day-30 adoption milestones.
  5. Be dev-ready Developer Quickstart (29-Nov-2025 advisory) walks through the core repos, determinism tests, attestations, and starter issues for a mid-level .NET engineer.

Key capabilities that define Stella Ops

Capability What ships Why it matters
Decision Capsules Every scan result is sealed in a content-addressed bundle containing SBOM, vuln feed snapshots, reachability evidence, policy version, derived VEX, and signatures. Auditors can re-run any capsule bit-for-bit to verify the outcome—audit-grade evidence bundles.
Deterministic ΔSBOM & replay bundles Layer-aware cache + replay manifests keep scans reproducible even months later. Auditors can re-run any verdict with identical inputs, proving integrity without SaaS dependencies.
Pristine advisory mirrors OSV, GHSA, NVD, CNVD, CNNVD, ENISA, JVN, BDU, etc. are mirrored as immutable, per-source snapshots—never merged. Policy (via scanner.* / SCANNER__*) can trust, down-rank, or ignore sources without rewriting upstream data.
Lattice VEX engine (Evidence-Linked) OpenVEX, waivers, mitigations, and configs flow through deterministic lattice logic with proof-linked decisions. Every block/allow decision is explainable, replayable, evidence-linked, and environment-specific. Explicit "Unknown" state handling ensures incomplete data never leads to false safety.
Hybrid Reachability Static call-graph analysis + optional runtime/eBPF probes; both edge types can be attested with DSSE. Build + runtime signals share one verdict; prioritisation spans first-party code, base images, and live telemetry.
Transparency log + trust credits Cosign/DSSE bundles push to a Rekor-compatible log; the trust-credit ledger records who accepted a risk. Compliance teams get provenance plus accountable ownership trails.
Sovereign crypto profiles Swap in FIPS, eIDAS, GOST, SM, or PQ-ready providers without code changes. Meets regional crypto rules while keeping attestations verifiable.
Offline-first operations Offline Kit packages the pristine feeds, plug-ins, and configs; import CLI verifies everything locally. Air-gapped clouds get the same security posture as connected sites.
VEX Propagation Generate vulnerability status attestations your downstream consumers can automatically trust and ingest. Scalable VEX sharing across the supply chain—competitors export VEX formats; Stella provides a unified proof model that can be verified independently.
Enterprise readiness Transparent quotas, LDAP/AD SSO, restart-time plug-in SDK, generous free tier. Large teams keep their workflows without surrendering control to SaaS platforms.

Where Stella Ops differs from incumbents

Vendor Where they stop Stella Ops difference
Trivy / Syft SBOM generation as a CLI add-on; policy left to other products. SBOM + VEX are the system of record with deterministic replay, Decision Capsules, and signed evidence.
Snyk Container Static reachability bounded to first-party code. Hybrid reachability links code, base images, cluster policies, and optional runtime probes so the entire stack shares one score.
JFrog Xray Contextual scoring lives behind a closed service. Policies, DSSE bundles, Decision Capsules, and transparency logs are open, auditable, and portable.
Docker Scout Provenance remains inside Docker's ecosystem. Any OCI provenance is ingested, signed with your crypto profile, and replayed offline with full evidence.
Wiz / runtime sensors Runtime telemetry is separate from build-time SBOM/VEX evidence. Optional runtime probes feed the same deterministic lattice so build- and run-time context stay consistent; all evidence sealed in Decision Capsules.

Dig Deeper (curated reading)

Need more? The full documentation tree ADRs, permodule operations, schemas, developer references stays untouched under the existing directories (modules/, api/, dev/, ops/), ready when you are.

Configuration note: Feature exposure stays governed by StellaOps.Scanner.WebService (scanner.* / SCANNER__*) settings. See modules/scanner/architecture.md and modules/scanner/design/surface-env.md for the authoritative schema; the docs remain pristine while configuration decides what surfaces for each deployment.

© 2025 Stella Ops contributors AGPL3.0orlater