From fa34a89a6309f43e777f69a525fc812bf7313a0b Mon Sep 17 00:00:00 2001 From: Bibash Shrestha Date: Thu, 12 Oct 2023 16:19:56 +0545 Subject: [PATCH] feat: Updating some ids --- lib/scan/cubit/scan_cubit.dart | 13 +++++++++---- packages/oidc4vc/lib/src/oidc4vc.dart | 6 ++++-- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/lib/scan/cubit/scan_cubit.dart b/lib/scan/cubit/scan_cubit.dart index 6012a871d..4c537c4e6 100644 --- a/lib/scan/cubit/scan_cubit.dart +++ b/lib/scan/cubit/scan_cubit.dart @@ -642,14 +642,19 @@ class ScanCubit extends Cubit { if (presentationDefinition.inputDescriptors.length == 1) { inputDescriptors.add({ 'id': presentationDefinition.inputDescriptors[0].id, - 'format': format, - 'path': r'$.verifiableCredential', + 'format': 'jwt_vp', + 'path': r'$', + 'path_nested': { + 'format': format, + 'path': r'$.verifiableCredential', + }, }); } else { for (int i = 0; i < presentationDefinition.inputDescriptors.length; i++) { inputDescriptors.add({ 'id': presentationDefinition.inputDescriptors[i].id, - 'format': format, + 'format': 'jwt_vp', + 'path': r'$', 'path_nested': { 'format': format, // ignore: prefer_interpolation_to_compose_strings @@ -717,8 +722,8 @@ class ScanCubit extends Cubit { jsonEncode({ '@context': ['https://www.w3.org/2018/credentials/v1'], 'type': ['VerifiablePresentation'], - 'id': presentationId, 'holder': did, + 'id': presentationId, 'verifiableCredential': credentialsToBePresented.length == 1 ? credentialsToBePresented.first.data : credentialsToBePresented.map((c) => c.data).toList(), diff --git a/packages/oidc4vc/lib/src/oidc4vc.dart b/packages/oidc4vc/lib/src/oidc4vc.dart index ce3ad3a96..fd543537e 100644 --- a/packages/oidc4vc/lib/src/oidc4vc.dart +++ b/packages/oidc4vc/lib/src/oidc4vc.dart @@ -16,6 +16,7 @@ import 'package:oidc4vc/src/token_parameters.dart'; import 'package:oidc4vc/src/verification_type.dart'; import 'package:oidc4vc/src/verifier_token_parameters.dart'; import 'package:secp256k1/secp256k1.dart'; +import 'package:uuid/uuid.dart'; /// {@template ebsi} /// EBSI wallet compliance @@ -873,9 +874,10 @@ class OIDC4VC { VerifierTokenParameters tokenParameters, ) async { final iat = (DateTime.now().millisecondsSinceEpoch / 1000).round(); + final presentationId = 'urn:uuid:${const Uuid().v4()}'; final vpTokenPayload = { 'iat': iat, - 'jti': 'http://example.org/presentations/talao/01', + 'jti': presentationId, 'nbf': iat - 10, 'aud': tokenParameters.audience, 'exp': iat + 1000, @@ -883,7 +885,7 @@ class OIDC4VC { 'iss': tokenParameters.did, 'vp': { '@context': ['https://www.w3.org/2018/credentials/v1'], - 'id': 'http://example.org/presentations/talao/01', + 'id': presentationId, 'type': ['VerifiablePresentation'], 'holder': tokenParameters.did, 'verifiableCredential': tokenParameters.jsonIdOrJwtList,