Public key is 32 bytes
Every key's x value must be base64url that decodes to exactly 32 bytes.
What this check verifies
This check reads the x member of every key and confirms it is a base64url string that decodes to exactly 32 bytes. If x is missing, is not a string, decodes to the wrong length, or is not valid base64url, the check fails.
For an Ed25519 OKP key, x is the public key: the 32-byte curve point, encoded as base64url without padding, per RFC 8037.
{ "kty": "OKP", "crv": "Ed25519", "x": "11qYAYKxCrfVS_7TyWQHOg7hcvPapiMlrwIaaPcHURo", "kid": "..." }
The string above decodes to 32 bytes. This is one of three structural per-key checks, alongside the key type and the curve, and it aggregates across all keys.
Why it matters
x is the actual public key. A verifier uses these 32 bytes to check your Ed25519 signature. If x decodes to the wrong number of bytes, it is not a valid Ed25519 public key, and the verification cannot run. A common cause of a length other than 32 is the wrong encoding: standard base64 with + and /, hex, or a value that includes padding or whitespace can decode to a different length or fail to decode.
Because a malformed public key cannot verify a signature, this makes the directory invalid. The verdict is INVALID rather than a lower grade.
How to fix it
- Confirm
xis the 32-byte Ed25519 public key encoded as base64url (RFC 4648 section 5), not standard base64 and not hex. - Use the unpadded base64url alphabet:
A-Z,a-z,0-9,-, and_. A 32-byte value encodes to 43 base64url characters with no=padding. - Export the public key from a JWK exporter rather than hand-encoding it, so the encoding is correct by construction.
The usual cause is encoding the key with the wrong alphabet (+// instead of -/_), including padding or newlines, or accidentally serializing a different field. Export the public JWK from your key library and copy x verbatim.
References
- RFC 8037 defines the
xparameter as the base64url-encoded Ed25519 public key. - RFC 7517 defines the JSON Web Key format.
- How grading works explains why a malformed public key makes the directory invalid.
How the checker scores this
- Tier
- JWKS directory
- Role
- Authoritative. Failing this can lower the grade ceiling or change the verdict.
- Verdict effect
- Failing makes the verdict INVALID.
- Point deduction
- A failure deducts 25 points; a warning deducts 6.