@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.
Files changed (156) hide show
  1. package/android/src/main/java/com/trustchex/reactnativesdk/TrustchexSDKModule.kt +2 -8
  2. package/android/src/main/java/com/trustchex/reactnativesdk/camera/TrustchexCameraView.kt +59 -1
  3. package/ios/Camera/TrustchexCameraView.swift +9 -1
  4. package/lib/module/Screens/Debug/NFCScanTestScreen.js +635 -0
  5. package/lib/module/Screens/Dynamic/ContractAcceptanceScreen.js +1 -4
  6. package/lib/module/Screens/Dynamic/IdentityDocumentEIDScanningScreen.js +17 -4
  7. package/lib/module/Screens/Dynamic/LivenessDetectionScreen.js +102 -23
  8. package/lib/module/Screens/Dynamic/VerbalConsentScreen.js +1079 -0
  9. package/lib/module/Screens/Dynamic/VideoCallScreen.js +3 -1
  10. package/lib/module/Screens/Static/ResultScreen.js +128 -22
  11. package/lib/module/Screens/Static/VerificationSessionCheckScreen.js +8 -0
  12. package/lib/module/Shared/Animations/recording.json +1 -0
  13. package/lib/module/Shared/Components/DebugNavigationPanel.js +69 -71
  14. package/lib/module/Shared/Components/EIDScanner.js +212 -108
  15. package/lib/module/Shared/Components/IdentityDocumentCamera.flows.js +5 -3
  16. package/lib/module/Shared/Components/IdentityDocumentCamera.js +53 -36
  17. package/lib/module/Shared/Components/IdentityDocumentCamera.utils.js +13 -4
  18. package/lib/module/Shared/Components/NavigationManager.js +24 -16
  19. package/lib/module/Shared/EIDReader/aesSecureMessagingWrapper.js +51 -0
  20. package/lib/module/Shared/EIDReader/apduLevelPACECapable.js +3 -0
  21. package/lib/module/Shared/EIDReader/bacKey.js +16 -2
  22. package/lib/module/Shared/EIDReader/eidReader.js +354 -13
  23. package/lib/module/Shared/EIDReader/eidService.js +25 -1
  24. package/lib/module/Shared/EIDReader/nfcManagerCardService.js +4 -7
  25. package/lib/module/Shared/EIDReader/paceInfo.js +85 -0
  26. package/lib/module/Shared/EIDReader/paceKeySpec.js +51 -0
  27. package/lib/module/Shared/EIDReader/protocol/paceAPDUSender.js +100 -0
  28. package/lib/module/Shared/EIDReader/protocol/paceProtocol.js +655 -0
  29. package/lib/module/Shared/EIDReader/protocol/paceResult.js +37 -0
  30. package/lib/module/Shared/EIDReader/secureMessagingWrapper.js +27 -4
  31. package/lib/module/Shared/EIDReader/smartcards/commandAPDU.js +2 -1
  32. package/lib/module/Shared/EIDReader/tlv/tlv.helpers.js +1 -1
  33. package/lib/module/Shared/EIDReader/tlv/tlv.utils.js +6 -3
  34. package/lib/module/Shared/EIDReader/utils/aesCrypto.utils.js +189 -0
  35. package/lib/module/Shared/Libs/analytics.utils.js +4 -0
  36. package/lib/module/Shared/Libs/contains.js +1 -40
  37. package/lib/module/Shared/Libs/country-display.utils.js +34 -0
  38. package/lib/module/Shared/Libs/demo.utils.js +8 -0
  39. package/lib/module/Shared/Libs/mrz.utils.js +3 -2
  40. package/lib/module/Shared/Libs/status-bar.utils.js +4 -2
  41. package/lib/module/Shared/Types/analytics.types.js +2 -0
  42. package/lib/module/Translation/Resources/en.js +41 -2
  43. package/lib/module/Translation/Resources/tr.js +41 -2
  44. package/lib/module/Trustchex.js +54 -20
  45. package/lib/module/version.js +1 -1
  46. package/lib/typescript/src/Screens/Debug/NFCScanTestScreen.d.ts +3 -0
  47. package/lib/typescript/src/Screens/Debug/NFCScanTestScreen.d.ts.map +1 -0
  48. package/lib/typescript/src/Screens/Dynamic/ContractAcceptanceScreen.d.ts.map +1 -1
  49. package/lib/typescript/src/Screens/Dynamic/IdentityDocumentEIDScanningScreen.d.ts.map +1 -1
  50. package/lib/typescript/src/Screens/Dynamic/LivenessDetectionScreen.d.ts.map +1 -1
  51. package/lib/typescript/src/Screens/Dynamic/VerbalConsentScreen.d.ts +3 -0
  52. package/lib/typescript/src/Screens/Dynamic/VerbalConsentScreen.d.ts.map +1 -0
  53. package/lib/typescript/src/Screens/Dynamic/VideoCallScreen.d.ts.map +1 -1
  54. package/lib/typescript/src/Screens/Static/ResultScreen.d.ts.map +1 -1
  55. package/lib/typescript/src/Screens/Static/VerificationSessionCheckScreen.d.ts.map +1 -1
  56. package/lib/typescript/src/Shared/Components/DebugNavigationPanel.d.ts.map +1 -1
  57. package/lib/typescript/src/Shared/Components/EIDScanner.d.ts.map +1 -1
  58. package/lib/typescript/src/Shared/Components/IdentityDocumentCamera.d.ts.map +1 -1
  59. package/lib/typescript/src/Shared/Components/IdentityDocumentCamera.flows.d.ts +1 -1
  60. package/lib/typescript/src/Shared/Components/IdentityDocumentCamera.flows.d.ts.map +1 -1
  61. package/lib/typescript/src/Shared/Components/IdentityDocumentCamera.utils.d.ts +5 -0
  62. package/lib/typescript/src/Shared/Components/IdentityDocumentCamera.utils.d.ts.map +1 -1
  63. package/lib/typescript/src/Shared/Components/NavigationManager.d.ts.map +1 -1
  64. package/lib/typescript/src/Shared/EIDReader/aesSecureMessagingWrapper.d.ts +18 -0
  65. package/lib/typescript/src/Shared/EIDReader/aesSecureMessagingWrapper.d.ts.map +1 -0
  66. package/lib/typescript/src/Shared/EIDReader/apduLevelPACECapable.d.ts +23 -0
  67. package/lib/typescript/src/Shared/EIDReader/apduLevelPACECapable.d.ts.map +1 -0
  68. package/lib/typescript/src/Shared/EIDReader/bacKey.d.ts +6 -0
  69. package/lib/typescript/src/Shared/EIDReader/bacKey.d.ts.map +1 -1
  70. package/lib/typescript/src/Shared/EIDReader/eidReader.d.ts.map +1 -1
  71. package/lib/typescript/src/Shared/EIDReader/eidService.d.ts +9 -0
  72. package/lib/typescript/src/Shared/EIDReader/eidService.d.ts.map +1 -1
  73. package/lib/typescript/src/Shared/EIDReader/nfcManagerCardService.d.ts.map +1 -1
  74. package/lib/typescript/src/Shared/EIDReader/paceInfo.d.ts +50 -0
  75. package/lib/typescript/src/Shared/EIDReader/paceInfo.d.ts.map +1 -0
  76. package/lib/typescript/src/Shared/EIDReader/paceKeySpec.d.ts +30 -0
  77. package/lib/typescript/src/Shared/EIDReader/paceKeySpec.d.ts.map +1 -0
  78. package/lib/typescript/src/Shared/EIDReader/protocol/paceAPDUSender.d.ts +17 -0
  79. package/lib/typescript/src/Shared/EIDReader/protocol/paceAPDUSender.d.ts.map +1 -0
  80. package/lib/typescript/src/Shared/EIDReader/protocol/paceProtocol.d.ts +105 -0
  81. package/lib/typescript/src/Shared/EIDReader/protocol/paceProtocol.d.ts.map +1 -0
  82. package/lib/typescript/src/Shared/EIDReader/protocol/paceResult.d.ts +24 -0
  83. package/lib/typescript/src/Shared/EIDReader/protocol/paceResult.d.ts.map +1 -0
  84. package/lib/typescript/src/Shared/EIDReader/secureMessagingWrapper.d.ts +15 -0
  85. package/lib/typescript/src/Shared/EIDReader/secureMessagingWrapper.d.ts.map +1 -1
  86. package/lib/typescript/src/Shared/EIDReader/smartcards/commandAPDU.d.ts.map +1 -1
  87. package/lib/typescript/src/Shared/EIDReader/tlv/tlv.utils.d.ts.map +1 -1
  88. package/lib/typescript/src/Shared/EIDReader/utils/aesCrypto.utils.d.ts +39 -0
  89. package/lib/typescript/src/Shared/EIDReader/utils/aesCrypto.utils.d.ts.map +1 -0
  90. package/lib/typescript/src/Shared/Libs/analytics.utils.d.ts.map +1 -1
  91. package/lib/typescript/src/Shared/Libs/contains.d.ts +0 -7
  92. package/lib/typescript/src/Shared/Libs/contains.d.ts.map +1 -1
  93. package/lib/typescript/src/Shared/Libs/country-display.utils.d.ts +2 -0
  94. package/lib/typescript/src/Shared/Libs/country-display.utils.d.ts.map +1 -0
  95. package/lib/typescript/src/Shared/Libs/demo.utils.d.ts.map +1 -1
  96. package/lib/typescript/src/Shared/Libs/http-client.d.ts +1 -1
  97. package/lib/typescript/src/Shared/Libs/http-client.d.ts.map +1 -1
  98. package/lib/typescript/src/Shared/Libs/mrz.utils.d.ts.map +1 -1
  99. package/lib/typescript/src/Shared/Libs/status-bar.utils.d.ts.map +1 -1
  100. package/lib/typescript/src/Shared/Types/analytics.types.d.ts +2 -0
  101. package/lib/typescript/src/Shared/Types/analytics.types.d.ts.map +1 -1
  102. package/lib/typescript/src/Shared/Types/identificationInfo.d.ts +10 -1
  103. package/lib/typescript/src/Shared/Types/identificationInfo.d.ts.map +1 -1
  104. package/lib/typescript/src/Translation/Resources/en.d.ts +40 -1
  105. package/lib/typescript/src/Translation/Resources/en.d.ts.map +1 -1
  106. package/lib/typescript/src/Translation/Resources/tr.d.ts +40 -1
  107. package/lib/typescript/src/Translation/Resources/tr.d.ts.map +1 -1
  108. package/lib/typescript/src/Trustchex.d.ts.map +1 -1
  109. package/lib/typescript/src/version.d.ts +1 -1
  110. package/package.json +7 -4
  111. package/src/Screens/Debug/NFCScanTestScreen.tsx +692 -0
  112. package/src/Screens/Dynamic/ContractAcceptanceScreen.tsx +1 -4
  113. package/src/Screens/Dynamic/IdentityDocumentEIDScanningScreen.tsx +21 -4
  114. package/src/Screens/Dynamic/LivenessDetectionScreen.tsx +124 -23
  115. package/src/Screens/Dynamic/VerbalConsentScreen.tsx +1401 -0
  116. package/src/Screens/Dynamic/VideoCallScreen.tsx +3 -1
  117. package/src/Screens/Static/ResultScreen.tsx +183 -31
  118. package/src/Screens/Static/VerificationSessionCheckScreen.tsx +9 -0
  119. package/src/Shared/Animations/recording.json +1 -0
  120. package/src/Shared/Components/DebugNavigationPanel.tsx +73 -48
  121. package/src/Shared/Components/EIDScanner.tsx +222 -111
  122. package/src/Shared/Components/IdentityDocumentCamera.flows.ts +7 -4
  123. package/src/Shared/Components/IdentityDocumentCamera.tsx +199 -184
  124. package/src/Shared/Components/IdentityDocumentCamera.utils.ts +13 -4
  125. package/src/Shared/Components/NavigationManager.tsx +27 -18
  126. package/src/Shared/EIDReader/aesSecureMessagingWrapper.ts +69 -0
  127. package/src/Shared/EIDReader/apduLevelPACECapable.ts +34 -0
  128. package/src/Shared/EIDReader/bacKey.ts +24 -8
  129. package/src/Shared/EIDReader/eidReader.ts +398 -12
  130. package/src/Shared/EIDReader/eidService.ts +49 -1
  131. package/src/Shared/EIDReader/nfcManagerCardService.ts +4 -6
  132. package/src/Shared/EIDReader/paceInfo.ts +159 -0
  133. package/src/Shared/EIDReader/paceKeySpec.ts +56 -0
  134. package/src/Shared/EIDReader/protocol/paceAPDUSender.ts +163 -0
  135. package/src/Shared/EIDReader/protocol/paceProtocol.ts +946 -0
  136. package/src/Shared/EIDReader/protocol/paceResult.ts +62 -0
  137. package/src/Shared/EIDReader/secureMessagingWrapper.ts +28 -10
  138. package/src/Shared/EIDReader/smartcards/commandAPDU.ts +2 -1
  139. package/src/Shared/EIDReader/tlv/tlv.helpers.ts +1 -1
  140. package/src/Shared/EIDReader/tlv/tlv.utils.ts +8 -5
  141. package/src/Shared/EIDReader/utils/aesCrypto.utils.ts +217 -0
  142. package/src/Shared/Libs/analytics.utils.ts +4 -0
  143. package/src/Shared/Libs/contains.ts +0 -53
  144. package/src/Shared/Libs/country-display.utils.ts +55 -0
  145. package/src/Shared/Libs/crypto.utils.ts +2 -2
  146. package/src/Shared/Libs/demo.utils.ts +10 -0
  147. package/src/Shared/Libs/http-client.ts +12 -4
  148. package/src/Shared/Libs/mrz.utils.ts +3 -2
  149. package/src/Shared/Libs/status-bar.utils.ts +4 -2
  150. package/src/Shared/Services/VideoSessionService.ts +1 -1
  151. package/src/Shared/Types/analytics.types.ts +2 -0
  152. package/src/Shared/Types/identificationInfo.ts +11 -0
  153. package/src/Translation/Resources/en.ts +63 -3
  154. package/src/Translation/Resources/tr.ts +62 -3
  155. package/src/Trustchex.tsx +53 -17
  156. package/src/version.ts +1 -1
