Skip to content

Commit a1c9622

Browse files
fix holder credential autocorrect credentialsubject.id (#3718)
1 parent dbb55c3 commit a1c9622

File tree

3 files changed

+23
-0
lines changed

3 files changed

+23
-0
lines changed

docs/pages/release_notes.rst

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,16 @@
22
Release notes
33
#############
44

5+
***************
6+
Peanut (v6.0.9)
7+
***************
8+
9+
Release date: 2025-02-26
10+
11+
- `#3696 <https://github.com/nuts-foundation/nuts-node/issues/3696>`_: Fix holder credential usage when a subject has multiple DIDs.
12+
13+
**Full Changelog**: https://github.com/nuts-foundation/nuts-node/compare/v6.0.8...v6.0.9
14+
515
***************
616
Peanut (v6.0.8)
717
***************

vcr/credential/util.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -136,6 +136,7 @@ func AutoCorrectSelfAttestedCredential(credential vc.VerifiableCredential, reque
136136
}
137137
if _, ok := credentialSubject[0]["id"]; !ok {
138138
credentialSubject[0]["id"] = requester.String()
139+
credential.CredentialSubject = make([]interface{}, 1)
139140
credential.CredentialSubject[0] = credentialSubject[0]
140141
}
141142
}

vcr/credential/util_test.go

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -293,11 +293,23 @@ func TestAutoCorrectSelfAttestedCredential(t *testing.T) {
293293
credential := vc.VerifiableCredential{
294294
CredentialSubject: make([]interface{}, 1),
295295
}
296+
296297
result := AutoCorrectSelfAttestedCredential(credential, requestor)
298+
297299
assert.Equal(t, requestor.URI(), result.Issuer)
298300
assert.NotEqual(t, time.Time{}, result.IssuanceDate)
299301
assert.NotEqual(t, "", result.ID.String())
300302
assert.Equal(t, requestor.String(), result.CredentialSubject[0].(map[string]interface{})["id"])
303+
304+
t.Run("autocorrect for multiple DIDs does not skip credentialSubject.id", func(t *testing.T) {
305+
altDID := did.MustParseDID("did:test:456")
306+
subjectPointer := &credential.CredentialSubject
307+
308+
result = AutoCorrectSelfAttestedCredential(credential, altDID)
309+
310+
assert.NotEqual(t, subjectPointer, &result.CredentialSubject)
311+
assert.Equal(t, altDID.String(), result.CredentialSubject[0].(map[string]interface{})["id"])
312+
})
301313
}
302314

303315
func TestFilterOnDIDMethod(t *testing.T) {

0 commit comments

Comments
 (0)