Skip to content

Commit

Permalink
fix: presentation digest
Browse files Browse the repository at this point in the history
  • Loading branch information
skynet2 committed Jul 8, 2024
1 parent 81ac176 commit 129df44
Showing 1 changed file with 39 additions and 1 deletion.
40 changes: 39 additions & 1 deletion presexch/definition.go
Original file line number Diff line number Diff line change
Expand Up @@ -1116,7 +1116,22 @@ func getLimitedDisclosures(constraints *Constraints, displaySrc []byte, credenti
return nil, err
}

for _, dc := range credential.SDJWTDisclosures() {
allDisclosures := credential.SDJWTDisclosures()
disclosuresMap := map[string]*common.DisclosureClaim{}
for _, dc := range allDisclosures {

Check failure on line 1121 in presexch/definition.go

View workflow job for this annotation

GitHub Actions / Checks

only one cuddle assignment allowed before range statement (wsl)
disclosuresMap[dc.Digest] = dc
}

for _, stringValue := range extractAdditionalDigests(parentObj) {
disVal, disOk := disclosuresMap[stringValue]
if !disOk {
continue
}

limitedDisclosures = append(limitedDisclosures, disVal)
}

for _, dc := range allDisclosures {
if dc.Name == key {
digest, err := common.GetHash(*credentialContents.SDJWTHashAlg, dc.Disclosure)
if err != nil {
Expand All @@ -1134,6 +1149,29 @@ func getLimitedDisclosures(constraints *Constraints, displaySrc []byte, credenti
return limitedDisclosures, nil
}

func extractAdditionalDigests(obj map[string]interface{}) []string {
var values []string

for _, v := range obj {
switch data := v.(type) {
case map[string]interface{}:
values = append(values, extractAdditionalDigests(data)...)
case []interface{}:
for _, item := range data {
if m, ok := item.(map[string]interface{}); ok {
values = append(values, extractAdditionalDigests(m)...)
}

if s, ok := item.(string); ok {
values = append(values, s)
}
}
}
}

return values
}

func frameCreds(frame map[string]interface{}, creds []*verifiable.Credential,
sdBBSProofCreator *verifiable.BBSProofCreator,
opts ...verifiable.CredentialOpt) ([]*verifiable.Credential, error) {
Expand Down

0 comments on commit 129df44

Please sign in to comment.