AER-1 corpus vectors / Unicode vectors
unicode-nfd-form
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 same visible string in NFD form (c, a, f, U+0065, U+0301 COMBINING ACUTE ACCENT): six bytes, SHA-256 as stated in draft-zambo-aer1-18 Section 4. The recomputed digest MUST equal the stated commitment, and MUST differ from the NFC commitment.
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_base64": "Y2FmZcyB",
"payload_utf8_hex": "63616665cc81",
"sha256": "81ef060bcd98adc7824eb5c1ada83c32491b16018e11e79f00ab9d09e04b015a"
}
Expected result
expected: match
Checks it exercises
| Check | Requirement | Why |
|---|---|---|
| digest agreement | must-pass | The corpus records expected as match 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.