diff --git a/integration-tests/utils/generators.py b/integration-tests/utils/generators.py index 83a2368a..2fed7287 100644 --- a/integration-tests/utils/generators.py +++ b/integration-tests/utils/generators.py @@ -128,9 +128,11 @@ def generate_evidence(scheme, evidence, nonce, signing, outname): if scheme == 'psa' and nonce: claims_file = f'{GENDIR}/claims/{scheme}.{evidence}.json' + # convert nonce from base64url to base64 + translated_nonce = nonce.replace('-', '+').replace('_', '/') update_json( f'data/claims/{scheme}.{evidence}.json', - {f'{scheme}-nonce': nonce}, + {f'{scheme}-nonce': translated_nonce}, claims_file, ) elif scheme == 'cca' and nonce: diff --git a/vts/trustedservices/trustedservices_grpc.go b/vts/trustedservices/trustedservices_grpc.go index 57af5653..9b90b99c 100644 --- a/vts/trustedservices/trustedservices_grpc.go +++ b/vts/trustedservices/trustedservices_grpc.go @@ -428,13 +428,21 @@ func (o *GRPC) GetAttestation( return o.finalize(appraisal, err) } + // Filter out empty reference IDs (can occur when no software components are provisioned) + filteredReferenceIDs := make([]string, 0, len(referenceIDs)) + for _, refID := range referenceIDs { + if refID != "" { + filteredReferenceIDs = append(filteredReferenceIDs, refID) + } + } + appraisal.EvidenceContext.Evidence, err = structpb.NewStruct(claims) if err != nil { err = fmt.Errorf("unserializable claims in result: %w", err) return o.finalize(appraisal, err) } - appraisal.EvidenceContext.ReferenceIds = referenceIDs + appraisal.EvidenceContext.ReferenceIds = filteredReferenceIDs o.logger.Debugw("constructed evidence context", "software-id", appraisal.EvidenceContext.ReferenceIds,