Skip to content

Real relay-integration test (crypto-verified) + full module suite in CI - #10

Merged
sinkog merged 1 commit into
mainfrom
devel
Jul 19, 2026
Merged

Real relay-integration test (crypto-verified) + full module suite in CI#10
sinkog merged 1 commit into
mainfrom
devel

Conversation

@sinkog

@sinkog sinkog commented Jul 19, 2026

Copy link
Copy Markdown
Member
  • relay_integration_test.go: drives execute through a cic-flow that does REAL RSA-SHA256 signing against a fake OCI server that VERIFIES the draft-cavage signature the way OCI does (reconstructs the signing string from the wire headers, RSA-verifies). Proves the guest's canonical string is consistent with what it sends. Negative: bad signature → 401 → execute failed. Stdlib + wazero only (no relay dependency).
  • mk/wasm.mk: wasm.test now runs the module's whole go test suite (was -run TestHostLoad), so all 35 assertions — host-load, domain unit (validate/plan/observe/execute/destroy/invoke/poll), integration — are CI-guarded. Confirmed green on the runner.

Adds a cryptographically real end-to-end proof of the sign+send path, and closes
a CI gap where the host-side/integration tests only ran locally.

- relay_integration_test.go: drives the guest's execute through a cic-flow host
  that does REAL RSA-SHA256 (pkcs1v15) signing against a fake OCI server which
  VERIFIES the draft-cavage signature the way OCI does — reconstructing the
  signing string from the wire headers and RSA-verifying it. Proves the guest's
  canonical string is consistent with the headers it sends. A negative test
  confirms a non-verifying signature → 401 → execute reports the step failed.
  Imports only stdlib + wazero; never the relay's Go packages (RO from here).
- mk/wasm.mk: wasm.test now runs the module's whole go test suite (was
  -run TestHostLoad only), so all 35 assertions — host-load, domain unit
  (validate/plan/observe/execute/destroy/invoke/poll), and the integration
  tests — are guarded in CI, not just the host-load smoke tests.

Full local CI green (golang.quality, wasm.build/integrity/test full suite, check,
verify-release, manifest, pytest).

---
[signing-metadata]
key = cic-my-sign-key
signature = vault:v1:MEUCIQCs5dWyqncnp8c2WsJqWOjsDaF/kNVAH7zy1t0GIIVEWAIgTAywour1ztkW5NCZQAqlxZhMGKWU6sCwMEE0h1UKZGc=
hash-algorithm = sha256
digest = h/d8Cde6poZ08zaszT5x/Ba2kmWy7qh3jO9SHDzBZJ4=

[certificate]
-----BEGIN CERTIFICATE-----
MIICBjCCAaygAwIBAgIUSnRMR6RPnEbg296XWPOqq/u5PCwwCgYIKoZIzj0EAwIw
QzELMAkGA1UEBhMCSFUxGTAXBgNVBAoMEENlbnRyYWxJbmZyYUNvcmUxGTAXBgNV
BAMMEENJQyBEZXZlbG9wZXIgQ0EwHhcNMjYwMzIwMTMyMjU5WhcNMjYxMjMxMTMy
MjU5WjBFMQswCQYDVQQGEwJIVTEZMBcGA1UECgwQQ2VudHJhbEluZnJhQ29yZTEb
MBkGA1UEAwwSR2Fib3IgWm9sdGFuIFNpbmtvMFkwEwYHKoZIzj0CAQYIKoZIzj0D
AQcDQgAEIG2CVmTfmLB9pLLclj7YmP2eedAjklpy4LGrU2ijoiy6Xqpuybv7OgJe
i+ez31s65NEV8+X/ByeX1cstR988z6N8MHowCQYDVR0TBAIwADAdBgNVHQ4EFgQU
yZN6AIX/TNnIJ9GwAa/NRN3ujHAwHwYDVR0jBBgwFoAUXn6CHYzPUqU4JVP8g+OS
WeDYjhcwDgYDVR0PAQH/BAQDAgeAMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEF
BQcDBDAKBggqhkjOPQQDAgNIADBFAiEA+bFzXRoJ4PCQbhAAtpkcMjt0vNj5rEW0
lOMBGDNyaWkCIB1vmM7PcZzv/c9bIrxF5kqv6QXomouhByUfeNUTbpKW
-----END CERTIFICATE-----
@sinkog
sinkog merged commit 9cfd689 into main Jul 19, 2026
2 checks passed
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