JWK kid Uniqueness Check

Find repeated case-sensitive key IDs in a supplied JWK key-ID list without treating every duplicate as a standards violation.

Description

A JWK key ID helps select a key, often during rollover.

A JWK key ID helps select a key, often during rollover. Repeated IDs can complicate selection, although the JWK standard allows circumstances in which different keys share an ID, so a duplicate is not automatically a standards violation.1, 2

Find repeated case-sensitive key IDs in a supplied JWK key-ID list without treating every duplicate as a standards violation.

When to use JWK kid Uniqueness Check

Use this tool to find repeated case-sensitive key IDs in a supplied JWK key-ID list without treating every duplicate as a standards violation.

Choose the text, counts, explicit reference time or format parameters requested by this tool. Follow the stated byte, epoch-time and randomness assumptions.

How to use JWK kid Uniqueness Check and understand its results

  1. Choose the text, counts, explicit reference time or format parameters requested by this tool. Follow the stated byte, epoch-time and randomness assumptions.
  2. Enter keyIds using the field table and calculation rules, then run the tool.
  3. Read unique, duplicates. The explanation below defines the units, signs, ordering and any flags or placeholder values.
  4. If the tool reports an input issue, correct the values and run it again. Apply the stated assumptions when interpreting a successfully returned result.
Input fieldMeaningValue type; see rules belowRequirement
keyIdsJWK key IDslist of string; maximum length: 1000; minimum entries: 0; maximum entries: 1000Required

Enter the supplied key ID strings. Case-sensitive sets track values and collect each repeated spelling once, ordered by when its first repeat is encountered. Empty strings are ordinary values and an empty list returns unique true with no duplicates. Whitespace is retained.

unique = no exact key ID repeats; duplicates = distinct IDs seen again

Units, indexing, boundary conditions and exceptional cases are defined in the calculation rules above.

Output fieldMeaningValue type
uniqueAll supplied IDs distinctboolean
duplicatesRepeated key IDs in first-repeat orderlist of string
json
{
  "input": {
    "keyIds": [
      "signing-1",
      "signing-2",
      "signing-1"
    ]
  },
  "output": {
    "unique": false,
    "duplicates": [
      "signing-1"
    ]
  }
}

Limitations and assumptions

This does not parse JWK objects, compare key material or determine whether shared IDs are intentional. It does not require IDs to be nonempty or enforce an application naming policy. Interpretation of a duplicate requires the actual key set and consumer's lookup rules.

Numeric inputs must be finite. Follow the calculation-specific rules for overflow, underflow and exceptional cases. Cell-string lists also have a combined text budget of 100,000 UTF-16 units per list. Missing required fields, extra fields, wrong value types and violations of the calculation rules are input errors. A successfully returned false flag is an evaluated outcome; its meaning is explained above.

Alternative or Complementary methods

Use ID Column Uniqueness Check: Check exact string ID uniqueness in a supplied column, treating empty strings and leading zeros literally; report indices of occurrences after each first occurrence. For a complementary task, use Duplicate Header Detector: Find exact case-sensitive duplicate header names with all zero-based positions, without trimming or changing header text.

Further background: RFC 7517: JWK key ID parameter.

References

  1. JWK kid Uniqueness Check — tool.io

  2. RFC 7517: JWK key ID parameter — RFC Editor

Similar or alternative tools

  • ID Column Uniqueness Check

    Check exact string ID uniqueness in a supplied column, treating empty strings and leading zeros literally; report indices of occurrences after each first occurrence.

  • Duplicate Header Detector

    Find exact case-sensitive duplicate header names with all zero-based positions, without trimming or changing header text.

Don't forget to set a bookmark for tool.io!
Privacy | Imprint | Cookies