@vppos/react-native-nfc 1.0.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 (223) hide show
  1. package/LICENSE +20 -0
  2. package/NFCSDK.podspec +40 -0
  3. package/android/build.gradle +85 -0
  4. package/android/gradle.properties +5 -0
  5. package/android/src/main/AndroidManifest.xml +31 -0
  6. package/android/src/main/AndroidManifestNew.xml +30 -0
  7. package/android/src/main/java/com/nfcsdk/ChipReader.kt +237 -0
  8. package/android/src/main/java/com/nfcsdk/NFCSDKModule.kt +78 -0
  9. package/android/src/main/java/com/nfcsdk/NFCSDKPackage.kt +17 -0
  10. package/android/src/main/java/com/nfcsdk/NFCScanActivity.kt +299 -0
  11. package/android/src/main/java/com/nfcsdk/utils/Dg13Parser.kt +278 -0
  12. package/android/src/main/java/com/nfcsdk/utils/FaceExtractor.kt +40 -0
  13. package/android/src/main/java/com/nfcsdk/utils/MrzUtils.kt +75 -0
  14. package/android/src/main/res/drawable/bg_nfc_bottom_sheet.xml +13 -0
  15. package/android/src/main/res/drawable/bg_nfc_sheet_handle.xml +9 -0
  16. package/android/src/main/res/layout/activity_nfc.xml +110 -0
  17. package/android/src/main/res/values/styles.xml +10 -0
  18. package/android/src/main/res/xml/nfc_tech_filter.xml +8 -0
  19. package/ios/ChipReader.swift +258 -0
  20. package/ios/NFCSDK-Bridging-Header.h +2 -0
  21. package/ios/NFCSDK.mm +9 -0
  22. package/ios/NFCSDK.swift +112 -0
  23. package/ios/NFCSDKSession.swift +5 -0
  24. package/ios/utils/DG13Parser.swift +302 -0
  25. package/ios/utils/MrzUtils.swift +49 -0
  26. package/lib/module/errors.js +9 -0
  27. package/lib/module/errors.js.map +1 -0
  28. package/lib/module/index.js +118 -0
  29. package/lib/module/index.js.map +1 -0
  30. package/lib/module/package.json +1 -0
  31. package/lib/module/types.js +2 -0
  32. package/lib/module/types.js.map +1 -0
  33. package/lib/typescript/package.json +1 -0
  34. package/lib/typescript/src/errors.d.ts +4 -0
  35. package/lib/typescript/src/errors.d.ts.map +1 -0
  36. package/lib/typescript/src/index.d.ts +80 -0
  37. package/lib/typescript/src/index.d.ts.map +1 -0
  38. package/lib/typescript/src/types.d.ts +45 -0
  39. package/lib/typescript/src/types.d.ts.map +1 -0
  40. package/package.json +155 -0
  41. package/src/errors.ts +6 -0
  42. package/src/index.tsx +141 -0
  43. package/src/types.ts +45 -0
  44. package/vendor/ios-passport-reader/CHANGELOG +362 -0
  45. package/vendor/ios-passport-reader/CODE_OF_CONDUCT.md +77 -0
  46. package/vendor/ios-passport-reader/Examples/Example_CocoaPods/NFCPassportReaderApp/AppDelegate.swift +39 -0
  47. package/vendor/ios-passport-reader/Examples/Example_CocoaPods/NFCPassportReaderApp/Assets.xcassets/AppIcon.appiconset/Contents.json +158 -0
  48. package/vendor/ios-passport-reader/Examples/Example_CocoaPods/NFCPassportReaderApp/Assets.xcassets/AppIcon.appiconset/icon-40.png +0 -0
  49. package/vendor/ios-passport-reader/Examples/Example_CocoaPods/NFCPassportReaderApp/Assets.xcassets/AppIcon.appiconset/icon-40@2x.png +0 -0
  50. package/vendor/ios-passport-reader/Examples/Example_CocoaPods/NFCPassportReaderApp/Assets.xcassets/AppIcon.appiconset/icon-40@3x.png +0 -0
  51. package/vendor/ios-passport-reader/Examples/Example_CocoaPods/NFCPassportReaderApp/Assets.xcassets/AppIcon.appiconset/icon-60@2x.png +0 -0
  52. package/vendor/ios-passport-reader/Examples/Example_CocoaPods/NFCPassportReaderApp/Assets.xcassets/AppIcon.appiconset/icon-60@3x.png +0 -0
  53. package/vendor/ios-passport-reader/Examples/Example_CocoaPods/NFCPassportReaderApp/Assets.xcassets/AppIcon.appiconset/icon-72.png +0 -0
  54. package/vendor/ios-passport-reader/Examples/Example_CocoaPods/NFCPassportReaderApp/Assets.xcassets/AppIcon.appiconset/icon-72@2x.png +0 -0
  55. package/vendor/ios-passport-reader/Examples/Example_CocoaPods/NFCPassportReaderApp/Assets.xcassets/AppIcon.appiconset/icon-76.png +0 -0
  56. package/vendor/ios-passport-reader/Examples/Example_CocoaPods/NFCPassportReaderApp/Assets.xcassets/AppIcon.appiconset/icon-76@2x.png +0 -0
  57. package/vendor/ios-passport-reader/Examples/Example_CocoaPods/NFCPassportReaderApp/Assets.xcassets/AppIcon.appiconset/icon-83.5@2x.png +0 -0
  58. package/vendor/ios-passport-reader/Examples/Example_CocoaPods/NFCPassportReaderApp/Assets.xcassets/AppIcon.appiconset/icon-small-50.png +0 -0
  59. package/vendor/ios-passport-reader/Examples/Example_CocoaPods/NFCPassportReaderApp/Assets.xcassets/AppIcon.appiconset/icon-small-50@2x.png +0 -0
  60. package/vendor/ios-passport-reader/Examples/Example_CocoaPods/NFCPassportReaderApp/Assets.xcassets/AppIcon.appiconset/icon-small.png +0 -0
  61. package/vendor/ios-passport-reader/Examples/Example_CocoaPods/NFCPassportReaderApp/Assets.xcassets/AppIcon.appiconset/icon-small@2x.png +0 -0
  62. package/vendor/ios-passport-reader/Examples/Example_CocoaPods/NFCPassportReaderApp/Assets.xcassets/AppIcon.appiconset/icon-small@3x.png +0 -0
  63. package/vendor/ios-passport-reader/Examples/Example_CocoaPods/NFCPassportReaderApp/Assets.xcassets/AppIcon.appiconset/icon.png +0 -0
  64. package/vendor/ios-passport-reader/Examples/Example_CocoaPods/NFCPassportReaderApp/Assets.xcassets/AppIcon.appiconset/icon@2x.png +0 -0
  65. package/vendor/ios-passport-reader/Examples/Example_CocoaPods/NFCPassportReaderApp/Assets.xcassets/AppIcon.appiconset/ios-marketing.png +0 -0
  66. package/vendor/ios-passport-reader/Examples/Example_CocoaPods/NFCPassportReaderApp/Assets.xcassets/AppIcon.appiconset/notification-icon@2x.png +0 -0
  67. package/vendor/ios-passport-reader/Examples/Example_CocoaPods/NFCPassportReaderApp/Assets.xcassets/AppIcon.appiconset/notification-icon@3x.png +0 -0
  68. package/vendor/ios-passport-reader/Examples/Example_CocoaPods/NFCPassportReaderApp/Assets.xcassets/AppIcon.appiconset/notification-icon~ipad.png +0 -0
  69. package/vendor/ios-passport-reader/Examples/Example_CocoaPods/NFCPassportReaderApp/Assets.xcassets/AppIcon.appiconset/notification-icon~ipad@2x.png +0 -0
  70. package/vendor/ios-passport-reader/Examples/Example_CocoaPods/NFCPassportReaderApp/Assets.xcassets/Contents.json +6 -0
  71. package/vendor/ios-passport-reader/Examples/Example_CocoaPods/NFCPassportReaderApp/Assets.xcassets/background.imageset/Contents.json +21 -0
  72. package/vendor/ios-passport-reader/Examples/Example_CocoaPods/NFCPassportReaderApp/Assets.xcassets/background.imageset/background.png +0 -0
  73. package/vendor/ios-passport-reader/Examples/Example_CocoaPods/NFCPassportReaderApp/Assets.xcassets/head.imageset/Contents.json +21 -0
  74. package/vendor/ios-passport-reader/Examples/Example_CocoaPods/NFCPassportReaderApp/Assets.xcassets/head.imageset/head.png +0 -0
  75. package/vendor/ios-passport-reader/Examples/Example_CocoaPods/NFCPassportReaderApp/Base.lproj/LaunchScreen.storyboard +25 -0
  76. package/vendor/ios-passport-reader/Examples/Example_CocoaPods/NFCPassportReaderApp/Extensions/FileManagerExt.swift +16 -0
  77. package/vendor/ios-passport-reader/Examples/Example_CocoaPods/NFCPassportReaderApp/Extensions/StringExt.swift +40 -0
  78. package/vendor/ios-passport-reader/Examples/Example_CocoaPods/NFCPassportReaderApp/Extensions/UIApplicationExt.swift +21 -0
  79. package/vendor/ios-passport-reader/Examples/Example_CocoaPods/NFCPassportReaderApp/Info.plist +77 -0
  80. package/vendor/ios-passport-reader/Examples/Example_CocoaPods/NFCPassportReaderApp/Model/PassportUtils.swift +76 -0
  81. package/vendor/ios-passport-reader/Examples/Example_CocoaPods/NFCPassportReaderApp/Model/SettingsStore.swift +107 -0
  82. package/vendor/ios-passport-reader/Examples/Example_CocoaPods/NFCPassportReaderApp/NFCPassportReader.entitlements +10 -0
  83. package/vendor/ios-passport-reader/Examples/Example_CocoaPods/NFCPassportReaderApp/SceneDelegate.swift +57 -0
  84. package/vendor/ios-passport-reader/Examples/Example_CocoaPods/NFCPassportReaderApp/Views/DetailsView.swift +197 -0
  85. package/vendor/ios-passport-reader/Examples/Example_CocoaPods/NFCPassportReaderApp/Views/ExportPassportView.swift +164 -0
  86. package/vendor/ios-passport-reader/Examples/Example_CocoaPods/NFCPassportReaderApp/Views/HelperViews/CheckBoxView.swift +48 -0
  87. package/vendor/ios-passport-reader/Examples/Example_CocoaPods/NFCPassportReaderApp/Views/HelperViews/ViewExt.swift +20 -0
  88. package/vendor/ios-passport-reader/Examples/Example_CocoaPods/NFCPassportReaderApp/Views/HelperViews/ViewModifiers.swift +41 -0
  89. package/vendor/ios-passport-reader/Examples/Example_CocoaPods/NFCPassportReaderApp/Views/MRZEntryView.swift +125 -0
  90. package/vendor/ios-passport-reader/Examples/Example_CocoaPods/NFCPassportReaderApp/Views/MRZScannerViewController.swift +90 -0
  91. package/vendor/ios-passport-reader/Examples/Example_CocoaPods/NFCPassportReaderApp/Views/MainView.swift +214 -0
  92. package/vendor/ios-passport-reader/Examples/Example_CocoaPods/NFCPassportReaderApp/Views/PassportSummaryView.swift +111 -0
  93. package/vendor/ios-passport-reader/Examples/Example_CocoaPods/NFCPassportReaderApp/Views/PassportView.swift +73 -0
  94. package/vendor/ios-passport-reader/Examples/Example_CocoaPods/NFCPassportReaderApp/Views/SettingsView.swift +63 -0
  95. package/vendor/ios-passport-reader/Examples/Example_CocoaPods/NFCPassportReaderApp/Views/StoredPassportView.swift +152 -0
  96. package/vendor/ios-passport-reader/Examples/Example_CocoaPods/NFCPassportReaderApp/masterList.pem +32 -0
  97. package/vendor/ios-passport-reader/Examples/Example_CocoaPods/NFCPassportReaderApp/readme.md +10 -0
  98. package/vendor/ios-passport-reader/Examples/Example_CocoaPods/NFCPassportReaderApp.xcodeproj/project.pbxproj +695 -0
  99. package/vendor/ios-passport-reader/Examples/Example_CocoaPods/NFCPassportReaderApp.xcodeproj/xcshareddata/xcschemes/NFCPassportReader.xcscheme +106 -0
  100. package/vendor/ios-passport-reader/Examples/Example_CocoaPods/NFCPassportReaderApp.xcworkspace/contents.xcworkspacedata +10 -0
  101. package/vendor/ios-passport-reader/Examples/Example_CocoaPods/NFCPassportReaderApp.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +8 -0
  102. package/vendor/ios-passport-reader/Examples/Example_CocoaPods/NFCPassportReaderApp.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings +8 -0
  103. package/vendor/ios-passport-reader/Examples/Example_CocoaPods/NFCPassportReaderAppTests/DataGroupParsingTests.swift +189 -0
  104. package/vendor/ios-passport-reader/Examples/Example_CocoaPods/NFCPassportReaderAppTests/Info.plist +22 -0
  105. package/vendor/ios-passport-reader/Examples/Example_CocoaPods/NFCPassportReaderAppTests/NFCPassportReaderTests.swift +260 -0
  106. package/vendor/ios-passport-reader/Examples/Example_CocoaPods/NFCPassportReaderAppTests/PACETests.swift +112 -0
  107. package/vendor/ios-passport-reader/Examples/Example_CocoaPods/Podfile +22 -0
  108. package/vendor/ios-passport-reader/Examples/Example_CocoaPods/Podfile.lock +35 -0
  109. package/vendor/ios-passport-reader/Examples/Example_CocoaPods/README.md +2 -0
  110. package/vendor/ios-passport-reader/Examples/Example_SPM/NFCPassportReaderApp/AppDelegate.swift +39 -0
  111. package/vendor/ios-passport-reader/Examples/Example_SPM/NFCPassportReaderApp/Assets.xcassets/AppIcon.appiconset/Contents.json +158 -0
  112. package/vendor/ios-passport-reader/Examples/Example_SPM/NFCPassportReaderApp/Assets.xcassets/AppIcon.appiconset/icon-40.png +0 -0
  113. package/vendor/ios-passport-reader/Examples/Example_SPM/NFCPassportReaderApp/Assets.xcassets/AppIcon.appiconset/icon-40@2x.png +0 -0
  114. package/vendor/ios-passport-reader/Examples/Example_SPM/NFCPassportReaderApp/Assets.xcassets/AppIcon.appiconset/icon-40@3x.png +0 -0
  115. package/vendor/ios-passport-reader/Examples/Example_SPM/NFCPassportReaderApp/Assets.xcassets/AppIcon.appiconset/icon-60@2x.png +0 -0
  116. package/vendor/ios-passport-reader/Examples/Example_SPM/NFCPassportReaderApp/Assets.xcassets/AppIcon.appiconset/icon-60@3x.png +0 -0
  117. package/vendor/ios-passport-reader/Examples/Example_SPM/NFCPassportReaderApp/Assets.xcassets/AppIcon.appiconset/icon-72.png +0 -0
  118. package/vendor/ios-passport-reader/Examples/Example_SPM/NFCPassportReaderApp/Assets.xcassets/AppIcon.appiconset/icon-72@2x.png +0 -0
  119. package/vendor/ios-passport-reader/Examples/Example_SPM/NFCPassportReaderApp/Assets.xcassets/AppIcon.appiconset/icon-76.png +0 -0
  120. package/vendor/ios-passport-reader/Examples/Example_SPM/NFCPassportReaderApp/Assets.xcassets/AppIcon.appiconset/icon-76@2x.png +0 -0
  121. package/vendor/ios-passport-reader/Examples/Example_SPM/NFCPassportReaderApp/Assets.xcassets/AppIcon.appiconset/icon-83.5@2x.png +0 -0
  122. package/vendor/ios-passport-reader/Examples/Example_SPM/NFCPassportReaderApp/Assets.xcassets/AppIcon.appiconset/icon-small-50.png +0 -0
  123. package/vendor/ios-passport-reader/Examples/Example_SPM/NFCPassportReaderApp/Assets.xcassets/AppIcon.appiconset/icon-small-50@2x.png +0 -0
  124. package/vendor/ios-passport-reader/Examples/Example_SPM/NFCPassportReaderApp/Assets.xcassets/AppIcon.appiconset/icon-small.png +0 -0
  125. package/vendor/ios-passport-reader/Examples/Example_SPM/NFCPassportReaderApp/Assets.xcassets/AppIcon.appiconset/icon-small@2x.png +0 -0
  126. package/vendor/ios-passport-reader/Examples/Example_SPM/NFCPassportReaderApp/Assets.xcassets/AppIcon.appiconset/icon-small@3x.png +0 -0
  127. package/vendor/ios-passport-reader/Examples/Example_SPM/NFCPassportReaderApp/Assets.xcassets/AppIcon.appiconset/icon.png +0 -0
  128. package/vendor/ios-passport-reader/Examples/Example_SPM/NFCPassportReaderApp/Assets.xcassets/AppIcon.appiconset/icon@2x.png +0 -0
  129. package/vendor/ios-passport-reader/Examples/Example_SPM/NFCPassportReaderApp/Assets.xcassets/AppIcon.appiconset/ios-marketing.png +0 -0
  130. package/vendor/ios-passport-reader/Examples/Example_SPM/NFCPassportReaderApp/Assets.xcassets/AppIcon.appiconset/notification-icon@2x.png +0 -0
  131. package/vendor/ios-passport-reader/Examples/Example_SPM/NFCPassportReaderApp/Assets.xcassets/AppIcon.appiconset/notification-icon@3x.png +0 -0
  132. package/vendor/ios-passport-reader/Examples/Example_SPM/NFCPassportReaderApp/Assets.xcassets/AppIcon.appiconset/notification-icon~ipad.png +0 -0
  133. package/vendor/ios-passport-reader/Examples/Example_SPM/NFCPassportReaderApp/Assets.xcassets/AppIcon.appiconset/notification-icon~ipad@2x.png +0 -0
  134. package/vendor/ios-passport-reader/Examples/Example_SPM/NFCPassportReaderApp/Assets.xcassets/Contents.json +6 -0
  135. package/vendor/ios-passport-reader/Examples/Example_SPM/NFCPassportReaderApp/Assets.xcassets/background.imageset/Contents.json +21 -0
  136. package/vendor/ios-passport-reader/Examples/Example_SPM/NFCPassportReaderApp/Assets.xcassets/background.imageset/background.png +0 -0
  137. package/vendor/ios-passport-reader/Examples/Example_SPM/NFCPassportReaderApp/Assets.xcassets/head.imageset/Contents.json +21 -0
  138. package/vendor/ios-passport-reader/Examples/Example_SPM/NFCPassportReaderApp/Assets.xcassets/head.imageset/head.png +0 -0
  139. package/vendor/ios-passport-reader/Examples/Example_SPM/NFCPassportReaderApp/Base.lproj/LaunchScreen.storyboard +25 -0
  140. package/vendor/ios-passport-reader/Examples/Example_SPM/NFCPassportReaderApp/Extensions/FileManagerExt.swift +16 -0
  141. package/vendor/ios-passport-reader/Examples/Example_SPM/NFCPassportReaderApp/Extensions/StringExt.swift +40 -0
  142. package/vendor/ios-passport-reader/Examples/Example_SPM/NFCPassportReaderApp/Extensions/UIApplicationExt.swift +21 -0
  143. package/vendor/ios-passport-reader/Examples/Example_SPM/NFCPassportReaderApp/Info.plist +79 -0
  144. package/vendor/ios-passport-reader/Examples/Example_SPM/NFCPassportReaderApp/Model/PassportUtils.swift +99 -0
  145. package/vendor/ios-passport-reader/Examples/Example_SPM/NFCPassportReaderApp/Model/SettingsStore.swift +98 -0
  146. package/vendor/ios-passport-reader/Examples/Example_SPM/NFCPassportReaderApp/Model/SettingsStoreCAN.swift +75 -0
  147. package/vendor/ios-passport-reader/Examples/Example_SPM/NFCPassportReaderApp/MrzScanner/LICENSE +21 -0
  148. package/vendor/ios-passport-reader/Examples/Example_SPM/NFCPassportReaderApp/MrzScanner/PreviewView.swift +34 -0
  149. package/vendor/ios-passport-reader/Examples/Example_SPM/NFCPassportReaderApp/MrzScanner/StringUtils.swift +160 -0
  150. package/vendor/ios-passport-reader/Examples/Example_SPM/NFCPassportReaderApp/MrzScanner/ViewController.swift +320 -0
  151. package/vendor/ios-passport-reader/Examples/Example_SPM/NFCPassportReaderApp/MrzScanner/VisionViewController.swift +163 -0
  152. package/vendor/ios-passport-reader/Examples/Example_SPM/NFCPassportReaderApp/NFCPassportReader.entitlements +10 -0
  153. package/vendor/ios-passport-reader/Examples/Example_SPM/NFCPassportReaderApp/SceneDelegate.swift +58 -0
  154. package/vendor/ios-passport-reader/Examples/Example_SPM/NFCPassportReaderApp/Views/CANViews/CanKeyView.swift +251 -0
  155. package/vendor/ios-passport-reader/Examples/Example_SPM/NFCPassportReaderApp/Views/CANViews/MRZEntryViewCanKey.swift +65 -0
  156. package/vendor/ios-passport-reader/Examples/Example_SPM/NFCPassportReaderApp/Views/CANViews/PassportViewCAN.swift +73 -0
  157. package/vendor/ios-passport-reader/Examples/Example_SPM/NFCPassportReaderApp/Views/DetailsView.swift +193 -0
  158. package/vendor/ios-passport-reader/Examples/Example_SPM/NFCPassportReaderApp/Views/ExportPassportView.swift +164 -0
  159. package/vendor/ios-passport-reader/Examples/Example_SPM/NFCPassportReaderApp/Views/HelperViews/CheckBoxView.swift +48 -0
  160. package/vendor/ios-passport-reader/Examples/Example_SPM/NFCPassportReaderApp/Views/HelperViews/ViewExt.swift +20 -0
  161. package/vendor/ios-passport-reader/Examples/Example_SPM/NFCPassportReaderApp/Views/HelperViews/ViewModifiers.swift +41 -0
  162. package/vendor/ios-passport-reader/Examples/Example_SPM/NFCPassportReaderApp/Views/MRZEntryView.swift +125 -0
  163. package/vendor/ios-passport-reader/Examples/Example_SPM/NFCPassportReaderApp/Views/MRZScannerViewController.swift +90 -0
  164. package/vendor/ios-passport-reader/Examples/Example_SPM/NFCPassportReaderApp/Views/MainView.swift +264 -0
  165. package/vendor/ios-passport-reader/Examples/Example_SPM/NFCPassportReaderApp/Views/PassportSummaryView.swift +111 -0
  166. package/vendor/ios-passport-reader/Examples/Example_SPM/NFCPassportReaderApp/Views/PassportView.swift +73 -0
  167. package/vendor/ios-passport-reader/Examples/Example_SPM/NFCPassportReaderApp/Views/SettingsView.swift +47 -0
  168. package/vendor/ios-passport-reader/Examples/Example_SPM/NFCPassportReaderApp/Views/StoredPassportView.swift +149 -0
  169. package/vendor/ios-passport-reader/Examples/Example_SPM/NFCPassportReaderApp/masterList.pem +32 -0
  170. package/vendor/ios-passport-reader/Examples/Example_SPM/NFCPassportReaderApp/readme.md +10 -0
  171. package/vendor/ios-passport-reader/Examples/Example_SPM/NFCPassportReaderApp.xcodeproj/project.pbxproj +683 -0
  172. package/vendor/ios-passport-reader/Examples/Example_SPM/NFCPassportReaderApp.xcodeproj/project.xcworkspace/contents.xcworkspacedata +7 -0
  173. package/vendor/ios-passport-reader/Examples/Example_SPM/NFCPassportReaderApp.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved +25 -0
  174. package/vendor/ios-passport-reader/Examples/Example_SPM/NFCPassportReaderApp.xcodeproj/xcshareddata/xcschemes/NFCPassportReader.xcscheme +106 -0
  175. package/vendor/ios-passport-reader/Examples/Example_SPM/NFCPassportReaderAppTests/DataGroupParsingTests.swift +190 -0
  176. package/vendor/ios-passport-reader/Examples/Example_SPM/NFCPassportReaderAppTests/Info.plist +22 -0
  177. package/vendor/ios-passport-reader/Examples/Example_SPM/NFCPassportReaderAppTests/NFCPassportReaderTests.swift +260 -0
  178. package/vendor/ios-passport-reader/Examples/Example_SPM/NFCPassportReaderAppTests/PACETests.swift +112 -0
  179. package/vendor/ios-passport-reader/LICENSE +21 -0
  180. package/vendor/ios-passport-reader/NFCPassportReader.podspec +27 -0
  181. package/vendor/ios-passport-reader/Package.swift +29 -0
  182. package/vendor/ios-passport-reader/README.md +141 -0
  183. package/vendor/ios-passport-reader/Sources/NFCPassportReader/AES_3DES_DESEncryption.swift +377 -0
  184. package/vendor/ios-passport-reader/Sources/NFCPassportReader/BACHandler.swift +194 -0
  185. package/vendor/ios-passport-reader/Sources/NFCPassportReader/ChipAuthenticationHandler.swift +224 -0
  186. package/vendor/ios-passport-reader/Sources/NFCPassportReader/DataGroupHash.swift +16 -0
  187. package/vendor/ios-passport-reader/Sources/NFCPassportReader/DataGroupParser.swift +36 -0
  188. package/vendor/ios-passport-reader/Sources/NFCPassportReader/DataGroups/ActiveAuthenticationInfo.swift +69 -0
  189. package/vendor/ios-passport-reader/Sources/NFCPassportReader/DataGroups/COM.swift +61 -0
  190. package/vendor/ios-passport-reader/Sources/NFCPassportReader/DataGroups/CardAccess.swift +38 -0
  191. package/vendor/ios-passport-reader/Sources/NFCPassportReader/DataGroups/ChipAuthenticationInfo.swift +135 -0
  192. package/vendor/ios-passport-reader/Sources/NFCPassportReader/DataGroups/ChipAuthenticationPublicKeyInfo.swift +53 -0
  193. package/vendor/ios-passport-reader/Sources/NFCPassportReader/DataGroups/DataGroup.swift +103 -0
  194. package/vendor/ios-passport-reader/Sources/NFCPassportReader/DataGroups/DataGroup1.swift +111 -0
  195. package/vendor/ios-passport-reader/Sources/NFCPassportReader/DataGroups/DataGroup11.swift +66 -0
  196. package/vendor/ios-passport-reader/Sources/NFCPassportReader/DataGroups/DataGroup12.swift +75 -0
  197. package/vendor/ios-passport-reader/Sources/NFCPassportReader/DataGroups/DataGroup14.swift +37 -0
  198. package/vendor/ios-passport-reader/Sources/NFCPassportReader/DataGroups/DataGroup15.swift +46 -0
  199. package/vendor/ios-passport-reader/Sources/NFCPassportReader/DataGroups/DataGroup2.swift +163 -0
  200. package/vendor/ios-passport-reader/Sources/NFCPassportReader/DataGroups/DataGroup7.swift +46 -0
  201. package/vendor/ios-passport-reader/Sources/NFCPassportReader/DataGroups/DataGroupId.swift +105 -0
  202. package/vendor/ios-passport-reader/Sources/NFCPassportReader/DataGroups/NotImplementedDG.swift +16 -0
  203. package/vendor/ios-passport-reader/Sources/NFCPassportReader/DataGroups/PACEInfo.swift +415 -0
  204. package/vendor/ios-passport-reader/Sources/NFCPassportReader/DataGroups/SOD.swift +240 -0
  205. package/vendor/ios-passport-reader/Sources/NFCPassportReader/DataGroups/SecurityInfo.swift +136 -0
  206. package/vendor/ios-passport-reader/Sources/NFCPassportReader/Errors.swift +148 -0
  207. package/vendor/ios-passport-reader/Sources/NFCPassportReader/Logging.swift +32 -0
  208. package/vendor/ios-passport-reader/Sources/NFCPassportReader/Models/FaceImageInfo.swift +161 -0
  209. package/vendor/ios-passport-reader/Sources/NFCPassportReader/NFCPassportModel.swift +540 -0
  210. package/vendor/ios-passport-reader/Sources/NFCPassportReader/NFCViewDisplayMessage.swift +60 -0
  211. package/vendor/ios-passport-reader/Sources/NFCPassportReader/OpenSSLUtils.swift +705 -0
  212. package/vendor/ios-passport-reader/Sources/NFCPassportReader/PACEHandler.swift +627 -0
  213. package/vendor/ios-passport-reader/Sources/NFCPassportReader/PassportReader.swift +387 -0
  214. package/vendor/ios-passport-reader/Sources/NFCPassportReader/Resources/PrivacyInfo.xcprivacy +14 -0
  215. package/vendor/ios-passport-reader/Sources/NFCPassportReader/ResponseAPDU.swift +25 -0
  216. package/vendor/ios-passport-reader/Sources/NFCPassportReader/SecureMessaging.swift +301 -0
  217. package/vendor/ios-passport-reader/Sources/NFCPassportReader/SecureMessagingSessionKeyGenerator.swift +156 -0
  218. package/vendor/ios-passport-reader/Sources/NFCPassportReader/SimpleASN1DumpParser.swift +173 -0
  219. package/vendor/ios-passport-reader/Sources/NFCPassportReader/TagReader.swift +374 -0
  220. package/vendor/ios-passport-reader/Sources/NFCPassportReader/Utils.swift +430 -0
  221. package/vendor/ios-passport-reader/Sources/NFCPassportReader/X509Wrapper.swift +168 -0
  222. package/vendor/ios-passport-reader/scripts/README.md +45 -0
  223. package/vendor/ios-passport-reader/scripts/extract.py +197 -0
