SAMPLE JWKS — Duplicate kid
Two keys of different types published under the same kid — what a botched key rotation leaves behind. A resolver that returns the first match silently verifies against the wrong key type instead of reporting the ambiguity.
{
"keys": [
{
"kty": "RSA",
"use": "sig",
"alg": "RS256",
"kid": "novus-p7-rsa-2026",
"n": "vFQ-FKvpOhgmcptUhCZk9Qi_Lc9ginBBdHVVfX7GBD1Lre3h2zBK0ZuqzKhrXjag-hMcyRVolyoPnfpCGmn-Jr2QtPAE0UjuG07wWf1I6dhg7dPHjkeWAEzDqT2tb244jnYKVPVzTj7X6L3BUveZfFiKqzGZp2peQSJ56Coe13XSRdtDUtoG1VYu50Ps9QJR6oKv9b0ujuKc7dhL_ea6vWrcgVLggKj02auQehLqZ8HOasmxPpr_LW0kcEwCShbHPc2qkgZ7YqNocxbSB9AdO1Fn3GRVAcY1huI3nLPQ4xL7bzmiinyEac0nPRfcyzIrtZI_3LHaNrW7lSbMWX-9tw",
"e": "AQAB"
},
{
"kty": "EC",
"use": "sig",
"alg": "ES256",
"kid": "novus-p7-rsa-2026",
"crv": "P-256",
"x": "W-DRtkDz4KfDgUk8eD0xdb-UrRrl_ciiSWwJ07uX7Ik",
"y": "9IE-5maLT4yN_XTTwuR2AEjeuENKSTwGqGGqhmQli-E"
}
]
}
Specifications
- Keys
- 2
- Issue
- two different keys share one kid
- Kid
- novus-p7-rsa-2026
- Algorithms
- RS256 and ES256
- Sample Only
- true
- Seed
- 70117
Testing contract
Expected to fail- Scenario
- Resolve the kid from this set while verifying a token whose alg is RS256.
- Expected result
- The resolver either narrows by kid and alg to the RSA key or reports an ambiguous-kid error; it never attempts RS256 verification with the EC key.
What is a .json file?
JSON (JavaScript Object Notation) is a lightweight, text-based data-interchange format representing objects, arrays, strings, numbers, booleans, and null. It is language-independent, human-readable, and the dominant format for web APIs and configuration. It requires a single well-formed root value.
How to use this file
Use an example JSON file to test parsers and serializers, schema validation, Unicode and number-precision handling, and API request or response processing.
How to use this file for testing
“SAMPLE JWKS — Duplicate kid” is a deterministic Novus Examples fixture for JWT / JWKS testing, Error handling. Unsigned and SAMPLE-signed JWT variants plus JWKS documents — published sample material only, for auth parser tests.
Documented properties for this file: seed 70117. Compare results against paired or grouped companions on this page when present (clean↔damaged, searchable↔scanned, or format twins) so scores stay reproducible across runs.
Download the file once, keep the path stable in CI or local scripts, and treat the spec table as the contract: dimensions, seeds, field lists, and roles are intentional. Corrupt or invalid samples are labelled as such — expect parsers to fail loudly rather than silently accept them.
This is published, SAMPLE-only security material — never a real secret. Point certificate, key, or token parsers at it, test PEM/DER decoding and PKCS handling, and confirm your tooling reads the documented fields; any sample password is printed on this page.
These JSON fixtures are synthetic SAMPLE auth or tool-call shapes for harnesses — never production secrets or live tokens. Validate schema fields and alg variants against the documented role.
Code examples
import json
with open("jwks-duplicate-kid.json") as f:
data = json.load(f)
print(type(data), len(data))Related files
- jsonJWKS (Empty Keys) — SAMPLEEmpty JWKS keys array for edge-case JWKS loaders.

- jwtJWT — Intentionally Invalid SegmentsIntentionally invalid JWT (truncated) for parser error-path tests.

- jwtJWT (HS256 Expired) — SAMPLESAMPLE HS256 JWT with a past exp claim — for expiry-validation harnesses.

- jsonOAuth Error — Insufficient ScopeOAuth 2.0 SAMPLE error JSON (insufficient_scope) for client error-path tests.

- jsonOAuth Error — Invalid ClientOAuth 2.0 SAMPLE error JSON (invalid_client) for client error-path tests.

- jsonOAuth Error — Invalid GrantOAuth 2.0 SAMPLE error JSON (invalid_grant) for client error-path tests.

Generated by generation/security_p7.py. Free for any use, no attribution required — license.