AER-1 corpus vectors / Unicode vectors
unicode-nfd-against-nfc-commitment
Family: Unicode vectors. Source: base/unicode-vectors.json in the AER-1 corpus published at zambo.dev/aer1/corpus.json (kit 1.5.7, draft-zambo-aer1-26), file SHA-256 9bbfdd9709d47e1ca528ae17b2608df8b5061373f608a5c0125346905827e0d9.
What this vector covers
The NFD bytes presented against the NFC commitment (the sha256 field carries the NFC digest). The recomputed digest MUST NOT equal the stated commitment: a verifier MUST NOT normalize the payload and then report agreement.
Rule it exercises
draft-zambo-aer1-18 Section 4: producers and verifiers MUST NOT apply Unicode normalization (such as NFC or NFD) to the canonical bytes at any point. Visually identical strings with different UTF-8 byte sequences are different payloads and hash differently, by design. Presenting the NFD bytes against the NFC commitment is a verification failure, not a match.
Input
The vector input, exactly as published in the corpus:
{
"form": "NFD payload, NFC commitment",
"payload_base64": "Y2FmZcyB",
"payload_utf8_hex": "63616665cc81",
"sha256": "850f7dc43910ff890f8879c0ed26fe697c93a067ad93a7d50f466a7028a9bf4e"
}
Expected result
expected: mismatch
Checks it exercises
| Check | Requirement | Why |
|---|---|---|
| digest agreement | must-fail | The corpus records expected as mismatch for this vector. |
Try Zambo free: add Zambo to your AI to run this kind of check on your own agent work, with 20 free calls per day and a Day Pass at $0.99 for 24h when you need more. Every call returns a verifiable receipt, and a receipt proves the saved result was not changed.
See the full set in the AER-1 corpus vectors index and the AER-1 corpus checks index, or read the standard itself: draft-zambo-aer1-26.