From 38034de41f2847b51f2defd5060cea789540aa3b Mon Sep 17 00:00:00 2001 From: 0xturboblitz Date: Wed, 27 Sep 2023 18:11:47 +0200 Subject: [PATCH] simplify PassportData format --- app/App.tsx | 26 ++++-------- .../io/tradle/nfc/RNPassportReaderModule.kt | 27 ++++++------ app/scripts/mrzToSig.ts | 41 +++++-------------- app/types/passportData.ts | 11 ++--- app/utils/checks.ts | 9 ++-- 5 files changed, 41 insertions(+), 73 deletions(-) diff --git a/app/App.tsx b/app/App.tsx index 79163d692..0e5a48543 100644 --- a/app/App.tsx +++ b/app/App.tsx @@ -38,7 +38,7 @@ import {computeAndCheckEContent} from './utils/computeEContent'; console.log('DEFAULT_PNUMBER', DEFAULT_PNUMBER); const CACHE_DATA_IN_LOCAL_SERVER = true; -const SKIP_SCAN = true; +const SKIP_SCAN = false; function App(): JSX.Element { const isDarkMode = useColorScheme() === 'dark'; @@ -78,35 +78,26 @@ function App(): JSX.Element { async function handleResponse(response: any) { const { - mrzInfo, - publicKey, - publicKeyPEM, + mrz, + modulus, dataGroupHashes, eContent, encryptedDigest, - contentBytes, - eContentDecomposed, } = response; const passportData: PassportData = { - mrzInfo: JSON.parse(mrzInfo), - publicKey: publicKey, - publicKeyPEM: publicKeyPEM, + mrz: mrz, + modulus: modulus, dataGroupHashes: dataHashesObjToArray(JSON.parse(dataGroupHashes)), eContent: JSON.parse(eContent), encryptedDigest: JSON.parse(encryptedDigest), - contentBytes: JSON.parse(contentBytes), - eContentDecomposed: JSON.parse(eContentDecomposed), }; - console.log('mrzInfo', passportData.mrzInfo); - console.log('publicKey', passportData.publicKey); - console.log('publicKeyPEM', passportData.publicKeyPEM); + console.log('mrz', passportData.mrz); + console.log('modulus', passportData.modulus); console.log('dataGroupHashes', passportData.dataGroupHashes); console.log('eContent', passportData.eContent); console.log('encryptedDigest', passportData.encryptedDigest); - console.log('contentBytes', passportData.contentBytes); - console.log('eContentDecomposed', passportData.eContentDecomposed); setPassportData(passportData); @@ -143,6 +134,7 @@ function App(): JSX.Element { dateOfBirth: dateOfBirth, dateOfExpiry: dateOfExpiry, }); + console.log('response', response); console.log('scanned'); handleResponse(response); } catch (e) { @@ -265,7 +257,7 @@ function App(): JSX.Element { Connection successful - Hi {getFirstName(passportData?.mrzInfo)} !{' '} + {passportData && `Hi ${getFirstName(passportData.mrz)} ! `} Input your address or ens (x < 128 ? x : x - 256)); } - function bytesToBigDecimal(arr: number[]): string { let result = BigInt(0); for (let i = 0; i < arr.length; i++) { diff --git a/app/types/passportData.ts b/app/types/passportData.ts index faf70ae90..53c9c0414 100644 --- a/app/types/passportData.ts +++ b/app/types/passportData.ts @@ -19,12 +19,9 @@ export type MrzInfo = { export type DataHash = [number, number[]]; export type PassportData = { - mrzInfo: MrzInfo; - publicKey: any; - publicKeyPEM: string; + mrz: string; + modulus: string; dataGroupHashes: DataHash[]; - eContent: any; - encryptedDigest: any; - contentBytes: any; - eContentDecomposed: any; + eContent: number[]; + encryptedDigest: number[]; }; diff --git a/app/utils/checks.ts b/app/utils/checks.ts index 9074d13de..9604d4bc2 100644 --- a/app/utils/checks.ts +++ b/app/utils/checks.ts @@ -15,7 +15,8 @@ export function checkInputs( return true; } -export function getFirstName(mrzInfo: any): string { - const firstName = mrzInfo.secondaryIdentifier.split('<')[0]; - return firstName.charAt(0).toUpperCase() + firstName.slice(1).toLowerCase(); -} +export function getFirstName(mrz: string): string { + const names = mrz.split("<<"); + const firstName = names[1].split("<")[0].trim(); + return firstName || "Unknown"; +} \ No newline at end of file