Original text:
body, the verifier MUST calculate the hash of body just as the signer does, with no normalization or transformation of the request.  7.3.4. This method is indicated by the method value "jws".  This method body, the verifier MUST decode the payload of the JWS object and treat this as the HTTP message body.  8. GNAP provides a rich structure for describing the protected resources

Reviewer comments:
To edit notification comments on pull requests, go to your ._
There have been several questions about the parameter currently used to convey the hash of an access token in requests to the RS. Right now we use the definition from OpenID Connect: URL In speaking with the DPoP editors I've proposed a simplified claim there: URL It's functionally similar but doesn't require the array truncation step, and it also fixes to a single hash algorithm (SHA-256) instead of having to figure out which hash to use based on the external signing envelope. I think this change makes it both simpler to implement and to understand.
Also, for cryptographic agility here we would rely on defining a new claim name and updating the requirements about inclusion. So would always be SHA-256 and once that hash is sufficiently broken and discarded we would define a new claim like for whatever new target there is.
+1 for that, much more intuitive than truncating (and the comment from DPoP editors seem to go in that direction too). In relation to what would happen if SHA-256 gets deprecated: the current method is already based on SHA-256, so it's not a new downside an idea would be to name it for instance, to give a minimal versioning (would currently relate to SHA2) and would simplify changes later on (like avoiding ;-))
I personally think that naming the next version of the field should be left to the next version. Someone might want to specify or even , but the important thing is that we aren't defining plus parameters, we're just defining and anything else comes along as its own unique string. That kind of guidance can be written around the registry for the claim and how it'd get used.
works too
Reopening this issue: we are not providing cryto-agility, because: We do not indicate how the algorithm could change. Renaming the field to would remedy that. An implementation that did not include would formally be non-compliant, because the field is REQUIRED. We should say something about that. See URL
NAME crypto agility would be provided by defining a new field entirely. The algorithm will not change for . This was discussed in the OAuth WG with DPoP's field which has the same semantics as this. I do not recommend we re-open this.
I'm not asking to reopen it. Just to add a note in the text. The IESG reviewers are bound to comment on this.

Revised text:
body, the verifier MUST calculate the hash of body just as the signer does, with no normalization or transformation of the request. <ins> Note that this proof method depends on a specific cryptographic algorithm, SHA-256, in two ways: the "ath" hash algorithm is hardcoded, and computing the payload of the detached/attached signature also uses a hardcoded hash.  A future version of this document may address crypto-agility for both these uses by replacing ath with a new header that upgrades the algorithm, and possibly defining a new header that indicates the HTTP content's hash method. </ins> 7.3.4. This method is indicated by the method value "jws".  This method body, the verifier MUST decode the payload of the JWS object and treat this as the HTTP message body. <ins> Note that this proof method depends on a specific cryptographic algorithm, SHA-256, in two ways: the "ath" hash algorithm is hardcoded, and computing the payload of the detached/attached signature also uses a hardcoded hash.  A future version of this document may address crypto-agility for both these uses by replacing ath with a new header that upgrades the algorithm, and possibly defining a new header that indicates the HTTP content's hash method. </ins> 8. GNAP provides a rich structure for describing the protected resources