@trustchex/react-native-sdk 1.409.0 → 1.464.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/android/src/main/java/com/trustchex/reactnativesdk/TrustchexSDKModule.kt +2 -8
- package/android/src/main/java/com/trustchex/reactnativesdk/camera/TrustchexCameraView.kt +59 -1
- package/ios/Camera/TrustchexCameraView.swift +9 -1
- package/lib/module/Screens/Debug/NFCScanTestScreen.js +635 -0
- package/lib/module/Screens/Dynamic/ContractAcceptanceScreen.js +1 -4
- package/lib/module/Screens/Dynamic/IdentityDocumentEIDScanningScreen.js +17 -4
- package/lib/module/Screens/Dynamic/LivenessDetectionScreen.js +102 -23
- package/lib/module/Screens/Dynamic/VerbalConsentScreen.js +1079 -0
- package/lib/module/Screens/Dynamic/VideoCallScreen.js +3 -1
- package/lib/module/Screens/Static/ResultScreen.js +128 -22
- package/lib/module/Screens/Static/VerificationSessionCheckScreen.js +8 -0
- package/lib/module/Shared/Animations/recording.json +1 -0
- package/lib/module/Shared/Components/DebugNavigationPanel.js +69 -71
- package/lib/module/Shared/Components/EIDScanner.js +212 -108
- package/lib/module/Shared/Components/IdentityDocumentCamera.flows.js +5 -3
- package/lib/module/Shared/Components/IdentityDocumentCamera.js +53 -36
- package/lib/module/Shared/Components/IdentityDocumentCamera.utils.js +13 -4
- package/lib/module/Shared/Components/NavigationManager.js +24 -16
- package/lib/module/Shared/EIDReader/aesSecureMessagingWrapper.js +51 -0
- package/lib/module/Shared/EIDReader/apduLevelPACECapable.js +3 -0
- package/lib/module/Shared/EIDReader/bacKey.js +16 -2
- package/lib/module/Shared/EIDReader/eidReader.js +354 -13
- package/lib/module/Shared/EIDReader/eidService.js +25 -1
- package/lib/module/Shared/EIDReader/nfcManagerCardService.js +4 -7
- package/lib/module/Shared/EIDReader/paceInfo.js +85 -0
- package/lib/module/Shared/EIDReader/paceKeySpec.js +51 -0
- package/lib/module/Shared/EIDReader/protocol/paceAPDUSender.js +100 -0
- package/lib/module/Shared/EIDReader/protocol/paceProtocol.js +655 -0
- package/lib/module/Shared/EIDReader/protocol/paceResult.js +37 -0
- package/lib/module/Shared/EIDReader/secureMessagingWrapper.js +27 -4
- package/lib/module/Shared/EIDReader/smartcards/commandAPDU.js +2 -1
- package/lib/module/Shared/EIDReader/tlv/tlv.helpers.js +1 -1
- package/lib/module/Shared/EIDReader/tlv/tlv.utils.js +6 -3
- package/lib/module/Shared/EIDReader/utils/aesCrypto.utils.js +189 -0
- package/lib/module/Shared/Libs/analytics.utils.js +4 -0
- package/lib/module/Shared/Libs/contains.js +1 -40
- package/lib/module/Shared/Libs/country-display.utils.js +34 -0
- package/lib/module/Shared/Libs/demo.utils.js +8 -0
- package/lib/module/Shared/Libs/mrz.utils.js +3 -2
- package/lib/module/Shared/Libs/status-bar.utils.js +4 -2
- package/lib/module/Shared/Types/analytics.types.js +2 -0
- package/lib/module/Translation/Resources/en.js +41 -2
- package/lib/module/Translation/Resources/tr.js +41 -2
- package/lib/module/Trustchex.js +54 -20
- package/lib/module/version.js +1 -1
- package/lib/typescript/src/Screens/Debug/NFCScanTestScreen.d.ts +3 -0
- package/lib/typescript/src/Screens/Debug/NFCScanTestScreen.d.ts.map +1 -0
- package/lib/typescript/src/Screens/Dynamic/ContractAcceptanceScreen.d.ts.map +1 -1
- package/lib/typescript/src/Screens/Dynamic/IdentityDocumentEIDScanningScreen.d.ts.map +1 -1
- package/lib/typescript/src/Screens/Dynamic/LivenessDetectionScreen.d.ts.map +1 -1
- package/lib/typescript/src/Screens/Dynamic/VerbalConsentScreen.d.ts +3 -0
- package/lib/typescript/src/Screens/Dynamic/VerbalConsentScreen.d.ts.map +1 -0
- package/lib/typescript/src/Screens/Dynamic/VideoCallScreen.d.ts.map +1 -1
- package/lib/typescript/src/Screens/Static/ResultScreen.d.ts.map +1 -1
- package/lib/typescript/src/Screens/Static/VerificationSessionCheckScreen.d.ts.map +1 -1
- package/lib/typescript/src/Shared/Components/DebugNavigationPanel.d.ts.map +1 -1
- package/lib/typescript/src/Shared/Components/EIDScanner.d.ts.map +1 -1
- package/lib/typescript/src/Shared/Components/IdentityDocumentCamera.d.ts.map +1 -1
- package/lib/typescript/src/Shared/Components/IdentityDocumentCamera.flows.d.ts +1 -1
- package/lib/typescript/src/Shared/Components/IdentityDocumentCamera.flows.d.ts.map +1 -1
- package/lib/typescript/src/Shared/Components/IdentityDocumentCamera.utils.d.ts +5 -0
- package/lib/typescript/src/Shared/Components/IdentityDocumentCamera.utils.d.ts.map +1 -1
- package/lib/typescript/src/Shared/Components/NavigationManager.d.ts.map +1 -1
- package/lib/typescript/src/Shared/EIDReader/aesSecureMessagingWrapper.d.ts +18 -0
- package/lib/typescript/src/Shared/EIDReader/aesSecureMessagingWrapper.d.ts.map +1 -0
- package/lib/typescript/src/Shared/EIDReader/apduLevelPACECapable.d.ts +23 -0
- package/lib/typescript/src/Shared/EIDReader/apduLevelPACECapable.d.ts.map +1 -0
- package/lib/typescript/src/Shared/EIDReader/bacKey.d.ts +6 -0
- package/lib/typescript/src/Shared/EIDReader/bacKey.d.ts.map +1 -1
- package/lib/typescript/src/Shared/EIDReader/eidReader.d.ts.map +1 -1
- package/lib/typescript/src/Shared/EIDReader/eidService.d.ts +9 -0
- package/lib/typescript/src/Shared/EIDReader/eidService.d.ts.map +1 -1
- package/lib/typescript/src/Shared/EIDReader/nfcManagerCardService.d.ts.map +1 -1
- package/lib/typescript/src/Shared/EIDReader/paceInfo.d.ts +50 -0
- package/lib/typescript/src/Shared/EIDReader/paceInfo.d.ts.map +1 -0
- package/lib/typescript/src/Shared/EIDReader/paceKeySpec.d.ts +30 -0
- package/lib/typescript/src/Shared/EIDReader/paceKeySpec.d.ts.map +1 -0
- package/lib/typescript/src/Shared/EIDReader/protocol/paceAPDUSender.d.ts +17 -0
- package/lib/typescript/src/Shared/EIDReader/protocol/paceAPDUSender.d.ts.map +1 -0
- package/lib/typescript/src/Shared/EIDReader/protocol/paceProtocol.d.ts +105 -0
- package/lib/typescript/src/Shared/EIDReader/protocol/paceProtocol.d.ts.map +1 -0
- package/lib/typescript/src/Shared/EIDReader/protocol/paceResult.d.ts +24 -0
- package/lib/typescript/src/Shared/EIDReader/protocol/paceResult.d.ts.map +1 -0
- package/lib/typescript/src/Shared/EIDReader/secureMessagingWrapper.d.ts +15 -0
- package/lib/typescript/src/Shared/EIDReader/secureMessagingWrapper.d.ts.map +1 -1
- package/lib/typescript/src/Shared/EIDReader/smartcards/commandAPDU.d.ts.map +1 -1
- package/lib/typescript/src/Shared/EIDReader/tlv/tlv.utils.d.ts.map +1 -1
- package/lib/typescript/src/Shared/EIDReader/utils/aesCrypto.utils.d.ts +39 -0
- package/lib/typescript/src/Shared/EIDReader/utils/aesCrypto.utils.d.ts.map +1 -0
- package/lib/typescript/src/Shared/Libs/analytics.utils.d.ts.map +1 -1
- package/lib/typescript/src/Shared/Libs/contains.d.ts +0 -7
- package/lib/typescript/src/Shared/Libs/contains.d.ts.map +1 -1
- package/lib/typescript/src/Shared/Libs/country-display.utils.d.ts +2 -0
- package/lib/typescript/src/Shared/Libs/country-display.utils.d.ts.map +1 -0
- package/lib/typescript/src/Shared/Libs/demo.utils.d.ts.map +1 -1
- package/lib/typescript/src/Shared/Libs/http-client.d.ts +1 -1
- package/lib/typescript/src/Shared/Libs/http-client.d.ts.map +1 -1
- package/lib/typescript/src/Shared/Libs/mrz.utils.d.ts.map +1 -1
- package/lib/typescript/src/Shared/Libs/status-bar.utils.d.ts.map +1 -1
- package/lib/typescript/src/Shared/Types/analytics.types.d.ts +2 -0
- package/lib/typescript/src/Shared/Types/analytics.types.d.ts.map +1 -1
- package/lib/typescript/src/Shared/Types/identificationInfo.d.ts +10 -1
- package/lib/typescript/src/Shared/Types/identificationInfo.d.ts.map +1 -1
- package/lib/typescript/src/Translation/Resources/en.d.ts +40 -1
- package/lib/typescript/src/Translation/Resources/en.d.ts.map +1 -1
- package/lib/typescript/src/Translation/Resources/tr.d.ts +40 -1
- package/lib/typescript/src/Translation/Resources/tr.d.ts.map +1 -1
- package/lib/typescript/src/Trustchex.d.ts.map +1 -1
- package/lib/typescript/src/version.d.ts +1 -1
- package/package.json +7 -4
- package/src/Screens/Debug/NFCScanTestScreen.tsx +692 -0
- package/src/Screens/Dynamic/ContractAcceptanceScreen.tsx +1 -4
- package/src/Screens/Dynamic/IdentityDocumentEIDScanningScreen.tsx +21 -4
- package/src/Screens/Dynamic/LivenessDetectionScreen.tsx +124 -23
- package/src/Screens/Dynamic/VerbalConsentScreen.tsx +1401 -0
- package/src/Screens/Dynamic/VideoCallScreen.tsx +3 -1
- package/src/Screens/Static/ResultScreen.tsx +183 -31
- package/src/Screens/Static/VerificationSessionCheckScreen.tsx +9 -0
- package/src/Shared/Animations/recording.json +1 -0
- package/src/Shared/Components/DebugNavigationPanel.tsx +73 -48
- package/src/Shared/Components/EIDScanner.tsx +222 -111
- package/src/Shared/Components/IdentityDocumentCamera.flows.ts +7 -4
- package/src/Shared/Components/IdentityDocumentCamera.tsx +199 -184
- package/src/Shared/Components/IdentityDocumentCamera.utils.ts +13 -4
- package/src/Shared/Components/NavigationManager.tsx +27 -18
- package/src/Shared/EIDReader/aesSecureMessagingWrapper.ts +69 -0
- package/src/Shared/EIDReader/apduLevelPACECapable.ts +34 -0
- package/src/Shared/EIDReader/bacKey.ts +24 -8
- package/src/Shared/EIDReader/eidReader.ts +398 -12
- package/src/Shared/EIDReader/eidService.ts +49 -1
- package/src/Shared/EIDReader/nfcManagerCardService.ts +4 -6
- package/src/Shared/EIDReader/paceInfo.ts +159 -0
- package/src/Shared/EIDReader/paceKeySpec.ts +56 -0
- package/src/Shared/EIDReader/protocol/paceAPDUSender.ts +163 -0
- package/src/Shared/EIDReader/protocol/paceProtocol.ts +946 -0
- package/src/Shared/EIDReader/protocol/paceResult.ts +62 -0
- package/src/Shared/EIDReader/secureMessagingWrapper.ts +28 -10
- package/src/Shared/EIDReader/smartcards/commandAPDU.ts +2 -1
- package/src/Shared/EIDReader/tlv/tlv.helpers.ts +1 -1
- package/src/Shared/EIDReader/tlv/tlv.utils.ts +8 -5
- package/src/Shared/EIDReader/utils/aesCrypto.utils.ts +217 -0
- package/src/Shared/Libs/analytics.utils.ts +4 -0
- package/src/Shared/Libs/contains.ts +0 -53
- package/src/Shared/Libs/country-display.utils.ts +55 -0
- package/src/Shared/Libs/crypto.utils.ts +2 -2
- package/src/Shared/Libs/demo.utils.ts +10 -0
- package/src/Shared/Libs/http-client.ts +12 -4
- package/src/Shared/Libs/mrz.utils.ts +3 -2
- package/src/Shared/Libs/status-bar.utils.ts +4 -2
- package/src/Shared/Services/VideoSessionService.ts +1 -1
- package/src/Shared/Types/analytics.types.ts +2 -0
- package/src/Shared/Types/identificationInfo.ts +11 -0
- package/src/Translation/Resources/en.ts +63 -3
- package/src/Translation/Resources/tr.ts +62 -3
- package/src/Trustchex.tsx +53 -17
- package/src/version.ts +1 -1
package/lib/module/Trustchex.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import React, { useEffect, useState, useMemo } from 'react';
|
|
3
|
+
import React, { useEffect, useState, useMemo, useRef } from 'react';
|
|
4
4
|
import { NavigationContainer } from '@react-navigation/native';
|
|
5
5
|
import { createNativeStackNavigator } from '@react-navigation/native-stack';
|
|
6
6
|
import { View, ActivityIndicator, StyleSheet } from 'react-native';
|
|
@@ -17,9 +17,11 @@ import ContractAcceptanceScreen from "./Screens/Dynamic/ContractAcceptanceScreen
|
|
|
17
17
|
import VerificationSessionCheckScreen from "./Screens/Static/VerificationSessionCheckScreen.js";
|
|
18
18
|
import QrCodeScanningScreen from "./Screens/Static/QrCodeScanningScreen.js";
|
|
19
19
|
import VideoCallScreen from "./Screens/Dynamic/VideoCallScreen.js";
|
|
20
|
+
import VerbalConsentScreen from "./Screens/Dynamic/VerbalConsentScreen.js";
|
|
20
21
|
import OTPVerificationScreen from "./Screens/Static/OTPVerificationScreen.js";
|
|
21
22
|
import MRZTestScreen from "./Screens/Debug/MRZTestScreen.js";
|
|
22
23
|
import BarcodeTestScreen from "./Screens/Debug/BarcodeTestScreen.js";
|
|
24
|
+
import NFCScanTestScreen from "./Screens/Debug/NFCScanTestScreen.js";
|
|
23
25
|
import AppContext from "./Shared/Contexts/AppContext.js";
|
|
24
26
|
import DebugNavigationPanel from "./Shared/Components/DebugNavigationPanel.js";
|
|
25
27
|
import i18n from "./Translation/index.js";
|
|
@@ -56,26 +58,52 @@ const Trustchex = ({
|
|
|
56
58
|
...DEFAULT_BRANDING,
|
|
57
59
|
...propBranding
|
|
58
60
|
}), [propBranding]);
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
61
|
+
|
|
62
|
+
// Use a ref to preserve the context object across re-renders.
|
|
63
|
+
// Several parts of the codebase mutate properties directly on the context
|
|
64
|
+
// (e.g. currentWorkflowStep, workflowSteps, identificationInfo fields).
|
|
65
|
+
// A plain useMemo would create a new object on every dependency change,
|
|
66
|
+
// discarding those mutations and causing screens to see undefined values.
|
|
67
|
+
const contextRef = useRef(null);
|
|
68
|
+
const contextValue = useMemo(() => {
|
|
69
|
+
const prev = contextRef.current;
|
|
70
|
+
const value = {
|
|
71
|
+
isDemoSession,
|
|
72
|
+
baseUrl: baseUrl || '',
|
|
73
|
+
locale,
|
|
74
|
+
branding,
|
|
75
|
+
// Reuse the previous identificationInfo object so that direct
|
|
76
|
+
// mutations (sessionId, identificationId, consent, etc.) survive.
|
|
77
|
+
identificationInfo: prev?.identificationInfo ?? {
|
|
78
|
+
sessionId: sessionId || '',
|
|
79
|
+
identificationId: '',
|
|
80
|
+
consent: {
|
|
81
|
+
contractIds: [],
|
|
82
|
+
deviceInfo: ''
|
|
83
|
+
},
|
|
84
|
+
locale: propLocale || i18n.language
|
|
70
85
|
},
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
86
|
+
// Carry over mutated properties from the previous context value
|
|
87
|
+
workflowSteps: prev?.workflowSteps,
|
|
88
|
+
currentWorkflowStep: prev?.currentWorkflowStep,
|
|
89
|
+
isDebugNavigated: prev?.isDebugNavigated,
|
|
90
|
+
isTestVideoSession: prev?.isTestVideoSession,
|
|
91
|
+
onCompleted,
|
|
92
|
+
onError,
|
|
93
|
+
setSessionId,
|
|
94
|
+
setBaseUrl,
|
|
95
|
+
setIsDemoSession
|
|
96
|
+
};
|
|
97
|
+
|
|
98
|
+
// Update state-derived identificationInfo fields without replacing
|
|
99
|
+
// the object (so other mutated fields like identificationId survive).
|
|
100
|
+
if (sessionId) {
|
|
101
|
+
value.identificationInfo.sessionId = sessionId;
|
|
102
|
+
}
|
|
103
|
+
value.identificationInfo.locale = propLocale || i18n.language;
|
|
104
|
+
contextRef.current = value;
|
|
105
|
+
return value;
|
|
106
|
+
}, [baseUrl, locale, branding, sessionId, propLocale, onCompleted, onError, isDemoSession]);
|
|
79
107
|
|
|
80
108
|
// Initialize analytics when SDK mounts with valid session
|
|
81
109
|
useEffect(() => {
|
|
@@ -173,12 +201,18 @@ const Trustchex = ({
|
|
|
173
201
|
}), /*#__PURE__*/_jsx(Stack.Screen, {
|
|
174
202
|
name: "VideoCallScreen",
|
|
175
203
|
component: VideoCallScreen
|
|
204
|
+
}), /*#__PURE__*/_jsx(Stack.Screen, {
|
|
205
|
+
name: "VerbalConsentScreen",
|
|
206
|
+
component: VerbalConsentScreen
|
|
176
207
|
}), /*#__PURE__*/_jsx(Stack.Screen, {
|
|
177
208
|
name: "MRZTestScreen",
|
|
178
209
|
component: MRZTestScreen
|
|
179
210
|
}), /*#__PURE__*/_jsx(Stack.Screen, {
|
|
180
211
|
name: "BarcodeTestScreen",
|
|
181
212
|
component: BarcodeTestScreen
|
|
213
|
+
}), /*#__PURE__*/_jsx(Stack.Screen, {
|
|
214
|
+
name: "NFCScanTestScreen",
|
|
215
|
+
component: NFCScanTestScreen
|
|
182
216
|
})]
|
|
183
217
|
}), /*#__PURE__*/_jsx(DebugNavigationPanel, {})]
|
|
184
218
|
})
|
package/lib/module/version.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NFCScanTestScreen.d.ts","sourceRoot":"","sources":["../../../../../src/Screens/Debug/NFCScanTestScreen.tsx"],"names":[],"mappings":"AAmCA,QAAA,MAAM,iBAAiB,+CAubtB,CAAC;AAyNF,eAAe,iBAAiB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ContractAcceptanceScreen.d.ts","sourceRoot":"","sources":["../../../../../src/Screens/Dynamic/ContractAcceptanceScreen.tsx"],"names":[],"mappings":"AA6BA,QAAA,MAAM,wBAAwB,+CAyK7B,CAAC;
|
|
1
|
+
{"version":3,"file":"ContractAcceptanceScreen.d.ts","sourceRoot":"","sources":["../../../../../src/Screens/Dynamic/ContractAcceptanceScreen.tsx"],"names":[],"mappings":"AA6BA,QAAA,MAAM,wBAAwB,+CAyK7B,CAAC;AA8BF,eAAe,wBAAwB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IdentityDocumentEIDScanningScreen.d.ts","sourceRoot":"","sources":["../../../../../src/Screens/Dynamic/IdentityDocumentEIDScanningScreen.tsx"],"names":[],"mappings":"AAqBA,QAAA,MAAM,iCAAiC,+
|
|
1
|
+
{"version":3,"file":"IdentityDocumentEIDScanningScreen.d.ts","sourceRoot":"","sources":["../../../../../src/Screens/Dynamic/IdentityDocumentEIDScanningScreen.tsx"],"names":[],"mappings":"AAqBA,QAAA,MAAM,iCAAiC,+CA4NtC,CAAC;AAoBF,eAAe,iCAAiC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LivenessDetectionScreen.d.ts","sourceRoot":"","sources":["../../../../../src/Screens/Dynamic/LivenessDetectionScreen.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"LivenessDetectionScreen.d.ts","sourceRoot":"","sources":["../../../../../src/Screens/Dynamic/LivenessDetectionScreen.tsx"],"names":[],"mappings":"AA2FA,QAAA,MAAM,uBAAuB,+CAi7B5B,CAAC;AA+GF,eAAe,uBAAuB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VerbalConsentScreen.d.ts","sourceRoot":"","sources":["../../../../../src/Screens/Dynamic/VerbalConsentScreen.tsx"],"names":[],"mappings":"AA4DA,QAAA,MAAM,mBAAmB,+CAiiCxB,CAAC;AA2RF,eAAe,mBAAmB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VideoCallScreen.d.ts","sourceRoot":"","sources":["../../../../../src/Screens/Dynamic/VideoCallScreen.tsx"],"names":[],"mappings":"AAiCA,QAAA,MAAM,eAAe,GAAI,gBAAgB,GAAG,
|
|
1
|
+
{"version":3,"file":"VideoCallScreen.d.ts","sourceRoot":"","sources":["../../../../../src/Screens/Dynamic/VideoCallScreen.tsx"],"names":[],"mappings":"AAiCA,QAAA,MAAM,eAAe,GAAI,gBAAgB,GAAG,4CAmiB3C,CAAC;AAyLF,eAAe,eAAe,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ResultScreen.d.ts","sourceRoot":"","sources":["../../../../../src/Screens/Static/ResultScreen.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ResultScreen.d.ts","sourceRoot":"","sources":["../../../../../src/Screens/Static/ResultScreen.tsx"],"names":[],"mappings":"AAqDA,QAAA,MAAM,YAAY,+CA4hCjB,CAAC;AAqIF,eAAe,YAAY,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VerificationSessionCheckScreen.d.ts","sourceRoot":"","sources":["../../../../../src/Screens/Static/VerificationSessionCheckScreen.tsx"],"names":[],"mappings":"AAkDA,QAAA,MAAM,8BAA8B,+
|
|
1
|
+
{"version":3,"file":"VerificationSessionCheckScreen.d.ts","sourceRoot":"","sources":["../../../../../src/Screens/Static/VerificationSessionCheckScreen.tsx"],"names":[],"mappings":"AAkDA,QAAA,MAAM,8BAA8B,+CAmUnC,CAAC;AAiHF,eAAe,8BAA8B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DebugNavigationPanel.d.ts","sourceRoot":"","sources":["../../../../../src/Shared/Components/DebugNavigationPanel.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"DebugNavigationPanel.d.ts","sourceRoot":"","sources":["../../../../../src/Shared/Components/DebugNavigationPanel.tsx"],"names":[],"mappings":"AAmCA,QAAA,MAAM,oBAAoB,+CAiezB,CAAC;AA+MF,eAAe,oBAAoB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EIDScanner.d.ts","sourceRoot":"","sources":["../../../../../src/Shared/Components/EIDScanner.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"EIDScanner.d.ts","sourceRoot":"","sources":["../../../../../src/Shared/Components/EIDScanner.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAcpD,UAAU,eAAe;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,CACd,OAAO,EAAE,SAAS,EAClB,SAAS,EAAE,MAAM,EACjB,iBAAiB,EAAE,MAAM,KACtB,IAAI,CAAC;IACV,cAAc,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI,CAAC;CAC/C;AAED,QAAA,MAAM,UAAU,GAAI,6FAOjB,eAAe,4CA4nBjB,CAAC;AAmLF,eAAe,UAAU,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IdentityDocumentCamera.d.ts","sourceRoot":"","sources":["../../../../../src/Shared/Components/IdentityDocumentCamera.tsx"],"names":[],"mappings":"AAsEA,OAAO,KAAK,EACV,mBAAmB,EACnB,SAAS,EACT,2BAA2B,EAK5B,MAAM,gCAAgC,CAAC;AAGxC,YAAY,EAAE,mBAAmB,EAAE,SAAS,EAAE,2BAA2B,EAAE,CAAC;AAC5E,YAAY,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAMnE,QAAA,MAAM,sBAAsB,GAAI,uDAI7B,2BAA2B,
|
|
1
|
+
{"version":3,"file":"IdentityDocumentCamera.d.ts","sourceRoot":"","sources":["../../../../../src/Shared/Components/IdentityDocumentCamera.tsx"],"names":[],"mappings":"AAsEA,OAAO,KAAK,EACV,mBAAmB,EACnB,SAAS,EACT,2BAA2B,EAK5B,MAAM,gCAAgC,CAAC;AAGxC,YAAY,EAAE,mBAAmB,EAAE,SAAS,EAAE,2BAA2B,EAAE,CAAC;AAC5E,YAAY,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAMnE,QAAA,MAAM,sBAAsB,GAAI,uDAI7B,2BAA2B,4CAo2E7B,CAAC;AAiIF,eAAe,sBAAsB,CAAC"}
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* KEY DISTINGUISHING FEATURES:
|
|
7
7
|
* =============================
|
|
8
8
|
* PASSPORT: Has MRZ on FRONT with pattern P<XXX (e.g., P<TUR, P<USA)
|
|
9
|
-
* ID CARD: Has NO MRZ on front; MRZ only on BACK with code
|
|
9
|
+
* ID CARD: Has NO MRZ on front; MRZ only on BACK with code starting with I, A, or C
|
|
10
10
|
*
|
|
11
11
|
* IMPORTANT: Both passports and ID cards have signature sections!
|
|
12
12
|
* Signature presence is NOT a distinguishing feature between document types.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IdentityDocumentCamera.flows.d.ts","sourceRoot":"","sources":["../../../../../src/Shared/Components/IdentityDocumentCamera.flows.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,gCAAgC,CAAC;AAC3D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAUpD,MAAM,WAAW,kBAAkB;IACjC,aAAa,EAAE,OAAO,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EACP,mBAAmB,GACnB,cAAc,GACd,qBAAqB,GACrB,sBAAsB,CAAC;CAC5B;AAED,MAAM,WAAW,iBAAiB;IAChC,aAAa,EAAE,OAAO,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EACP,mBAAmB,GACnB,oBAAoB,GACpB,qBAAqB,CAAC;CAC3B;AAED,MAAM,WAAW,gBAAgB;IAC/B,aAAa,EAAE,OAAO,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,cAAc,GAAG,kBAAkB,GAAG,sBAAsB,CAAC;CAC3E;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,IAAI,EAAE,EACb,OAAO,EAAE,MAAM,GAAG,IAAI,EACtB,SAAS,EAAE,SAAS,GAAG,SAAS,EAChC,iBAAiB,EAAE,OAAO,EAC1B,WAAW,EAAE,OAAO,EACpB,iBAAiB,EAAE,OAAO,EAC1B,YAAY,EAAE,OAAO,GACpB,kBAAkB,CAgEpB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,IAAI,EAAE,EACb,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,GAAG,IAAI,EACtB,SAAS,EAAE,SAAS,GAAG,SAAS,EAChC,UAAU,EAAE,MAAM,GACjB,iBAAiB,
|
|
1
|
+
{"version":3,"file":"IdentityDocumentCamera.flows.d.ts","sourceRoot":"","sources":["../../../../../src/Shared/Components/IdentityDocumentCamera.flows.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,gCAAgC,CAAC;AAC3D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAUpD,MAAM,WAAW,kBAAkB;IACjC,aAAa,EAAE,OAAO,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EACP,mBAAmB,GACnB,cAAc,GACd,qBAAqB,GACrB,sBAAsB,CAAC;CAC5B;AAED,MAAM,WAAW,iBAAiB;IAChC,aAAa,EAAE,OAAO,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EACP,mBAAmB,GACnB,oBAAoB,GACpB,qBAAqB,CAAC;CAC3B;AAED,MAAM,WAAW,gBAAgB;IAC/B,aAAa,EAAE,OAAO,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,cAAc,GAAG,kBAAkB,GAAG,sBAAsB,CAAC;CAC3E;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,IAAI,EAAE,EACb,OAAO,EAAE,MAAM,GAAG,IAAI,EACtB,SAAS,EAAE,SAAS,GAAG,SAAS,EAChC,iBAAiB,EAAE,OAAO,EAC1B,WAAW,EAAE,OAAO,EACpB,iBAAiB,EAAE,OAAO,EAC1B,YAAY,EAAE,OAAO,GACpB,kBAAkB,CAgEpB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,IAAI,EAAE,EACb,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,GAAG,IAAI,EACtB,SAAS,EAAE,SAAS,GAAG,SAAS,EAChC,UAAU,EAAE,MAAM,GACjB,iBAAiB,CA0EnB;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,MAAM,GAAG,IAAI,EACtB,SAAS,EAAE,SAAS,GAAG,SAAS,EAChC,QAAQ,EAAE,OAAO,EACjB,iBAAiB,EAAE,OAAO,EAC1B,iBAAiB,EAAE,OAAO,EAC1B,YAAY,EAAE,MAAM,GAAG,SAAS,EAChC,WAAW,EAAE,OAAO,GACnB,gBAAgB,CA2DlB;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CACtC,oBAAoB,EAAE,UAAU,GAAG,SAAS,GAAG,UAAU,GAAG,SAAS,EACrE,mBAAmB,EAAE,UAAU,GAAG,SAAS,GAAG,UAAU,GAAG,SAAS,EACpE,UAAU,EAAE,MAAM,GAAG,SAAS,GAC7B,WAAW,GAAG,cAAc,CAY9B"}
|
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
import type { ScanStep, ScanStatus, DocumentType, Face } from './IdentityDocumentCamera.types';
|
|
2
2
|
import type { MRZFields } from '../Types/mrzFields';
|
|
3
|
+
/**
|
|
4
|
+
* Checks if a document code represents an ID card (TD1/TD2).
|
|
5
|
+
* Per ICAO 9303, valid ID card codes start with 'I', 'A', or 'C'.
|
|
6
|
+
*/
|
|
7
|
+
export declare function isIDCardDocumentCode(code: string | null | undefined): boolean;
|
|
3
8
|
/**
|
|
4
9
|
* Frame-to-screen coordinate transform using FILL_CENTER scaling
|
|
5
10
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IdentityDocumentCamera.utils.d.ts","sourceRoot":"","sources":["../../../../../src/Shared/Components/IdentityDocumentCamera.utils.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"IdentityDocumentCamera.utils.d.ts","sourceRoot":"","sources":["../../../../../src/Shared/Components/IdentityDocumentCamera.utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NavigationManager.d.ts","sourceRoot":"","sources":["../../../../../src/Shared/Components/NavigationManager.tsx"],"names":[],"mappings":"AAAA,OAAO,KAKN,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"NavigationManager.d.ts","sourceRoot":"","sources":["../../../../../src/Shared/Components/NavigationManager.tsx"],"names":[],"mappings":"AAAA,OAAO,KAKN,MAAM,OAAO,CAAC;AAoBf,MAAM,MAAM,oBAAoB,GAAG;IACjC,kBAAkB,EAAE,MAAM,IAAI,CAAC;IAC/B,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACnC,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,CAAC;AAEF,QAAA,MAAM,iBAAiB,wFA0PtB,CAAC;AAWF,eAAe,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { SecureMessagingWrapper } from './secureMessagingWrapper';
|
|
2
|
+
/**
|
|
3
|
+
* AES-based secure messaging wrapper for PACE.
|
|
4
|
+
*
|
|
5
|
+
* Uses AES-CBC for encryption and AES-CMAC for MAC computation,
|
|
6
|
+
* as specified in ICAO Doc 9303 Part 11.
|
|
7
|
+
*/
|
|
8
|
+
export declare class AESSecureMessagingWrapper extends SecureMessagingWrapper {
|
|
9
|
+
constructor(ksEnc: string, ksMac: string, maxTransceiveLength: number, shouldCheckMAC: boolean, ssc: bigint);
|
|
10
|
+
getType(): string;
|
|
11
|
+
protected getPadLength(): number;
|
|
12
|
+
protected getIV(): number[];
|
|
13
|
+
protected encrypt(dataHex: string, keyHex: string): string;
|
|
14
|
+
protected decrypt(dataHex: string, keyHex: string): string;
|
|
15
|
+
protected computeMAC(dataHex: string, keyHex: string): string;
|
|
16
|
+
getEncodedSendSequenceCounter(): Uint8Array;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=aesSecureMessagingWrapper.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aesSecureMessagingWrapper.d.ts","sourceRoot":"","sources":["../../../../../src/Shared/EIDReader/aesSecureMessagingWrapper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AASlE;;;;;GAKG;AACH,qBAAa,yBAA0B,SAAQ,sBAAsB;gBAEjE,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,mBAAmB,EAAE,MAAM,EAC3B,cAAc,EAAE,OAAO,EACvB,GAAG,EAAE,MAAM;IAKN,OAAO,IAAI,MAAM;IAIxB,SAAS,CAAC,YAAY,IAAI,MAAM;IAIhC,SAAS,CAAC,KAAK,IAAI,MAAM,EAAE;IAS3B,SAAS,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM;IAK1D,SAAS,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM;IAK1D,SAAS,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM;IAItD,6BAA6B,IAAI,UAAU;CAWnD"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { APDUWrapper } from './smartcards/apduWrapper';
|
|
2
|
+
export interface APDULevelPACECapable {
|
|
3
|
+
/**
|
|
4
|
+
* Sends MSE:Set AT for mutual authentication (PACE).
|
|
5
|
+
*
|
|
6
|
+
* @param wrapper the existing secure messaging wrapper (or null)
|
|
7
|
+
* @param oid the PACE protocol OID
|
|
8
|
+
* @param refPublicKeyOrSecretKey the key reference (0x01 = MRZ, 0x02 = CAN, etc.)
|
|
9
|
+
* @param refPrivateKeyOrForComputingSessionKey optional parameter ID
|
|
10
|
+
*/
|
|
11
|
+
sendMSESetATMutualAuth(wrapper: APDUWrapper | null, oid: string, refPublicKeyOrSecretKey: number, refPrivateKeyOrForComputingSessionKey: number[] | null): Promise<void>;
|
|
12
|
+
/**
|
|
13
|
+
* Sends a General Authenticate command for PACE.
|
|
14
|
+
*
|
|
15
|
+
* @param wrapper the existing secure messaging wrapper (or null)
|
|
16
|
+
* @param data the data to send (without 0x7C wrapper)
|
|
17
|
+
* @param le expected response length
|
|
18
|
+
* @param isLast whether this is the last command in the chain
|
|
19
|
+
* @returns the response data (without 0x7C wrapper)
|
|
20
|
+
*/
|
|
21
|
+
sendGeneralAuthenticate(wrapper: APDUWrapper | null, data: number[], le: number, isLast: boolean): Promise<number[]>;
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=apduLevelPACECapable.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"apduLevelPACECapable.d.ts","sourceRoot":"","sources":["../../../../../src/Shared/EIDReader/apduLevelPACECapable.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAE5D,MAAM,WAAW,oBAAoB;IACnC;;;;;;;OAOG;IACH,sBAAsB,CACpB,OAAO,EAAE,WAAW,GAAG,IAAI,EAC3B,GAAG,EAAE,MAAM,EACX,uBAAuB,EAAE,MAAM,EAC/B,qCAAqC,EAAE,MAAM,EAAE,GAAG,IAAI,GACrD,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjB;;;;;;;;OAQG;IACH,uBAAuB,CACrB,OAAO,EAAE,WAAW,GAAG,IAAI,EAC3B,IAAI,EAAE,MAAM,EAAE,EACd,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,OAAO,GACd,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;CACtB"}
|
|
@@ -42,6 +42,12 @@ export declare class BACKey implements BACKeySpec {
|
|
|
42
42
|
* @return the encoded key
|
|
43
43
|
*/
|
|
44
44
|
getKey(): any;
|
|
45
|
+
/**
|
|
46
|
+
* Returns the key seed for PACE, which is the full (non-truncated) SHA-1 hash
|
|
47
|
+
* of the MRZ info. PACE uses the full 20-byte hash unlike BAC which truncates to 16.
|
|
48
|
+
*/
|
|
49
|
+
getKeySeedForPACE(): string;
|
|
50
|
+
private getMRZString;
|
|
45
51
|
/**
|
|
46
52
|
* Sets the document number.
|
|
47
53
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bacKey.d.ts","sourceRoot":"","sources":["../../../../../src/Shared/EIDReader/bacKey.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAG/C,qBAAa,MAAO,YAAW,UAAU;IACvC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAoB;IAE/C,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,YAAY,CAAS;IAE7B;;;;;;OAMG;gBAED,cAAc,EAAE,MAAM,EACtB,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM;IAiBtB;;;;OAIG;IACI,iBAAiB,IAAI,MAAM;IAIlC;;;;OAIG;IACI,cAAc,IAAI,MAAM;IAI/B;;;;OAIG;IACI,eAAe,IAAI,MAAM;IAIhC;;;;OAIG;IACI,YAAY,IAAI,MAAM;IAI7B;;;;OAIG;IACI,MAAM;
|
|
1
|
+
{"version":3,"file":"bacKey.d.ts","sourceRoot":"","sources":["../../../../../src/Shared/EIDReader/bacKey.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAG/C,qBAAa,MAAO,YAAW,UAAU;IACvC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAoB;IAE/C,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,YAAY,CAAS;IAE7B;;;;;;OAMG;gBAED,cAAc,EAAE,MAAM,EACtB,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM;IAiBtB;;;;OAIG;IACI,iBAAiB,IAAI,MAAM;IAIlC;;;;OAIG;IACI,cAAc,IAAI,MAAM;IAI/B;;;;OAIG;IACI,eAAe,IAAI,MAAM;IAIhC;;;;OAIG;IACI,YAAY,IAAI,MAAM;IAI7B;;;;OAIG;IACI,MAAM;IAQb;;;OAGG;IACI,iBAAiB,IAAI,MAAM;IAQlC,OAAO,CAAC,YAAY;IAWpB;;;;OAIG;IACH,SAAS,CAAC,iBAAiB,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI;IAIzD;;;;OAIG;IACH,SAAS,CAAC,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAInD;;;;OAIG;IACH,SAAS,CAAC,eAAe,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI;IAIrD,OAAO,CAAC,MAAM,CAAC,iBAAiB;CAUjC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eidReader.d.ts","sourceRoot":"","sources":["../../../../../src/Shared/EIDReader/eidReader.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"eidReader.d.ts","sourceRoot":"","sources":["../../../../../src/Shared/EIDReader/eidReader.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAwR7C,QAAA,MAAM,SAAS,GACb,gBAAgB,MAAM,EACtB,aAAa,MAAM,EACnB,cAAc,MAAM,EACpB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,KAC5C,OAAO,CACR;IAAE,GAAG,CAAC,EAAE,OAAO,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CA0MnE,CAAC;AAEF,OAAO,EAAE,SAAS,EAAE,CAAC"}
|
|
@@ -5,6 +5,7 @@ import { CardService } from './cardService';
|
|
|
5
5
|
import { ResponseAPDU } from './smartcards/responseAPDU';
|
|
6
6
|
import { SecureMessagingWrapper } from './secureMessagingWrapper';
|
|
7
7
|
import { BACResult } from './protocol/bacResult';
|
|
8
|
+
import { PACEResult } from './protocol/paceResult';
|
|
8
9
|
import { CommandAPDU } from './smartcards/commandAPDU';
|
|
9
10
|
import type { APDUListener } from './smartcards/apduListener';
|
|
10
11
|
import { APDUEvent } from './smartcards/apduEvent';
|
|
@@ -132,6 +133,14 @@ export declare class EIDService extends AbstractMRTDCardService {
|
|
|
132
133
|
sendSelectMF(): Promise<void>;
|
|
133
134
|
getIsOpen(): boolean;
|
|
134
135
|
doBAC(bacKey: AccessKeySpec): Promise<BACResult>;
|
|
136
|
+
/**
|
|
137
|
+
* Performs the PACE protocol.
|
|
138
|
+
*
|
|
139
|
+
* @param accessKey the access key (MRZ or CAN based)
|
|
140
|
+
* @param oid the PACE OID string from EF.CardAccess
|
|
141
|
+
* @param parameterId the standard domain parameter ID (e.g. 13 for brainpoolP256r1)
|
|
142
|
+
*/
|
|
143
|
+
doPACE(accessKey: AccessKeySpec, oid: string, parameterId: number | null, progressCallback?: (progress: number) => void): Promise<PACEResult>;
|
|
135
144
|
close(): Promise<void>;
|
|
136
145
|
getMaxTransceiveLength(): number;
|
|
137
146
|
getWrapper(): SecureMessagingWrapper | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eidService.d.ts","sourceRoot":"","sources":["../../../../../src/Shared/EIDReader/eidService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAGlE,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"eidService.d.ts","sourceRoot":"","sources":["../../../../../src/Shared/EIDReader/eidService.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nfcManagerCardService.d.ts","sourceRoot":"","sources":["../../../../../src/Shared/EIDReader/nfcManagerCardService.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAGzD,qBAAa,qBAAsB,SAAQ,WAAW;IACpD,OAAO,CAAC,QAAQ,CAAS;IACZ,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"nfcManagerCardService.d.ts","sourceRoot":"","sources":["../../../../../src/Shared/EIDReader/nfcManagerCardService.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAGzD,qBAAa,qBAAsB,SAAQ,WAAW;IACpD,OAAO,CAAC,QAAQ,CAAS;IACZ,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAc3B,SAAS,IAAI,OAAO;IAId,QAAQ,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC;IAiB/D,MAAM,IAAI,UAAU;IAIpB,mBAAmB,CAAC,MAAM,EAAE,KAAK,GAAG,OAAO;IAIrC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAIpC"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PACE (Password Authenticated Connection Establishment) protocol info.
|
|
3
|
+
* Parses PACE OIDs to extract mapping type, cipher, digest, key agreement algorithm, and key length.
|
|
4
|
+
*
|
|
5
|
+
* Based on ICAO Doc 9303 Part 11 and BSI TR-03110.
|
|
6
|
+
*/
|
|
7
|
+
export declare enum MappingType {
|
|
8
|
+
GM = "GM",
|
|
9
|
+
IM = "IM",
|
|
10
|
+
CAM = "CAM"
|
|
11
|
+
}
|
|
12
|
+
export declare const ID_PACE = "0.4.0.127.0.7.2.2.4";
|
|
13
|
+
export declare const ID_PACE_DH_GM = "0.4.0.127.0.7.2.2.4.1";
|
|
14
|
+
export declare const ID_PACE_DH_GM_3DES_CBC_CBC = "0.4.0.127.0.7.2.2.4.1.1";
|
|
15
|
+
export declare const ID_PACE_DH_GM_AES_CBC_CMAC_128 = "0.4.0.127.0.7.2.2.4.1.2";
|
|
16
|
+
export declare const ID_PACE_DH_GM_AES_CBC_CMAC_192 = "0.4.0.127.0.7.2.2.4.1.3";
|
|
17
|
+
export declare const ID_PACE_DH_GM_AES_CBC_CMAC_256 = "0.4.0.127.0.7.2.2.4.1.4";
|
|
18
|
+
export declare const ID_PACE_ECDH_GM = "0.4.0.127.0.7.2.2.4.2";
|
|
19
|
+
export declare const ID_PACE_ECDH_GM_3DES_CBC_CBC = "0.4.0.127.0.7.2.2.4.2.1";
|
|
20
|
+
export declare const ID_PACE_ECDH_GM_AES_CBC_CMAC_128 = "0.4.0.127.0.7.2.2.4.2.2";
|
|
21
|
+
export declare const ID_PACE_ECDH_GM_AES_CBC_CMAC_192 = "0.4.0.127.0.7.2.2.4.2.3";
|
|
22
|
+
export declare const ID_PACE_ECDH_GM_AES_CBC_CMAC_256 = "0.4.0.127.0.7.2.2.4.2.4";
|
|
23
|
+
export declare const ID_PACE_DH_IM = "0.4.0.127.0.7.2.2.4.3";
|
|
24
|
+
export declare const ID_PACE_DH_IM_3DES_CBC_CBC = "0.4.0.127.0.7.2.2.4.3.1";
|
|
25
|
+
export declare const ID_PACE_DH_IM_AES_CBC_CMAC_128 = "0.4.0.127.0.7.2.2.4.3.2";
|
|
26
|
+
export declare const ID_PACE_DH_IM_AES_CBC_CMAC_192 = "0.4.0.127.0.7.2.2.4.3.3";
|
|
27
|
+
export declare const ID_PACE_DH_IM_AES_CBC_CMAC_256 = "0.4.0.127.0.7.2.2.4.3.4";
|
|
28
|
+
export declare const ID_PACE_ECDH_IM = "0.4.0.127.0.7.2.2.4.4";
|
|
29
|
+
export declare const ID_PACE_ECDH_IM_3DES_CBC_CBC = "0.4.0.127.0.7.2.2.4.4.1";
|
|
30
|
+
export declare const ID_PACE_ECDH_IM_AES_CBC_CMAC_128 = "0.4.0.127.0.7.2.2.4.4.2";
|
|
31
|
+
export declare const ID_PACE_ECDH_IM_AES_CBC_CMAC_192 = "0.4.0.127.0.7.2.2.4.4.3";
|
|
32
|
+
export declare const ID_PACE_ECDH_IM_AES_CBC_CMAC_256 = "0.4.0.127.0.7.2.2.4.4.4";
|
|
33
|
+
export declare const ID_PACE_ECDH_CAM = "0.4.0.127.0.7.2.2.4.6";
|
|
34
|
+
export declare const ID_PACE_ECDH_CAM_AES_CBC_CMAC_128 = "0.4.0.127.0.7.2.2.4.6.2";
|
|
35
|
+
export declare const ID_PACE_ECDH_CAM_AES_CBC_CMAC_192 = "0.4.0.127.0.7.2.2.4.6.3";
|
|
36
|
+
export declare const ID_PACE_ECDH_CAM_AES_CBC_CMAC_256 = "0.4.0.127.0.7.2.2.4.6.4";
|
|
37
|
+
export declare const PARAM_ID_ECP_NIST_P256_R1 = 12;
|
|
38
|
+
export declare const PARAM_ID_ECP_BRAINPOOL_P256_R1 = 13;
|
|
39
|
+
export declare const PARAM_ID_ECP_BRAINPOOL_P384_R1 = 16;
|
|
40
|
+
export declare const PARAM_ID_ECP_BRAINPOOL_P512_R1 = 17;
|
|
41
|
+
export declare const PARAM_ID_ECP_NIST_P384_R1 = 15;
|
|
42
|
+
export declare const PARAM_ID_ECP_NIST_P521_R1 = 18;
|
|
43
|
+
export declare class PACEInfo {
|
|
44
|
+
static toMappingType(oid: string): MappingType;
|
|
45
|
+
static toKeyAgreementAlgorithm(oid: string): 'DH' | 'ECDH';
|
|
46
|
+
static toCipherAlgorithm(oid: string): 'DESede' | 'AES';
|
|
47
|
+
static toDigestAlgorithm(oid: string): 'SHA-1' | 'SHA-256';
|
|
48
|
+
static toKeyLength(oid: string): 128 | 192 | 256;
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=paceInfo.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"paceInfo.d.ts","sourceRoot":"","sources":["../../../../../src/Shared/EIDReader/paceInfo.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,oBAAY,WAAW;IACrB,EAAE,OAAO;IACT,EAAE,OAAO;IACT,GAAG,QAAQ;CACZ;AAGD,eAAO,MAAM,OAAO,wBAAwB,CAAC;AAE7C,eAAO,MAAM,aAAa,0BAA0B,CAAC;AACrD,eAAO,MAAM,0BAA0B,4BAA4B,CAAC;AACpE,eAAO,MAAM,8BAA8B,4BAA4B,CAAC;AACxE,eAAO,MAAM,8BAA8B,4BAA4B,CAAC;AACxE,eAAO,MAAM,8BAA8B,4BAA4B,CAAC;AAExE,eAAO,MAAM,eAAe,0BAA0B,CAAC;AACvD,eAAO,MAAM,4BAA4B,4BAA4B,CAAC;AACtE,eAAO,MAAM,gCAAgC,4BAA4B,CAAC;AAC1E,eAAO,MAAM,gCAAgC,4BAA4B,CAAC;AAC1E,eAAO,MAAM,gCAAgC,4BAA4B,CAAC;AAE1E,eAAO,MAAM,aAAa,0BAA0B,CAAC;AACrD,eAAO,MAAM,0BAA0B,4BAA4B,CAAC;AACpE,eAAO,MAAM,8BAA8B,4BAA4B,CAAC;AACxE,eAAO,MAAM,8BAA8B,4BAA4B,CAAC;AACxE,eAAO,MAAM,8BAA8B,4BAA4B,CAAC;AAExE,eAAO,MAAM,eAAe,0BAA0B,CAAC;AACvD,eAAO,MAAM,4BAA4B,4BAA4B,CAAC;AACtE,eAAO,MAAM,gCAAgC,4BAA4B,CAAC;AAC1E,eAAO,MAAM,gCAAgC,4BAA4B,CAAC;AAC1E,eAAO,MAAM,gCAAgC,4BAA4B,CAAC;AAE1E,eAAO,MAAM,gBAAgB,0BAA0B,CAAC;AACxD,eAAO,MAAM,iCAAiC,4BAA4B,CAAC;AAC3E,eAAO,MAAM,iCAAiC,4BAA4B,CAAC;AAC3E,eAAO,MAAM,iCAAiC,4BAA4B,CAAC;AAG3E,eAAO,MAAM,yBAAyB,KAAK,CAAC;AAC5C,eAAO,MAAM,8BAA8B,KAAK,CAAC;AACjD,eAAO,MAAM,8BAA8B,KAAK,CAAC;AACjD,eAAO,MAAM,8BAA8B,KAAK,CAAC;AACjD,eAAO,MAAM,yBAAyB,KAAK,CAAC;AAC5C,eAAO,MAAM,yBAAyB,KAAK,CAAC;AA8E5C,qBAAa,QAAQ;WACL,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW;WAOvC,uBAAuB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM;WAKnD,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK;WAKhD,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS;WAKnD,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG;CAMxD"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type { AccessKeySpec } from './accessKeySpec';
|
|
2
|
+
/**
|
|
3
|
+
* A key specification for PACE authentication.
|
|
4
|
+
* Supports MRZ, CAN, PIN, and PUK key types.
|
|
5
|
+
*/
|
|
6
|
+
export declare class PACEKeySpec implements AccessKeySpec {
|
|
7
|
+
private key;
|
|
8
|
+
private keyReference;
|
|
9
|
+
constructor(key: string, keyReference: number);
|
|
10
|
+
getAlgorithm(): string;
|
|
11
|
+
getKey(): string;
|
|
12
|
+
getKeyReference(): number;
|
|
13
|
+
/**
|
|
14
|
+
* Creates a PACE key from a Card Access Number (CAN).
|
|
15
|
+
*/
|
|
16
|
+
static createCANKey(can: string): PACEKeySpec;
|
|
17
|
+
/**
|
|
18
|
+
* Creates a PACE key from a PIN.
|
|
19
|
+
*/
|
|
20
|
+
static createPINKey(pin: string): PACEKeySpec;
|
|
21
|
+
/**
|
|
22
|
+
* Creates a PACE key from a PUK.
|
|
23
|
+
*/
|
|
24
|
+
static createPUKKey(puk: string): PACEKeySpec;
|
|
25
|
+
/**
|
|
26
|
+
* Creates an MRZ-based PACE key from BAC key seed bytes.
|
|
27
|
+
*/
|
|
28
|
+
static createMRZKey(keySeed: string): PACEKeySpec;
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=paceKeySpec.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"paceKeySpec.d.ts","sourceRoot":"","sources":["../../../../../src/Shared/EIDReader/paceKeySpec.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGrD;;;GAGG;AACH,qBAAa,WAAY,YAAW,aAAa;IAC/C,OAAO,CAAC,GAAG,CAAS;IACpB,OAAO,CAAC,YAAY,CAAS;gBAEjB,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM;IAKtC,YAAY,IAAI,MAAM;IAItB,MAAM,IAAI,MAAM;IAIhB,eAAe,IAAI,MAAM;IAIhC;;OAEG;WACW,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW;IAIpD;;OAEG;WACW,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW;IAIpD;;OAEG;WACW,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW;IAIpD;;OAEG;WACW,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,WAAW;CAGzD"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { APDULevelPACECapable } from '../apduLevelPACECapable';
|
|
2
|
+
import type { APDUWrapper } from '../smartcards/apduWrapper';
|
|
3
|
+
import { CardService } from '../cardService';
|
|
4
|
+
/**
|
|
5
|
+
* Low-level APDU sender to support the PACE protocol.
|
|
6
|
+
*/
|
|
7
|
+
export declare class PACEAPDUSender implements APDULevelPACECapable {
|
|
8
|
+
private secureMessagingSender;
|
|
9
|
+
constructor(service: CardService);
|
|
10
|
+
sendMSESetATMutualAuth(wrapper: APDUWrapper | null, oid: string, refPublicKeyOrSecretKey: number, refPrivateKeyOrForComputingSessionKey: number[] | null): Promise<void>;
|
|
11
|
+
sendGeneralAuthenticate(wrapper: APDUWrapper | null, data: number[], le: number, isLast: boolean): Promise<number[]>;
|
|
12
|
+
/**
|
|
13
|
+
* Encodes an OID string to its ASN.1 byte representation wrapped in tag 0x80.
|
|
14
|
+
*/
|
|
15
|
+
private static toOIDBytes;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=paceAPDUSender.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"paceAPDUSender.d.ts","sourceRoot":"","sources":["../../../../../../src/Shared/EIDReader/protocol/paceAPDUSender.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAE7D,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAQ7C;;GAEG;AACH,qBAAa,cAAe,YAAW,oBAAoB;IACzD,OAAO,CAAC,qBAAqB,CAA4B;gBAE7C,OAAO,EAAE,WAAW;IAInB,sBAAsB,CACjC,OAAO,EAAE,WAAW,GAAG,IAAI,EAC3B,GAAG,EAAE,MAAM,EACX,uBAAuB,EAAE,MAAM,EAC/B,qCAAqC,EAAE,MAAM,EAAE,GAAG,IAAI,GACrD,OAAO,CAAC,IAAI,CAAC;IA+CH,uBAAuB,CAClC,OAAO,EAAE,WAAW,GAAG,IAAI,EAC3B,IAAI,EAAE,MAAM,EAAE,EACd,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,OAAO,GACd,OAAO,CAAC,MAAM,EAAE,CAAC;IA6CpB;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,UAAU;CAoC1B"}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import type { APDULevelPACECapable } from '../apduLevelPACECapable';
|
|
2
|
+
import type { AccessKeySpec } from '../accessKeySpec';
|
|
3
|
+
import type { SecureMessagingWrapper } from '../secureMessagingWrapper';
|
|
4
|
+
import { PACEResult } from './paceResult';
|
|
5
|
+
/**
|
|
6
|
+
* Implements the PACE (Password Authenticated Connection Establishment) protocol.
|
|
7
|
+
*
|
|
8
|
+
* Supports Generic Mapping (GM) with ECDH, as used by modern ePassports
|
|
9
|
+
* per ICAO Doc 9303 Part 11 and BSI TR-03110.
|
|
10
|
+
*/
|
|
11
|
+
export declare class PACEProtocol {
|
|
12
|
+
private service;
|
|
13
|
+
private wrapper;
|
|
14
|
+
private maxTransceiveLengthForProtocol;
|
|
15
|
+
private maxTransceiveLengthForSecureMessaging;
|
|
16
|
+
private shouldCheckMAC;
|
|
17
|
+
constructor(service: APDULevelPACECapable, wrapper: SecureMessagingWrapper | null, maxTransceiveLengthForProtocol: number, maxTransceiveLengthForSecureMessaging: number, shouldCheckMAC: boolean);
|
|
18
|
+
/**
|
|
19
|
+
* Performs the full PACE protocol.
|
|
20
|
+
*
|
|
21
|
+
* @param accessKey the access key (MRZ or CAN based)
|
|
22
|
+
* @param oid the PACE OID from EF.CardAccess
|
|
23
|
+
* @param parameterId the standard domain parameter ID (e.g., 13 for brainpoolP256r1)
|
|
24
|
+
*/
|
|
25
|
+
doPACE(accessKey: AccessKeySpec, oid: string, parameterId: number | null, progressCallback?: (progress: number) => void): Promise<PACEResult>;
|
|
26
|
+
/**
|
|
27
|
+
* Step 1: Receive encrypted nonce from PICC, decrypt it.
|
|
28
|
+
*/
|
|
29
|
+
private doPACEStep1;
|
|
30
|
+
/**
|
|
31
|
+
* Step 2: Generic Mapping with ECDH.
|
|
32
|
+
* Maps the PICC nonce to ephemeral domain parameters.
|
|
33
|
+
*/
|
|
34
|
+
private doPACEStep2GM;
|
|
35
|
+
/**
|
|
36
|
+
* Step 2 (IM): Integrated Mapping with ECDH.
|
|
37
|
+
* PCD sends a random nonce T to the PICC; both sides independently compute
|
|
38
|
+
* the ephemeral generator via R_p(s, t) and Icart point encoding.
|
|
39
|
+
* Reference: BSI TR-03110 Part 3, Section 3.3.2 and ICAO SAC TR 2010 Section 4.4.3.3.
|
|
40
|
+
*/
|
|
41
|
+
private doPACEStep2IM;
|
|
42
|
+
/**
|
|
43
|
+
* Step 3: Key Agreement.
|
|
44
|
+
* Generate ephemeral key pair, exchange public keys, compute shared secret.
|
|
45
|
+
*/
|
|
46
|
+
private doPACEStep3;
|
|
47
|
+
/**
|
|
48
|
+
* Step 4: Mutual Authentication.
|
|
49
|
+
* Compute and exchange authentication tokens.
|
|
50
|
+
*/
|
|
51
|
+
private doPACEStep4;
|
|
52
|
+
/**
|
|
53
|
+
* Build the input for the authentication token MAC.
|
|
54
|
+
* Per BSI TR-03110 Part 3 Section 4.5.3, the authentication token is computed
|
|
55
|
+
* over a public key data object wrapped in tag 0x7F49.
|
|
56
|
+
*/
|
|
57
|
+
private static buildAuthenticationTokenInput;
|
|
58
|
+
private static encodeLengthBytes;
|
|
59
|
+
/**
|
|
60
|
+
* Compute authentication token using AES-CMAC or DES MAC.
|
|
61
|
+
*/
|
|
62
|
+
private static computeAuthenticationToken;
|
|
63
|
+
/**
|
|
64
|
+
* Derive the static PACE key K_pi from the access key.
|
|
65
|
+
*/
|
|
66
|
+
static deriveStaticPACEKey(accessKey: AccessKeySpec, cipherAlg: string, keyLength: number, _digestAlg: string): string;
|
|
67
|
+
private static encodeECPublicKey;
|
|
68
|
+
private static encodeECPoint;
|
|
69
|
+
private static bufferToBN;
|
|
70
|
+
private static encodeOIDValue;
|
|
71
|
+
/**
|
|
72
|
+
* Fast modular exponentiation using BigInt (square-and-multiply).
|
|
73
|
+
*/
|
|
74
|
+
private static modPow;
|
|
75
|
+
/**
|
|
76
|
+
* Pseudo-random function R_p(s, t) for PACE Integrated Mapping.
|
|
77
|
+
* Specified in ICAO Doc 9303 Part 11, Section 4.4.3.3.2 and BSI TR-03110.
|
|
78
|
+
*
|
|
79
|
+
* Uses the block cipher in CBC mode (IV=0) to derive a field element mod p.
|
|
80
|
+
*
|
|
81
|
+
* @param sHex - PICC nonce s (hex)
|
|
82
|
+
* @param tHex - PCD nonce t (hex, same length as s)
|
|
83
|
+
* @param p - prime of the field GF(p)
|
|
84
|
+
* @param cipherAlg - 'AES'
|
|
85
|
+
* @returns field element as hex string (big-endian, same byte length as s)
|
|
86
|
+
*/
|
|
87
|
+
private static pseudoRandomFunction;
|
|
88
|
+
/**
|
|
89
|
+
* Icart's deterministic encoding of a field element to a curve point.
|
|
90
|
+
* Maps an element t ∈ GF(p) to a point (x, y) on y² = x³ + ax + b.
|
|
91
|
+
* Requires p ≡ 3 (mod 4).
|
|
92
|
+
* Reference: ICAO SAC TR 2010, Section 5.2.
|
|
93
|
+
*
|
|
94
|
+
* @param tHex - field element as hex string
|
|
95
|
+
* @param curve - the elliptic curve
|
|
96
|
+
* @returns { x, y } as hex strings (field-element-width, big-endian)
|
|
97
|
+
*/
|
|
98
|
+
private static icartPointEncode;
|
|
99
|
+
private static i2os;
|
|
100
|
+
/**
|
|
101
|
+
* Map standard domain parameter ID to elliptic curve name.
|
|
102
|
+
*/
|
|
103
|
+
static getCurveName(parameterId: number): string;
|
|
104
|
+
}
|
|
105
|
+
//# sourceMappingURL=paceProtocol.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"paceProtocol.d.ts","sourceRoot":"","sources":["../../../../../../src/Shared/EIDReader/protocol/paceProtocol.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AAIxE,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AA8E1C;;;;;GAKG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,OAAO,CAAuB;IACtC,OAAO,CAAC,OAAO,CAAgC;IAC/C,OAAO,CAAC,8BAA8B,CAAS;IAC/C,OAAO,CAAC,qCAAqC,CAAS;IACtD,OAAO,CAAC,cAAc,CAAU;gBAG9B,OAAO,EAAE,oBAAoB,EAC7B,OAAO,EAAE,sBAAsB,GAAG,IAAI,EACtC,8BAA8B,EAAE,MAAM,EACtC,qCAAqC,EAAE,MAAM,EAC7C,cAAc,EAAE,OAAO;IAUzB;;;;;;OAMG;IACU,MAAM,CACjB,SAAS,EAAE,aAAa,EACxB,GAAG,EAAE,MAAM,EACX,WAAW,EAAE,MAAM,GAAG,IAAI,EAC1B,gBAAgB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,GAC5C,OAAO,CAAC,UAAU,CAAC;IAkKtB;;OAEG;YACW,WAAW;IAoCzB;;;OAGG;YACW,aAAa;IAmE3B;;;;;OAKG;YACW,aAAa;IAwD3B;;;OAGG;YACW,WAAW;IA+EzB;;;OAGG;YACW,WAAW;IAqDzB;;;;OAIG;IACH,OAAO,CAAC,MAAM,CAAC,6BAA6B;IA4B5C,OAAO,CAAC,MAAM,CAAC,iBAAiB;IAUhC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,0BAA0B;IAczC;;OAEG;WACW,mBAAmB,CAC/B,SAAS,EAAE,aAAa,EACxB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,GACjB,MAAM;IAoBT,OAAO,CAAC,MAAM,CAAC,iBAAiB;IAQhC,OAAO,CAAC,MAAM,CAAC,aAAa;IAY5B,OAAO,CAAC,MAAM,CAAC,UAAU;IAMzB,OAAO,CAAC,MAAM,CAAC,cAAc;IA+B7B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,MAAM;IAcrB;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,MAAM,CAAC,oBAAoB;IAwDnC;;;;;;;;;OASG;IACH,OAAO,CAAC,MAAM,CAAC,gBAAgB;IAgE/B,OAAO,CAAC,MAAM,CAAC,IAAI;IAWnB;;OAEG;WACW,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM;CA6BxD"}
|