@@ -0,0 +1,164 @@
1
+ //
2
+ // ExportPassportView.swift
3
+ // NFCPassportReaderApp
4
+ //
5
+ // Created by Andy Qua on 11/02/2021.
6
+ // Copyright © 2021 Andy Qua. All rights reserved.
7
+ //
8
+
9
+ import SwiftUI
10
+ import NFCPassportReader
11
+
12
+ struct MultipleSelectionRow: View {
13
+ var title: String
14
+ var isSelected: Bool
15
+ var action: () -> Void
16
+
17
+ var body: some View {
18
+ Button(action: self.action) {
19
+ HStack {
20
+ Text(self.title)
21
+ if self.isSelected {
22
+ Spacer()
23
+ Image(systemName: "checkmark")
24
+ }
25
+ }
26
+ }
27
+ .foregroundColor(.primary)
28
+ }
29
+ }
30
+
31
+ struct ExportPassportView: View {
32
+ @EnvironmentObject var settings: SettingsStore
33
+
34
+ @State var items: [DataGroupId] = []
35
+ @State var selections: [DataGroupId] = []
36
+ @State var isAASupported : Bool = false
37
+ @State var includeAA : Bool = false
38
+
39
+ var body: some View {
40
+ Form {
41
+ Section(header: Text("Select Passport items to export"), footer:Text("* contains personal information")) {
42
+ List {
43
+ ForEach(items, id: \.self) { item in
44
+ MultipleSelectionRow(title: dgToText(item), isSelected: self.selections.contains(item)) {
45
+ if self.selections.contains(item) {
46
+ self.selections.removeAll(where: { $0 == item })
47
+ }
48
+ else {
49
+ self.selections.append(item)
50
+ }
51
+ }
52
+ }
53
+ }
54
+ if isAASupported {
55
+ Toggle("Include Active Authentication Challenge/Response?", isOn: $includeAA)
56
+ .foregroundColor(.primary)
57
+ }
58
+ }
59
+ Button(action: {
60
+ sharePassport()
61
+ }, label: {
62
+ Text("Export selected passport details")
63
+ .font(.title3)
64
+ })
65
+ .foregroundColor(.primary)
66
+ }
67
+ .navigationTitle("Export passport")
68
+ .onAppear() {
69
+ if let passport = settings.passport {
70
+ items = [.SOD, .COM]
71
+ items.append(contentsOf: DataGroupId.allCases.filter { passport.dataGroupsAvailable.contains($0) } )
72
+
73
+ // Default select only the DGs that contain no personal info.
74
+ selections = [.SOD, .COM, .DG14, .DG15]
75
+ isAASupported = passport.activeAuthenticationSupported
76
+ if isAASupported {
77
+ includeAA = true
78
+ }
79
+ }
80
+ }
81
+ }
82
+ }
83
+
84
+ extension ExportPassportView {
85
+ func sharePassport() {
86
+ do {
87
+ let dict = settings.passport!.dumpPassportData( selectedDataGroups:selections,includeActiveAuthenticationData: includeAA)
88
+ let data = try JSONSerialization.data(withJSONObject: dict, options: .prettyPrinted)
89
+
90
+ let temporaryURL = URL(fileURLWithPath: NSTemporaryDirectory() + "passport.json")
91
+ try data.write(to: temporaryURL)
92
+
93
+ let av = UIActivityViewController(activityItems: [temporaryURL], applicationActivities: nil)
94
+
95
+ let keyWindow = UIApplication.shared.connectedScenes
96
+ .filter({$0.activationState == .foregroundActive})
97
+ .map({$0 as? UIWindowScene})
98
+ .compactMap({$0})
99
+ .first?.windows
100
+ .filter({$0.isKeyWindow}).first
101
+
102
+ keyWindow?.rootViewController?.present(av, animated: true, completion: nil)
103
+ } catch {
104
+ print( "ERROR - \(error)" )
105
+ }
106
+ }
107
+
108
+ func dgToText( _ dg : DataGroupId ) -> String {
109
+ switch ( dg ) {
110
+ case .SOD:
111
+ return "SOD - Document Security Object"
112
+ case .COM:
113
+ return "COM - Header and DG Presence"
114
+ case .DG1:
115
+ return "DG1* - MRZ Info"
116
+ case .DG2:
117
+ return "DG2* - Face image"
118
+ case .DG3:
119
+ return "DG3* - Fingerprints"
120
+ case .DG4:
121
+ return "DG4* - Iris"
122
+ case .DG5:
123
+ return "DG5* - Displayed portrait"
124
+ case .DG6:
125
+ return "DG6 - Reserved"
126
+ case .DG7:
127
+ return "DG7* - Signature"
128
+ case .DG8:
129
+ return "DG8* - Data features"
130
+ case .DG9:
131
+ return "DG9* - Structure features"
132
+ case .DG10:
133
+ return "DG10* - Substance features"
134
+ case .DG11:
135
+ return "DG11* - Additional personal info"
136
+ case .DG12:
137
+ return "DG12* - Additional document info"
138
+ case .DG13:
139
+ return "DG13* - Optional details"
140
+ case .DG14:
141
+ return "DG14 - Security options"
142
+ case .DG15:
143
+ return "DG15 - Active Auth PubKey"
144
+ case .DG16:
145
+ return "DG16 - Person(s) to notify"
146
+ default:
147
+ return "Unknown"
148
+ }
149
+ }
150
+
151
+ }
152
+
153
+
154
+ struct ExportPassportView_Previews: PreviewProvider {
155
+ static var previews: some View {
156
+ let settings = SettingsStore()
157
+ settings.passport = NFCPassportModel()
158
+
159
+ return NavigationView {
160
+ ExportPassportView()
161
+ }
162
+ .environmentObject(settings)
163
+ }
164
+ }
@@ -0,0 +1,48 @@
1
+ //
2
+ // CheckBoxView.swift
3
+ // NFCPassportReaderApp
4
+ //
5
+ // Created by Andy Qua on 10/02/2021.
6
+ // Copyright © 2021 Andy Qua. All rights reserved.
7
+ //
8
+
9
+ import SwiftUI
10
+
11
+ struct CheckBoxButtonStyle: ButtonStyle {
12
+
13
+ func makeBody(configuration: Self.Configuration) -> some View {
14
+ configuration.label
15
+ .foregroundColor(.secondary)
16
+ }
17
+ }
18
+
19
+
20
+ struct CheckBoxView: View {
21
+ @Binding var checked: Bool
22
+ var text : String
23
+
24
+ var body: some View {
25
+ HStack() {
26
+
27
+ Button(action: {
28
+ withAnimation {
29
+ self.checked.toggle()
30
+ }
31
+ }) {
32
+ HStack(alignment: .center, spacing: 10) {
33
+ Text(text)
34
+ Image(systemName:self.checked ? "checkmark.square.fill" : "square")
35
+ }
36
+ }
37
+ .frame(height: 44, alignment: .center)
38
+ .padding(.trailing)
39
+ .buttonStyle(CheckBoxButtonStyle())
40
+ }
41
+ }
42
+ }
43
+
44
+ struct CheckBoxView_Previews: PreviewProvider {
45
+ static var previews: some View {
46
+ CheckBoxView( checked: .constant(true), text:"Are you on?")
47
+ }
48
+ }
@@ -0,0 +1,20 @@
1
+ //
2
+ // ViewExt.swift
3
+ // NFCPassportReaderApp
4
+ //
5
+ // Created by Andy Qua on 11/02/2021.
6
+ // Copyright © 2021 Andy Qua. All rights reserved.
7
+ //
8
+
9
+ import SwiftUI
10
+ import UIKit
11
+
12
+ extension View {
13
+ func hideKeyboard() {
14
+ UIApplication.shared.sendAction(#selector(UIResponder.resignFirstResponder), to: nil, from: nil, for: nil)
15
+ }
16
+
17
+ func visibility(hidden: Binding<Bool>) -> some View {
18
+ modifier(VisibilityStyle(hidden: hidden))
19
+ }
20
+ }
@@ -0,0 +1,41 @@
1
+ //
2
+ // ViewModifiers.swift
3
+ // NFCPassportReaderApp
4
+ //
5
+ // Created by Andy Qua on 10/02/2021.
6
+ // Copyright © 2021 Andy Qua. All rights reserved.
7
+ //
8
+
9
+ import SwiftUI
10
+
11
+ struct ClearButton: ViewModifier {
12
+ @Binding var text: String
13
+
14
+ public func body(content: Content) -> some View {
15
+ HStack {
16
+ content
17
+ if !text.isEmpty {
18
+ Button(action: { self.text = "" },
19
+ label: {
20
+ Image(systemName: "delete.left")
21
+ .foregroundColor(Color(UIColor.opaqueSeparator))
22
+ }
23
+ )
24
+ }
25
+ }
26
+ }
27
+ }
28
+
29
+ struct VisibilityStyle: ViewModifier {
30
+
31
+ @Binding var hidden: Bool
32
+ func body(content: Content) -> some View {
33
+ Group {
34
+ if hidden {
35
+ content.hidden()
36
+ } else {
37
+ content
38
+ }
39
+ }
40
+ }
41
+ }
@@ -0,0 +1,125 @@
1
+ //
2
+ // MRZEntryView.swift
3
+ // NFCPassportReaderApp
4
+ //
5
+ // Created by Andy Qua on 10/02/2021.
6
+ // Copyright © 2021 Andy Qua. All rights reserved.
7
+ //
8
+
9
+ import SwiftUI
10
+
11
+ // This will be removed once DatePicker inline works correctly
12
+ struct DateView : View {
13
+ @Binding var date : Date
14
+ var title : String
15
+
16
+ var body : some View {
17
+ VStack {
18
+ Text(title)
19
+ .font(.largeTitle)
20
+ Spacer()
21
+ DatePicker("Date of birth", selection:$date, displayedComponents: .date)
22
+ .environment(\.timeZone, TimeZone(secondsFromGMT: 0)!)
23
+ .datePickerStyle(WheelDatePickerStyle())
24
+ .labelsHidden()
25
+ Spacer()
26
+ }
27
+ }
28
+ }
29
+
30
+ // This should be a nice simple inline DatePicker here
31
+ // BUT there are bugs when you select dates it changes the date format
32
+ // from DD MMM YYYY to DD/MM/YYYY!)
33
+ // Will update when/if this gets fixed!
34
+ struct MRZEntryView : View {
35
+ @EnvironmentObject var settings: SettingsStore
36
+
37
+ // These will be removed once DatePicker inline works correctly
38
+ @State private var editDOB = false
39
+ @State private var editDOE = false
40
+ @State private var editDateTitle : String = ""
41
+
42
+ var body : some View {
43
+ let passportNrBinding = Binding<String>(get: {
44
+ settings.passportNumber
45
+ }, set: {
46
+ settings.passportNumber = $0.uppercased()
47
+ })
48
+ VStack {
49
+ NavigationLink( destination: DateView(date:$settings.dateOfBirth, title:editDateTitle), isActive: $editDOB) { Text("") }
50
+ NavigationLink( destination: DateView(date:$settings.dateOfExpiry, title:editDateTitle), isActive: $editDOE) { Text("") }
51
+
52
+ TextField("Passport number", text: passportNrBinding)
53
+ .textCase(.uppercase)
54
+ .modifier(ClearButton(text: passportNrBinding))
55
+ .textContentType(.name)
56
+ .foregroundColor(Color.primary)
57
+ .padding([.leading, .trailing])
58
+ .ignoresSafeArea(.keyboard, edges: .all)
59
+
60
+ Divider()
61
+
62
+ // Replace with DatePicker once it works correctly
63
+ HStack {
64
+ VStack {
65
+ Text( "Date of birth" )
66
+ Button(formatDate(settings.dateOfBirth)) {
67
+ editDateTitle = "Select date of birth"
68
+ editDOB = true
69
+ }
70
+ .padding(.horizontal, 15)
71
+ .padding(.vertical, 8)
72
+ .background(Color.black.opacity(0.07))
73
+ .cornerRadius(8)
74
+ }
75
+ Spacer()
76
+ VStack {
77
+ Text( "Passport expiry date" )
78
+ Button(formatDate(settings.dateOfExpiry)) {
79
+ editDateTitle = "Select passport expiry date"
80
+ editDOE = true
81
+ }
82
+ .padding(.horizontal, 15)
83
+ .padding(.vertical, 8)
84
+ .background(Color.black.opacity(0.07))
85
+ .cornerRadius(8)
86
+ }
87
+ }
88
+ .padding([.leading, .trailing])
89
+
90
+ Divider()
91
+ }
92
+ .ignoresSafeArea(.keyboard, edges: .bottom)
93
+ }
94
+ }
95
+
96
+ // This will be removed once DatePicker inline works correctly
97
+ extension MRZEntryView {
98
+
99
+ func formatDate( _ date : Date ) -> String {
100
+ let df = DateFormatter()
101
+ df.timeZone = TimeZone.init(secondsFromGMT: 0)
102
+ df.dateFormat = "dd MMM yyyy"
103
+ let dateStr = df.string(from:date)
104
+ return dateStr
105
+ }
106
+ }
107
+
108
+ #if DEBUG
109
+ struct MRZEntryView_Previews : PreviewProvider {
110
+
111
+ static var previews: some View {
112
+ let settings = SettingsStore()
113
+
114
+ return
115
+ Group {
116
+ NavigationView {
117
+ MRZEntryView()
118
+ }
119
+ .environmentObject(settings)
120
+ .environment( \.colorScheme, .light)
121
+ }
122
+ }
123
+ }
124
+ #endif
125
+
@@ -0,0 +1,90 @@
1
+ //
2
+ // MRZScannerViewController.swift
3
+ // NFCPassportReaderApp
4
+ //
5
+ // Created by Andy Qua on 17/02/2021.
6
+ // Copyright © 2021 Andy Qua. All rights reserved.
7
+ //
8
+
9
+ import UIKit
10
+ import SwiftUI
11
+ import QKMRZScanner
12
+
13
+ // Wraps the QKMRZScanner component in a simple UIView that allows a scan of the MRZ area from a Passport/ID Card
14
+ struct MRZScanner: UIViewControllerRepresentable {
15
+ let completionHandler: (String,Date,Date) -> Void
16
+
17
+ func makeUIViewController(context: Context) -> MRZScannerViewController {
18
+ let vc = MRZScannerViewController()
19
+ vc.mrzScannerView.delegate = context.coordinator
20
+ return vc
21
+ }
22
+
23
+ func updateUIViewController(_ uiViewController: MRZScannerViewController, context: Context) {
24
+
25
+ }
26
+
27
+ func makeCoordinator() -> Coordinator {
28
+ return Coordinator(completionHandler: completionHandler)
29
+ }
30
+
31
+ final class Coordinator: NSObject, QKMRZScannerViewDelegate {
32
+ let completionHandler: (String,Date,Date) -> Void
33
+
34
+ init(completionHandler: @escaping (String,Date,Date) -> Void) {
35
+ self.completionHandler = completionHandler
36
+ }
37
+
38
+ func mrzScannerView(_ mrzScannerView: QKMRZScannerView, didFind scanResult: QKMRZScanResult) {
39
+ print(scanResult)
40
+ if let dob = scanResult.birthDate, let doe = scanResult.expiryDate {
41
+ completionHandler(scanResult.documentNumber, dob, doe)
42
+ }
43
+ }
44
+ }
45
+ }
46
+
47
+ // MARK: UIViewController implementation
48
+ class MRZScannerViewController: UIViewController {
49
+ let mrzScannerView = QKMRZScannerView()
50
+
51
+ override func viewDidLoad() {
52
+ super.viewDidLoad()
53
+ self.title = "Scan Passport"
54
+ self.navigationController?.title = "Scan passport"
55
+
56
+
57
+ let lbl = UILabel()
58
+ lbl.text = "Please scan the Machine Readable Zone."
59
+ lbl.numberOfLines = 0
60
+ self.view.addSubview(mrzScannerView)
61
+ self.view.addSubview(lbl)
62
+
63
+ mrzScannerView.translatesAutoresizingMaskIntoConstraints = false
64
+ mrzScannerView.topAnchor.constraint(equalTo: view.topAnchor, constant:50).isActive = true
65
+ mrzScannerView.centerXAnchor.constraint(equalTo: view.centerXAnchor).isActive = true
66
+ mrzScannerView.widthAnchor.constraint(equalToConstant: view.bounds.width).isActive = true
67
+ mrzScannerView.heightAnchor.constraint(equalToConstant: view.bounds.width).isActive = true
68
+
69
+ lbl.translatesAutoresizingMaskIntoConstraints = false
70
+ lbl.leadingAnchor.constraint(equalTo: mrzScannerView.leadingAnchor, constant: 10).isActive = true
71
+ lbl.topAnchor.constraint(equalTo: mrzScannerView.bottomAnchor, constant: 10).isActive = true
72
+ lbl.trailingAnchor.constraint(equalTo: mrzScannerView.trailingAnchor, constant: 10).isActive = true
73
+ }
74
+ override func viewWillAppear(_ animated: Bool) {
75
+ super.viewWillAppear(animated)
76
+ mrzScannerView.startScanning()
77
+ }
78
+
79
+ override func viewWillDisappear(_ animated: Bool) {
80
+ super.viewWillDisappear(animated)
81
+ mrzScannerView.stopScanning()
82
+ }
83
+ }
84
+
85
+ extension MRZScannerViewController : QKMRZScannerViewDelegate {
86
+ func mrzScannerView(_ mrzScannerView: QKMRZScannerView, didFind scanResult: QKMRZScanResult) {
87
+ print(scanResult)
88
+ }
89
+ }
90
+