Skip to content

Commit cfe6df7

Browse files
committed
fix: preserve nil CredentialSets in copyDCQL to pass validation
When copyDCQL copies a DCQL with no CredentialSets, it was creating an empty slice instead of leaving it nil. This caused validation to fail because the 'omitempty,min=1' tag on CredentialSets requires either nil (skipped by omitempty) or at least 1 element (min=1). This fix only creates CredentialSets if the source has elements.
1 parent c8c1aae commit cfe6df7

File tree

1 file changed

+8
-2
lines changed

1 file changed

+8
-2
lines changed

pkg/openid4vp/presentation_builder.go

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -118,8 +118,14 @@ func copyDCQL(src *DCQL) *DCQL {
118118
}
119119

120120
dst := &DCQL{
121-
Credentials: make([]CredentialQuery, len(src.Credentials)),
122-
CredentialSets: make([]CredentialSetQuery, len(src.CredentialSets)),
121+
Credentials: make([]CredentialQuery, len(src.Credentials)),
122+
// CredentialSets is only set if source has elements (keep it nil otherwise
123+
// to pass `omitempty` validation)
124+
}
125+
126+
// Only create CredentialSets if source has elements
127+
if len(src.CredentialSets) > 0 {
128+
dst.CredentialSets = make([]CredentialSetQuery, len(src.CredentialSets))
123129
}
124130

125131
// Copy credentials

0 commit comments

Comments
 (0)