Skip to main content
Everything that runs in your HYOK stack comes from one signed, reproducible release. You can review the source before you deploy, check the signed release on your own machine, and confirm that the stack in your AWS account runs exactly that release. The HYOK source code isn’t public. It’s available only in the Corsa app (Source audit) and in the verification kit, and only to workspace Owners and users with the Support role. Everyone with access to the Corsa app is covered by a non-disclosure agreement with Corsa, so you don’t need to sign anything extra. Corsa logs every source view and kit download.

Three levels of verification

All three levels start from Settings → Encryption → Verify. The Verify page shows the expected values from the signed manifest next to each command, so you can compare them yourself. Corsa never marks your stack as verified from its own data. The evidence is the output of the commands you run.

What a release contains

The code is built inside a builder image pinned by digest. Every code package except the small installer is signed by Corsa’s release process, and your stack refuses unsigned code. See Signed code only.

Level 1: Review the source in the app

1

Open Source audit

In Settings → Encryption → Verify, open Source audit. Pick the installed release or any newer one.
2

Note the release digest

Write down the release version and digest. You’ll compare them with your stack later.
3

Review the code

Focus on the decryption check (the only code that calls KMS Decrypt), the code that reports to Corsa, the installer, and the Secure Viewer files. Each file shows ✓ when your browser’s SHA-256 of it matches the signed manifest, or ✗ when it doesn’t.
Before an upgrade, open the diff view in Source audit to see the files added, removed, and changed between your installed release and the new one.

Level 2: Check and rebuild the release with the kit

The verification kit lets you check the release on your own machine and rebuild it.

Download the kit

On the Verify page, pick a release and click Download verification kit. Each file comes with its SHA-256. The download links expire after a few hours. The page shows the exact time. Download the kit again to get fresh links.

Verify the signature

Check the archive’s signature with cosign:
The Verify page shows the exact release identity to pass to --certificate-identity-regexp. On macOS, use shasum -a 256 instead of sha256sum.

Check the files and the release digest

The last command must print the release digest shown in the app. Corsa runs the same checks, plus the signature check, before it lets you install or upgrade to a release. It refuses a release that fails any of them, and your stack recomputes the digest again before it installs anything.

Reproduce the build (optional)

Releases are reproducible. With the same source commit, builder image, and SOURCE_DATE_EPOCH, the build produces byte-identical code packages, viewer files, and archive.
1

Load the builder image

Check that the loaded image’s digest equals builderImageDigest in build-recipe.json and manifest.json.
2

Unpack the source

3

Run the recorded build

Run the command from build-recipe.json with SOURCE_DATE_EPOCH set to the recorded value. You need Docker with Buildx.
4

Compare the output

Compare the rebuilt files with manifest.json and checksums.txt from the signed release. Never deploy a rebuild: your stack only installs the signed release.

Level 3: Check the running stack

verify.sh checks the stack running in your account against the signed release. It’s a short, readable bash script that uses only aws, jq, curl, sha256sum or shasum, base64, xxd, and openssl. It prints a report for your records and sends nothing to Corsa.
1

Open AWS CloudShell

Sign in to the AWS account that owns the stack and open CloudShell in the stack’s region.
2

Get verify.sh

Upload verify.sh and checksums.txt from the kit (Actions → Upload file), or copy the command from the Verify page. Read the script before you run it.
3

Run the check

The Verify page fills in your stack name, region, and the expected release digest.
4

Read the report

The script prints a PASS or FAIL line for each check and exits with a non-zero status if any check fails. Archive the output with the release materials.

What verify.sh checks

Before an upgrade, verify.sh checks the change set instead. See Upgrades. Run the check after setup and after every upgrade or rollback. Expected configuration changes are fine. Any release, code, viewer, code signing, or key protection failure is drift: see Drift.