Endpoint
Overview
This endpoint returns a JSON Web Key Set (JWKS) containing one or more public keys that can be used to verify JWTs signed by the VCVerifier. The endpoint follows the standard JWKS format as defined in RFC 7517.The JWKS endpoint is publicly accessible and does not require authentication. It’s designed to be used by clients that need to verify tokens issued by this verifier.
Response
The endpoint returns a JWKS object containing an array of public keys.Response Schema
An array of JSON Web Key objects
Key ID - A unique identifier for the keyExample:
179d7b56-6598-4045-9a32-4635e8b0f605Key Type - The cryptographic algorithm family used with the keySupported values:
EC (Elliptic Curve), RSAExample: ECPublic Key Use - Identifies the intended use of the public keyTypical value:
sig (signature)Algorithm - The algorithm intended for use with the keyExample:
ES256 (ECDSA using P-256 and SHA-256)Curve - The elliptic curve used with the key (for EC keys)Example:
P-256X Coordinate - The x coordinate for the Elliptic Curve point (for EC keys)Example:
3ctHY_0KJW5ezT-oF39t3wPX6XlggWKOSPFW8iooBXkY Coordinate - The y coordinate for the Elliptic Curve point (for EC keys)Example:
HXA4mBHgObIE56E92yxN5bYQ27wSxlVPfuNWaY06TTIModulus - The modulus value for RSA keys
Exponent - The exponent value for RSA keys
Private Key Component - Not included in JWKS responses (private key parameter)
Response Example
Key Types
The VCVerifier supports the following key types:Elliptic Curve (EC) Keys
EC keys are the primary key type used by the verifier:- Algorithm: ES256 (ECDSA using P-256 curve and SHA-256)
- Curve: P-256 (also known as secp256r1)
- Key Components:
xandycoordinates
Elliptic Curve keys provide strong security with smaller key sizes compared to RSA, making them efficient for JWT signing operations.
RSA Keys
RSA keys are also supported:- Key Components: Modulus (
n) and public exponent (e) - Common algorithms: RS256, RS384, RS512
Usage
Clients should fetch the JWKS periodically or cache it with appropriate cache headers. When verifying a JWT:- Extract the
kid(Key ID) from the JWT header - Find the matching key in the JWKS by comparing the
kidvalues - Use the public key parameters to verify the JWT signature
- Ensure the
algin the JWT header matches the key’s algorithm
Related Endpoints
- OpenID Configuration - Discover OpenID Provider metadata including the JWKS URI
- Token Endpoint - Exchange authorization codes for access tokens