@@ -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
- const contextValue = useMemo(() => ({
60
- isDemoSession,
61
- baseUrl: baseUrl || '',
62
- locale,
63
- branding,
64
- identificationInfo: {
65
- sessionId: sessionId || '',
66
- identificationId: '',
67
- consent: {
68
- contractIds: [],
69
- deviceInfo: ''
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
- locale: propLocale || i18n.language
72
- },
73
- onCompleted,
74
- onError,
75
- setSessionId,
76
- setBaseUrl,
77
- setIsDemoSession
78
- }), [baseUrl, locale, branding, sessionId, propLocale, onCompleted, onError, isDemoSession]);
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
  })
@@ -2,4 +2,4 @@
2
2
 
3
3
  // This file is auto-generated. Do not edit manually.
4
4
  // Version is synced from package.json during build.
5
- export const SDK_VERSION = '1.409.0';
5
+ export const SDK_VERSION = '1.464.0';
@@ -0,0 +1,3 @@
1
+ declare const NFCScanTestScreen: () => import("react/jsx-runtime").JSX.Element;
2
+ export default NFCScanTestScreen;
3
+ //# sourceMappingURL=NFCScanTestScreen.d.ts.map
@@ -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;AAiCF,eAAe,wBAAwB,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,+CA2MtC,CAAC;AAoBF,eAAe,iCAAiC,CAAC"}
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":"AAwFA,QAAA,MAAM,uBAAuB,+CA02B5B,CAAC;AAoFF,eAAe,uBAAuB,CAAC"}
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,3 @@
1
+ declare const VerbalConsentScreen: () => import("react/jsx-runtime").JSX.Element;
2
+ export default VerbalConsentScreen;
3
+ //# sourceMappingURL=VerbalConsentScreen.d.ts.map
@@ -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,4CAiiB3C,CAAC;AAyLF,eAAe,eAAe,CAAC"}
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":"AAmDA,QAAA,MAAM,YAAY,+CAu4BjB,CAAC;AAoIF,eAAe,YAAY,CAAC"}
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,+CA0TnC,CAAC;AAiHF,eAAe,8BAA8B,CAAC"}
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":"AAyCA,QAAA,MAAM,oBAAoB,+CA4bzB,CAAC;AAqNF,eAAe,oBAAoB,CAAC"}
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;AAapD,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,4CAkkBjB,CAAC;AA+HF,eAAe,UAAU,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,4CAq1E7B,CAAC;AAiIF,eAAe,sBAAsB,CAAC"}
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 'I'
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,CAuEnB;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
+ {"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;AAmBf,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,wFAkPtB,CAAC;AAWF,eAAe,iBAAiB,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;IAeb;;;;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
+ {"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":"AAOA,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAG7C,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,CA8FnE,CAAC;AAEF,OAAO,EAAE,SAAS,EAAE,CAAC"}
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":"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"}
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;IAW3B,SAAS,IAAI,OAAO;IAId,QAAQ,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC;IAsB/D,MAAM,IAAI,UAAU;IAIpB,mBAAmB,CAAC,MAAM,EAAE,KAAK,GAAG,OAAO;IAIrC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAIpC"}
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"}