From a94fbffc190fa90f52928a4a385f9a3363cd2204 Mon Sep 17 00:00:00 2001 From: Crt Vavros <4377556+smlu@users.noreply.github.com> Date: Wed, 29 May 2024 12:04:39 +0200 Subject: [PATCH] Update README.md --- README.md | 155 +++++++++++++++++++++++++++--------------------------- 1 file changed, 78 insertions(+), 77 deletions(-) diff --git a/README.md b/README.md index bcf4421..21ed53b 100644 --- a/README.md +++ b/README.md @@ -37,87 +37,88 @@ dependencies: import 'package:dmrtd/dmrtd.dart'; try { -final nfc = NfcProvider(); -await nfc.connect(iosAlertMessage: "Hold your iPhone near Passport"); - -final passport = Passport(nfc); - -nfc.setIosAlertMessage("Reading EF.CardAccess ..."); -final cardAccess = await passport.readEfCardAccess(); - -_nfc.setIosAlertMessage("Initiating session with PACE or BAC..."); -//set MrtdData -mrtdData.isPACE = true; //initialize with PACE(set false if you want to do with DBA) -mrtdData.isDBA = accessKey.PACE_REF_KEY_TAG == 0x01 ? true : false; - -if (isPace) { -//PACE session -await passport.startSessionPACE(accessKey, mrtdData.cardAccess!); -} else { -//BAC session -await passport.startSession(accessKey as DBAKey); -} - -nfc.setIosAlertMessage(formatProgressMsg("Reading EF.COM ...", 0)); -final efcom = await passport.readEfCOM(); - -nfc.setIosAlertMessage(formatProgressMsg("Reading Data Groups ...", 20)); -EfDG1 dg1; -if(efcom.dgTags.contains(EfDG1.TAG)) { -dg1 = await passport.readEfDG1(); -} - -EfDG2 dg2; -if(efcom.dgTags.contains(EfDG2.TAG)) { -dg2 = await passport.readEfDG2(); -} - -EfDG14 dg14; -if(efcom.dgTags.contains(EfDG14.TAG)) { -dg14 = await passport.readEfDG14(); -} - -EfDG15 dg15; -Uint8List sig; -if(efcom.dgTags.contains(EfDG15.TAG)) { -dg15 = await passport.readEfDG15(); -nfc.setIosAlertMessage(formatProgressMsg("Doing AA ...", 60)); -sig = await passport.activeAuthenticate(Uint8List(8)); -} - -nfc.setIosAlertMessage(formatProgressMsg("Reading EF.SOD ...", 80)); -final sod = await passport.readEfSOD(); + final nfc = NfcProvider(); + await nfc.connect(iosAlertMessage: "Hold your iPhone near Passport"); + + final passport = Passport(nfc); + + nfc.setIosAlertMessage("Reading EF.CardAccess ..."); + final cardAccess = await passport.readEfCardAccess(); + + _nfc.setIosAlertMessage("Initiating session with PACE or BAC..."); + //set MrtdData + mrtdData.isPACE = true; //initialize with PACE(set false if you want to do with DBA) + mrtdData.isDBA = accessKey.PACE_REF_KEY_TAG == 0x01 ? true : false; + + if (isPace) { + //PACE session + await passport.startSessionPACE(accessKey, mrtdData.cardAccess!); + } else { + //BAC session + await passport.startSession(accessKey as DBAKey); + } + + nfc.setIosAlertMessage(formatProgressMsg("Reading EF.COM ...", 0)); + final efcom = await passport.readEfCOM(); + + nfc.setIosAlertMessage(formatProgressMsg("Reading Data Groups ...", 20)); + EfDG1 dg1; + if (efcom.dgTags.contains(EfDG1.TAG)) { + dg1 = await passport.readEfDG1(); + } + + EfDG2 dg2; + if (efcom.dgTags.contains(EfDG2.TAG)) { + dg2 = await passport.readEfDG2(); + } + + EfDG14 dg14; + if (efcom.dgTags.contains(EfDG14.TAG)) { + dg14 = await passport.readEfDG14(); + } + + EfDG15 dg15; + Uint8List sig; + if (efcom.dgTags.contains(EfDG15.TAG)) { + dg15 = await passport.readEfDG15(); + nfc.setIosAlertMessage(formatProgressMsg("Doing AA ...", 60)); + sig = await passport.activeAuthenticate(Uint8List(8)); + } + + nfc.setIosAlertMessage(formatProgressMsg("Reading EF.SOD ...", 80)); + final sod = await passport.readEfSOD(); } on Exception catch(e) { -final se = e.toString().toLowerCase(); -String alertMsg = "An error has occurred while reading Passport!"; -if(e is PassportError) { -if(se.contains("security status not satisfied")) { -alertMsg = "Failed to initiate session with passport.\nCheck input data!"; -} -} - -if(se.contains('timeout')){ -alertMsg = "Timeout while waiting for Passport tag"; -} -else if(se.contains("tag was lost")){ -alertMsg = "Tag was lost. Please try again!"; -} -else if(se.contains("invalidated by user")){ -alertMsg = ""; -} -errorAlertMsg = alertMsg; + final se = e.toString().toLowerCase(); + String alertMsg = "An error has occurred while reading Passport!"; + if (e is PassportError) { + if (se.contains("security status not satisfied")) { + alertMsg = "Failed to initiate session with passport.\nCheck input data!"; + } + } + + if (se.contains('timeout')){ + alertMsg = "Timeout while waiting for Passport tag"; + } + else if (se.contains("tag was lost")) { + alertMsg = "Tag was lost. Please try again!"; + } + else if (se.contains("invalidated by user")) { + alertMsg = ""; + } + + errorAlertMsg = alertMsg; } finally { -if(errorAlertMsg?.isNotEmpty){ -await _nfc.disconnect(iosErrorMessage: errorAlertMsg); -if(!Platform.isIOS) { -// Show error to the user -} -} -else { -await _nfc.disconnect(iosAlertMessage: formatProgressMsg("Finished", 100); -} + if (errorAlertMsg?.isNotEmpty) { + await _nfc.disconnect(iosErrorMessage: errorAlertMsg); + if (!Platform.isIOS) { + // Show error to the user + } + } + else { + await _nfc.disconnect(iosAlertMessage: formatProgressMsg("Finished", 100)); + } } ```