Skip to content

Indicate supported curves for encryption in Credential Issuer metadata #168

Description

@awoie

Currently, we have enc_values_supported and alg_values_supported but those don't define what key types (e.g., curves) are supported by the Credential Issuer to encrypt the Credential Response. This is needed by the wallet to provide the right public keys in the request for key agreement or asymmetric encryption in general. Normally, we would use something like jwks or jwks_uri for this purpose. Perhaps we should do that here as well. I would have expected the issuer to create an ephemeral key pair and use the wallet key from the request as a static key in ECDH-ES. Perhaps that assumption is wrong.

Otherwise, The following would be a rough proposal how this can be indicated by adding a parameter to credential_response_encryption:

  * `jwk_values_supported`: REQUIRED. Array containing a list of objects describing the supported JWK values by the Credential and/or Batch Credential Endpoint to encode the Credential or Batch Credential Response in a JWT [@!RFC7519]. Each object MUST contain a (`kty` value) [@!RFC7517] and an OPTIONAL (`crv` value) [@!RFC8037]. For example, to indicate the issuer supports ECDH-ES with curve P-256, `jwk_values_supported` includes the following object: `{ "kty":"EC", "crv":"P-256" }`.

For example:

"jwk_values_supported": [
    { "kty": "EC", "crv": "P-256" },
    { "kty": "OKP", "crv": "X25519" },
    { "kty": "RSA" }            
]

Originally posted by @awoie in #153 (comment)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions