Skip to content

Commit

Permalink
Merging credential_response_encryption parameters into a single object (
Browse files Browse the repository at this point in the history
#136)

three approvals. open for more than a week. no objections to merge during the DCP WG call. Paul to do a separate PR on grouping issuer metadata.

* merging credential_response_encryption parameters into a single object

* Update openid-4-verifiable-credential-issuance-1_0.md

Co-authored-by: Kristina <52878547+Sakurann@users.noreply.github.com>

* Apply suggestions from code review

* Update openid-4-verifiable-credential-issuance-1_0.md

Co-authored-by: Tobias Looker <tplooker@gmail.com>

* Update openid-4-verifiable-credential-issuance-1_0.md

Co-authored-by: Oliver Terbu <43441584+awoie@users.noreply.github.com>

* Update openid-4-verifiable-credential-issuance-1_0.md

Co-authored-by: Joseph Heenan <joseph@heenan.me.uk>

* add hstory

---------

Co-authored-by: Kristina <52878547+Sakurann@users.noreply.github.com>
Co-authored-by: Tobias Looker <tplooker@gmail.com>
Co-authored-by: Oliver Terbu <43441584+awoie@users.noreply.github.com>
Co-authored-by: Joseph Heenan <joseph@heenan.me.uk>
  • Loading branch information
5 people authored Dec 14, 2023
1 parent 103b707 commit d5118a8
Showing 1 changed file with 7 additions and 5 deletions.
12 changes: 7 additions & 5 deletions openid-4-verifiable-credential-issuance-1_0.md
Original file line number Diff line number Diff line change
Expand Up @@ -715,9 +715,10 @@ A Client makes a Credential Request to the Credential Endpoint by sending the fo
* `proof`: OPTIONAL. Object containing the proof of possession of the cryptographic key material the issued Credential would be bound to. The `proof` object is REQUIRED if the `proof_types` parameter is non-empty and present in the `credentials_supported` map of the issuer metadata for the requested credential. The `proof` object MUST contain a following claim:
* `proof_type`: REQUIRED. String denoting the key proof type. The value of this claim determines other claims in the key proof object and its respective processing rules. Key proof types defined in this specification can be found in (#proof_types).
* `credential_identifier`: REQUIRED when `credential_identifier` was returned from the Token Response. MUST NOT be used otherwise. String that identifies a Credential that is being requested to be issued. When this parameter is used, the `format` parameter and any other Credential format specific set of parameters such as those defined in (#format_profiles) MUST NOT be present.
* `credential_encryption_jwk`: OPTIONAL. An object containing a single public key as a JWK used for encrypting the Credential Response.
* `credential_response_encryption_alg`: OPTIONAL. JWE [@!RFC7516] `alg` algorithm [@!RFC7518] REQUIRED for encrypting Credential and/or Batch Credential Responses. If omitted, no encryption is intended to be performed. When the `credential_response_encryption_alg` is present, the `credential_encryption_jwk` MUST be present.
* `credential_response_encryption_enc`: OPTIONAL. JWE [@!RFC7516] `enc` algorithm [@!RFC7518] REQUIRED for encrypting Credential Responses. If `credential_response_encryption_alg` is specified, the default for this value is `A256GCM`. When `credential_response_encryption_enc` is included, `credential_response_encryption_alg` MUST also be provided.
* `credential_response_encryption`: OPTIONAL. Object containing information for encrypting the Credential Response. If this request element is not present, the corresponding credential response returned is not encrypted.
* `jwk`: REQUIRED. Object containing a single public key as a JWK used for encrypting the Credential Response.
* `alg`: REQUIRED. JWE [@!RFC7516] `alg` algorithm [@!RFC7518] for encrypting Credential Responses.
* `enc`: REQUIRED. JWE [@!RFC7516] `enc` algorithm [@!RFC7518] for encrypting Credential Responses.

The `proof_type` claim is an extension point that enables the use of different types of proofs for different cryptographic schemes.

Expand Down Expand Up @@ -915,7 +916,7 @@ Credential Response can be immediate or deferred. The Credential Issuer MAY be a

In other cases, the Credential Issuer MAY NOT be able to immediately issue a requested Credential and would want to send a `transaction_id` parameter to the Client to be used later to receive a Credential when it is ready. The HTTP status code MUST be 202 (section 10.2.3 of [@!RFC2616]).

If the Client requested encrypted responses, the Credential Issuer MUST encode the information in the Credential Reponse as a JWT with `credential_response_encryption_alg` and `credential_response_encryption_enc`. The JWT MUST be encrypted using the public key specified by `credential_encryption_jwk` in the Credential Request. If the Credential Response is encrypted, the media type of the response MUST bet set to `application/jwt`. If encryption was negotiated in the Credential Request and the Credential Response is not encrypted, the Client SHOULD reject the Credential Response.
If the Client requested an encrypted response by including the `credential_response_encryption` object in the request, the Credential Issuer MUST encode the information in the Credential Response as a JWT using the parameters from the `credential_response_encryption` object. If the Credential Response is encrypted, the media type of the response MUST bet set to `application/jwt`. If encryption was requested in the Credential Request and the Credential Response is not encrypted, the Client SHOULD reject the Credential Response.

If the Credential Response is not encrypted, the media type of the response MUST be set to `application/json`.

Expand Down Expand Up @@ -2036,7 +2037,8 @@ The value of the `credential` claim in the Credential Response MUST be a string
[[ To be removed from the final specification ]]

-13


* grouped `credential_encryption_jwk`, `credential_response_encryption_alg` and `credential_response_encryption_enc` from Credential Request into a single `credential_response_encryption` object
* replaced `user_pin_required` in Credential Offer with a `tx_code` object that also now contains `description` and `length`
* reworked flow description in Overview section
* removed Credential Offer examples from Credential format profiles
Expand Down

0 comments on commit d5118a8

Please sign in to comment.