Presentation Exchange contains a section about the contents of an attribute named format which can be found either as a top-level element of presentation definition or with an input_descriptor.
This format is a JSON object having as attribute names claim formats coming by a controlled registry. In turn, each of these nested claim formats may point to another JSON Object which contains either an array alg or proof_type as defined in the relevant json schema.
Library reflects in its types the above rules, strictly. There are problems with this strictness:
OpenId4VP draft 20 uses claim formats that are not (yet) registered to the aforementioned Presentation Exchange controlled registry. In particular:
sd+jwt-vc to be added for sd-jwt-vc (PR). This doesn't only add a new value but redefines the contents of the relevant JSON to contain two arrays : sd-jwt_alg_values & kb-jwt_alg_values
So library-wise there are two options:
Implement just the registered claims formats (current approach)
Relax the format object accepting the fact that neither all keys are registered nor the contents of their value
The first is too restrictive, I guess. Perhaps we should go with the 2nd option.
Presentation Exchange contains a section about the contents of an attribute named
format
which can be found either as a top-level element of presentation definition or with aninput_descriptor
.This
format
is a JSON object having as attribute names claim formats coming by a controlled registry. In turn, each of these nested claim formats may point to another JSON Object which contains either an arrayalg
orproof_type
as defined in the relevant json schema.Library reflects in its types the above rules, strictly. There are problems with this strictness:
OpenId4VP draft 20 uses claim formats that are not (yet) registered to the aforementioned Presentation Exchange controlled registry. In particular:
jwt_vc_json
&jwt_vp_json
in A.1.1ac_vc
&ac_vp
in A.2mso_mdoc
in A.3sd+jwt-vc
to be added forsd-jwt-vc
(PR). This doesn't only add a new value but redefines the contents of the relevant JSON to contain two arrays :sd-jwt_alg_values
&kb-jwt_alg_values
So library-wise there are two options:
Relax the
format
object accepting the fact that neither all keys are registered nor the contents of their valueThe first is too restrictive, I guess. Perhaps we should go with the 2nd option.