Skip to content

Commit 4087c48

Browse files
authored
Merge pull request #154 from wwWallet/feat/select-sdjwt-format
Added selector to change between vc+sd-jwt and dc+sd-jwt
2 parents 9000953 + fc5c004 commit 4087c48

File tree

4 files changed

+33
-6
lines changed

4 files changed

+33
-6
lines changed

public/js/configurable-presentation.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,11 @@ document.addEventListener("DOMContentLoaded", () => {
8989

9090
typeDropdown.addEventListener("change", (event) => {
9191
updateAttributesContainer(event.target.value);
92+
if (event.target.value === "sd-jwt") {
93+
document.querySelector("#format").classList.remove('hidden');
94+
} else {
95+
document.querySelector("#format").classList.add('hidden');
96+
}
9297
});
9398
updateAttributesContainer(typeDropdown.value);
9499

public/styles/configurable-presentation.css

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,10 @@ input[type="checkbox"]:disabled + label {
4848
width: 100%;
4949
}
5050

51+
.field.hidden {
52+
display: none;
53+
}
54+
5155
textarea,
5256
select {
5357
width: 100%;

src/verifier/verifierRouter.ts

Lines changed: 17 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -370,12 +370,23 @@ verifierRouter.use('/public/definitions/presentation-request/:presentation_defin
370370
// Determine the presentation format based on the 'type' (sd-jwt or mdoc) provided by the form
371371
const selectedType = req.body.type // Default to sd-jwt if type is not provided
372372
if (selectedType === "sd-jwt") {
373-
presentationDefinition.input_descriptors[0].format = {
374-
"dc+sd-jwt": {
375-
"sd-jwt_alg_values": ["ES256"],
376-
"kb-jwt_alg_values": ["ES256"]
377-
},
378-
};
373+
const selectedFormat = req.body.format;
374+
if (selectedFormat && selectedFormat === "vc+sd-jwt") {
375+
presentationDefinition.input_descriptors[0].format = {
376+
"vc+sd-jwt": {
377+
"sd-jwt_alg_values": ["ES256"],
378+
"kb-jwt_alg_values": ["ES256"]
379+
},
380+
};
381+
} else {
382+
presentationDefinition.input_descriptors[0].format = {
383+
"dc+sd-jwt": {
384+
"sd-jwt_alg_values": ["ES256"],
385+
"kb-jwt_alg_values": ["ES256"]
386+
},
387+
};
388+
}
389+
379390
} else if (selectedType === "mdoc") {
380391
presentationDefinition.input_descriptors[0].format = {
381392
"mso_mdoc": {

views/verifier/configurable_presentation.pug

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,13 @@ block layout-content
2727
h4.title(for="attribute") Select Attributes
2828
// populated by JS
2929
30+
.field#format
31+
h4.title(for="scheme") Format
32+
select#type(name="format" class="dropdown")
33+
option(value="dc+sd-jwt") dc+sd-jwt
34+
option(value="vc+sd-jwt") vc+sd-jwt
35+
36+
3037
.field
3138
h4.title(for="purpose") Purpose
3239
textarea#purpose(name="purpose" placeholder="Enter the purpose of this request" maxlength="255")

0 commit comments

Comments
 (0)