Try Verify

See it work. Nothing to install, nothing leaves your browser.

Three different things happen on this page, and it matters which is which.

  1. Computed here, now

    Fingerprint your file

    Your browser computes a real SHA-256 of a file you choose. That is an identity — it says exactly which bytes you have. It is not an inspection of the file and it says nothing about whether the file is safe.

  2. A stored answer

    Read a recorded example

    Fifteen situations were put through the real reference kernel once, and their exact answers were written down. Reading one back is not the same as running it now. Each one carries the digest of the input it came from and the command that re-runs it.

  3. Runs the kernel

    Evaluate a record in your terminal

    Only the CLI actually runs the assurance kernel. It takes a record and its pins, and evaluates them on your machine. The browser cannot do this, and this page never pretends otherwise.

    How to run it →

What is a “record” and what are “pins”?

A record (a bundle) is a single JSON file gathering everything about one claim: the artifact, the evidence produced about it, which run produced that evidence, the policy being applied, and the authority under which it is applied.

Pins are four digests handed in separately, from outside: what the record should be, what the policy should be, what the authority should be, and what the artifact should be. They are the caller committing in advance to what they expect, so the record cannot simply assert its own identity.

You do not need to build one to follow this page. Ready-made examples ship with the repository under content/kernel-fixtures/inputs/, and the Terminal page shows how to evaluate them.

How this page works, step by step
E The mechanism

What happens when you choose a file.

How this works

  1. 01

    Your browser reads the bytes

    The file is opened into memory by the page you already have. No copy is made, and no request is prepared.

  2. 02

    Web Crypto computes SHA-256 on your device

    The browser’s own cryptography, the same implementation used for TLS, reduces those bytes to one 64-character value.

  3. 03

    The digest appears; the file does not move

    This site is a set of static files with no server behind it. There is no endpoint that could receive an upload even if the code tried.

F Step by step

How to use this page, from zero.

Step by step

You do not need to install anything or understand cryptography to follow this page. Four actions, in order.

  1. Press "Choose a file" and pick anything from this device — a photo, a PDF, a document.

    You will see the filename, its size, and a long line of 64 letters and numbers.

    That means that long line is the file’s fingerprint. Two files with the same fingerprint are the same file. Two with different fingerprints are different files, even if they look identical.

  2. Look at the second demo, where two almost-identical sentences sit side by side.

    You will see one character differs between them, and their two fingerprints share almost nothing.

    That means a change too small for a person to notice changes the fingerprint completely. Nobody can quietly alter a file and keep its identity.

  3. Open the list of fifteen situations and click any of them.

    You will see a result — PASS, FAIL or NO_CONSTA — with an explanation of what was asked and what was found.

    That means these are answers the real engine gave, written down earlier. The panel names the exact input each one came from.

  4. Inside any situation, open "Where this answer came from".

    You will see the digests of the input, and a command you can run yourself.

    That means nothing here asks you to take it on trust. You can reproduce any of these answers on your own machine.

If it does not work If no fingerprint appears, your browser may be an older one without the cryptography this uses. Nothing was sent anywhere; try a current Chrome, Safari, Firefox or Edge.

A Local file fingerprint

What is this, exactly?

This demo does not upload your file. The digest is computed on this device by your browser’s Web Crypto implementation, and this site has no server to receive it.

Any file. Nothing leaves your browser.

No file chosen yet.

D Take it with you

Download a report of this session

Everything you fingerprinted or compared on this page can be exported as a JSON file, built entirely in your browser. No server is involved.

B One byte

How much does identity change?

Original

SHA-256 Computing…

Changed by one character

SHA-256 Computing…

The difference

One character: 4021 became 4022. A human reviewer skims past it. The digests have nothing in common.

Leading hex characters shared by the two digests: —

Verify treats these as two unrelated artifacts, because that is what they are. An approval recorded for one says nothing about the other.

C Scenario library

What does the reference kernel actually say?

Recorded kernel output Not a simulation · not a live run

Fifteen situations were put through the actual Master Front NextGen reference assurance kernel, and these are its exact answers, recorded with the digest of each input. Reading a recording is not the same as evaluating now: the command beside each one re-runs the kernel on that scenario’s versioned inputs on your own machine. And running the kernel is not the same as being independently certified, which this is not.

Situations

VALID

Everything lines up

The bytes match their pin, the evidence is current, complete and undisputed, and the rule the policy asked about is satisfied.

Record interpretable yes
Security assessment PASS — Pass: the evidence answers the question in the affirmative
Release authority never granted
Diagnostic codes the core returned

none

Where this answer came from
Source candidate
R2.6.0-AC7
Snapshot content root
55187fd81c8351bba35d9a22e05ed3fa97a37d325ace75a3afe58632aef25e44
Bundle SHA-256
17120f16dbb28c3735618b024add127b08e897fc899c8fcb7e583ad2ab2e68e9
Deciding core size
1060 non-blank, non-comment lines
Mirrors source test
07_TESTS/test_kernel.py::test_001

Exact output of the AC7 reference kernel at recording time. Not a simulation, and not an independent certification. Replaying this file is not the same as evaluating now: use `verify kernel-evaluate --scenario <id>` to re-run the kernel against the versioned inputs beside it.

