From 3cb064ce98c64728528d602585ffe44947c5ee0f Mon Sep 17 00:00:00 2001 From: Filip Burlacu Date: Thu, 2 Feb 2023 16:36:38 -0500 Subject: [PATCH] feat: creating SD-JWT from VC will leave subject ID as regular field (#3512) instead of turning subject ID into an SD field. Signed-off-by: Filip Burlacu --- pkg/doc/verifiable/credential_sdjwt.go | 4 +++- pkg/doc/verifiable/credential_sdjwt_test.go | 10 +++++----- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/pkg/doc/verifiable/credential_sdjwt.go b/pkg/doc/verifiable/credential_sdjwt.go index 1150f095f..2365802f1 100644 --- a/pkg/doc/verifiable/credential_sdjwt.go +++ b/pkg/doc/verifiable/credential_sdjwt.go @@ -271,7 +271,9 @@ func makeSDJWT(vc *Credential, signer jose.Signer, signingKeyID string) (*issuer jose.HeaderKeyID: signingKeyID, } - sdjwt, err := issuer.NewFromVC(claimMap, headers, signer, issuer.WithStructuredClaims(true)) + sdjwt, err := issuer.NewFromVC(claimMap, headers, signer, + issuer.WithStructuredClaims(true), + issuer.WithNonSelectivelyDisclosableClaims([]string{"id"})) if err != nil { return nil, fmt.Errorf("creating SD-JWT from VC: %w", err) } diff --git a/pkg/doc/verifiable/credential_sdjwt_test.go b/pkg/doc/verifiable/credential_sdjwt_test.go index 90357f558..610f98482 100644 --- a/pkg/doc/verifiable/credential_sdjwt_test.go +++ b/pkg/doc/verifiable/credential_sdjwt_test.go @@ -128,8 +128,8 @@ func TestMarshalWithDisclosure(t *testing.T) { t.Run("disclose required and some if-available claims", func(t *testing.T) { resultCred, err := newVC.MarshalWithDisclosure( - DiscloseGivenRequired([]string{"id"}), - DiscloseGivenIfAvailable([]string{"id", "university", "favourite-animal"})) + DiscloseGivenRequired([]string{"type"}), + DiscloseGivenIfAvailable([]string{"university", "favourite-animal"})) require.NoError(t, err) res := common.ParseCombinedFormatForPresentation(resultCred) @@ -146,7 +146,7 @@ func TestMarshalWithDisclosure(t *testing.T) { var iat jwt.NumericDate = 0 resultCred, err := vc.MarshalWithDisclosure( - DiscloseGivenRequired([]string{"id", "university"}), + DiscloseGivenRequired([]string{"university"}), DisclosureSigner(afgojwt.NewEd25519Signer(privKey), "did:example:abc123#key-1"), DisclosureHolderBinding(&holder.BindingInfo{ Payload: holder.BindingPayload{ @@ -159,7 +159,7 @@ func TestMarshalWithDisclosure(t *testing.T) { require.NoError(t, err) res := common.ParseCombinedFormatForPresentation(resultCred) - require.Len(t, res.Disclosures, 2) + require.Len(t, res.Disclosures, 1) require.NotEmpty(t, res.HolderBinding) }) }) @@ -375,7 +375,7 @@ func TestCreateDisplayCredential(t *testing.T) { require.True(t, ok) require.Len(t, subj, 1) - require.Empty(t, subj[0].ID) + require.NotEmpty(t, subj[0].ID) require.Empty(t, subj[0].CustomFields) })