Re-run this yourself, live
node cli/bin/verify.mjs kernel-evaluate --scenario VALID --json

That command evaluates this scenario’s versioned inputs with the kernel on your machine and reports execution_mode=LIVE_REFERENCE_KERNEL. What you are reading above is the recording made earlier, reported as RECORDED_REPLAY by `verify demo`.

Full kernel result
{
  "authority_sha256": "48151d5d76902eac6ee32c605da1b9b29c079ee391200182b82b0285a4b9b556",
  "bundle_sha256": "17120f16dbb28c3735618b024add127b08e897fc899c8fcb7e583ad2ab2e68e9",
  "causally_assessed_run_ids": [
    "RUN-1"
  ],
  "claims": [
    {
      "claim_id": "CLAIM-SAFE",
      "evidence_ids": [
        "E-RUNTIME"
      ],
      "findings": [],
      "status": "PASS"
    }
  ],
  "errors": [],
  "notes": [
    "REFERENCE_KERNEL_ONLY",
    "EVALUATOR_EVALUATES_EXTERNAL_AUTHORITY_AUTHORIZES",
    "NO_SECURE_RUNNER",
    "NO_OPERATIONAL_EFFECT_CLAIM"
  ],
  "policy_sha256": "3729ec67b21a5bd31e23409d8bb4603336fc1dde27871c2f9c50a20269872838",
  "properties": [
    {
      "evidence_ids": [],
      "findings": [],
      "property_id": "MF-P001-BUNDLE-PINNED",
      "status": "PASS"
    },
    {
      "evidence_ids": [],
      "findings": [],
      "property_id": "MF-P002-AUTHORITY-PINNED",
      "status": "PASS"
    },
    {
      "evidence_ids": [],
      "findings": [],
      "property_id": "MF-P003-POLICY-PINNED",
      "status": "PASS"
    },
    {
      "evidence_ids": [],
      "findings": [],
      "property_id": "MF-P004-SUBJECT-PINNED",
      "status": "PASS"
    },
    {
      "evidence_ids": [],
      "findings": [],
      "property_id": "MF-P005-EVIDENCE-CONTENT-INTEGRITY",
      "status": "PASS"
    },
    {
      "evidence_ids": [],
      "findings": [],
      "property_id": "MF-P006-EVIDENCE-SUBJECT-BINDING",
      "status": "PASS"
    },
    {
      "evidence_ids": [],
      "findings": [],
      "property_id": "MF-P007-RUN-BINDING",
      "status": "PASS"
    },
    {
      "evidence_ids": [],
      "findings": [],
      "property_id": "MF-P008-STALENESS-CHECKED",
      "status": "PASS"
    },
    {
      "evidence_ids": [],
      "findings": [],
      "property_id": "MF-P009-TIME-BOUNDARIES",
      "status": "PASS"
    },
    {
      "evidence_ids": [],
      "findings": [],
      "property_id": "MF-P010-EVIDENCE-COMPLETENESS",
      "status": "PASS"
    },
    {
      "evidence_ids": [],
      "findings": [],
      "property_id": "MF-P011-CONFLICT-FREE",
      "status": "PASS"
    },
    {
      "evidence_ids": [],
      "findings": [],
      "property_id": "MF-P012-ONE-USE-CONSISTENCY",
      "status": "PASS"
    },
    {
      "evidence_ids": [],
      "findings": [
        {
          "code": "CAUSAL_PREAUTH_NOT_IMPLEMENTED",
          "evidence_ids": [],
          "message": "Offline evaluation cannot prove consume -> capability -> effect ordering",
          "object_id": "MF-P013-CAUSAL-PREAUTH"
        }
      ],
      "property_id": "MF-P013-CAUSAL-PREAUTH",
      "status": "NO_CONSTA"
    },
    {
      "evidence_ids": [],
      "findings": [],
      "property_id": "MF-P014-STRUCTURAL-INDEPENDENCE",
      "status": "PASS"
    },
    {
      "evidence_ids": [],
      "findings": [],
      "property_id": "MF-P015-SELF-AUTHORIZATION-DISABLED",
      "status": "PASS"
    },
    {
      "evidence_ids": [],
      "findings": [],
      "property_id": "MF-P016-POLICY-CONSUMED-IS-PINNED-POLICY",
      "status": "PASS"
    },
    {
      "evidence_ids": [],
      "findings": [],
      "property_id": "MF-P017-UNKNOWN-IS-NOT-PASS",
      "status": "PASS"
    },
    {
      "evidence_ids": [],
      "findings": [],
      "property_id": "MF-P018-VERIFIED-EVIDENCE-IS-CONSUMED-EVIDENCE",
      "status": "PASS"
    },
    {
      "evidence_ids": [],
      "findings": [],
      "property_id": "MF-P019-CHANGE-IMPACT-CHECKED",
      "status": "PASS"
    }
  ],
  "record_valid": true,
  "release_authority": false,
  "schema": "MFAK-RESULT-2.3",
  "security_assessment_status": "PASS",
  "subject_sha256": "5a30ea7597d1c5a244200812200e9a309dd6e53c1bc21733c3ec0024060a991e"
}