@animo-id/expo-mdoc-data-transfer 0.2.0-alpha.2 → 0.2.0-alpha.4

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 (198) hide show
  1. package/build/MdocDataTransfer.js +1 -1
  2. package/build/MdocDataTransfer.js.map +1 -1
  3. package/build/NativeMdocDataTransfer.d.ts +1 -1
  4. package/build/NativeMdocDataTransfer.d.ts.map +1 -1
  5. package/build/NativeMdocDataTransfer.js.map +1 -1
  6. package/expo-module.config.json +1 -1
  7. package/{MdocDataTransfer.podspec → ios/MdocDataTransfer.podspec} +2 -3
  8. package/ios/MdocDataTransferModule.swift +29 -10
  9. package/ios/eudi/BLETransfer/MdocGATTServer.swift +36 -22
  10. package/ios/eudi/BLETransfer/MdocOfflineDelegate.swift +1 -4
  11. package/ios/eudi/MdocHelpers.swift +18 -0
  12. package/package.json +1 -1
  13. package/src/MdocDataTransfer.ts +3 -3
  14. package/src/NativeMdocDataTransfer.ts +1 -1
  15. package/android/build/.transforms/1b8378295914042bd56f454fccadf450/results.bin +0 -1
  16. package/android/build/.transforms/1b8378295914042bd56f454fccadf450/transformed/classes/classes_dex/classes.dex +0 -0
  17. package/android/build/.transforms/b1c7825c26ef74820bf1a2f9b0863b9c/results.bin +0 -1
  18. package/android/build/.transforms/b1c7825c26ef74820bf1a2f9b0863b9c/transformed/classes/classes_dex/classes.dex +0 -0
  19. package/android/build/.transforms/bd47d41628a1234539d52fed18dc00d8/results.bin +0 -1
  20. package/android/build/.transforms/bd47d41628a1234539d52fed18dc00d8/transformed/classes/classes_dex/classes.dex +0 -0
  21. package/android/build/.transforms/ca70f32e4c31dcc1e27ce5e573009a23/results.bin +0 -1
  22. package/android/build/.transforms/ca70f32e4c31dcc1e27ce5e573009a23/transformed/classes/classes_dex/classes.dex +0 -0
  23. package/android/build/generated/source/buildConfig/debug/id/animo/mdoc/datatransfer/BuildConfig.java +0 -10
  24. package/android/build/intermediates/aapt_friendly_merged_manifests/debug/processDebugManifest/aapt/AndroidManifest.xml +0 -7
  25. package/android/build/intermediates/aapt_friendly_merged_manifests/debug/processDebugManifest/aapt/output-metadata.json +0 -18
  26. package/android/build/intermediates/aar_metadata/debug/writeDebugAarMetadata/aar-metadata.properties +0 -6
  27. package/android/build/intermediates/annotation_processor_list/debug/javaPreCompileDebug/annotationProcessors.json +0 -1
  28. package/android/build/intermediates/compile_library_classes_jar/debug/bundleLibCompileToJarDebug/classes.jar +0 -0
  29. package/android/build/intermediates/compile_r_class_jar/debug/generateDebugRFile/R.jar +0 -0
  30. package/android/build/intermediates/compile_symbol_list/debug/generateDebugRFile/R.txt +0 -3
  31. package/android/build/intermediates/compiled_local_resources/debug/compileDebugLibraryResources/out/xml_nfc_engagement_apdu_service.xml.flat +0 -0
  32. package/android/build/intermediates/incremental/debug/packageDebugResources/compile-file-map.properties +0 -2
  33. package/android/build/intermediates/incremental/debug/packageDebugResources/merged.dir/values/values.xml +0 -5
  34. package/android/build/intermediates/incremental/debug/packageDebugResources/merger.xml +0 -2
  35. package/android/build/intermediates/incremental/mergeDebugAssets/merger.xml +0 -2
  36. package/android/build/intermediates/incremental/mergeDebugJniLibFolders/merger.xml +0 -2
  37. package/android/build/intermediates/incremental/mergeDebugShaders/merger.xml +0 -2
  38. package/android/build/intermediates/java_res/debug/processDebugJavaRes/out/META-INF/animo-id-expo-mdoc-data-transfer_debug.kotlin_module +0 -0
  39. package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/id/animo/mdoc/datatransfer/BuildConfig.class +0 -0
  40. package/android/build/intermediates/local_only_symbol_list/debug/parseDebugLocalResources/R-def.txt +0 -5
  41. package/android/build/intermediates/manifest_merge_blame_file/debug/processDebugManifest/manifest-merger-blame-debug-report.txt +0 -7
  42. package/android/build/intermediates/merged_manifest/debug/processDebugManifest/AndroidManifest.xml +0 -7
  43. package/android/build/intermediates/navigation_json/debug/extractDeepLinksDebug/navigation.json +0 -1
  44. package/android/build/intermediates/nested_resources_validation_report/debug/generateDebugResources/nestedResourcesValidationReport.txt +0 -1
  45. package/android/build/intermediates/packaged_res/debug/packageDebugResources/values/values.xml +0 -5
  46. package/android/build/intermediates/packaged_res/debug/packageDebugResources/xml/nfc_engagement_apdu_service.xml +0 -30
  47. package/android/build/intermediates/runtime_library_classes_jar/debug/bundleLibRuntimeToJarDebug/classes.jar +0 -0
  48. package/android/build/intermediates/symbol_list_with_package_name/debug/generateDebugRFile/package-aware-r.txt +0 -4
  49. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab +0 -0
  50. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.keystream +0 -0
  51. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.keystream.len +0 -0
  52. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.len +0 -0
  53. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.values.at +0 -0
  54. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab_i +0 -0
  55. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab_i.len +0 -0
  56. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab +0 -0
  57. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.keystream +0 -0
  58. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.keystream.len +0 -0
  59. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.len +0 -0
  60. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.values.at +0 -0
  61. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab_i +0 -0
  62. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab_i.len +0 -0
  63. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab +0 -0
  64. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream +0 -0
  65. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream.len +0 -0
  66. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.len +0 -0
  67. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.values.at +0 -0
  68. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab_i +0 -0
  69. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab_i.len +0 -0
  70. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab +0 -0
  71. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.keystream +0 -0
  72. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.keystream.len +0 -0
  73. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.len +0 -0
  74. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.values.at +0 -0
  75. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab_i +0 -0
  76. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab_i.len +0 -0
  77. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab +0 -0
  78. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream +0 -0
  79. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream.len +0 -0
  80. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.len +0 -0
  81. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.values.at +0 -0
  82. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i +0 -0
  83. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i.len +0 -0
  84. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab +0 -0
  85. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.keystream +0 -0
  86. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.keystream.len +0 -0
  87. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.len +0 -0
  88. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.values.at +0 -0
  89. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab_i +0 -0
  90. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab_i.len +0 -0
  91. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab +0 -0
  92. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.keystream +0 -0
  93. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.keystream.len +0 -0
  94. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.len +0 -0
  95. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.values.at +0 -0
  96. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab_i +0 -0
  97. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab_i.len +0 -0
  98. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab +0 -0
  99. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream +0 -0
  100. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream.len +0 -0
  101. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.len +0 -0
  102. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.values.at +0 -0
  103. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab_i +0 -0
  104. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab_i.len +0 -0
  105. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab +0 -0
  106. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.keystream +0 -0
  107. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.keystream.len +0 -0
  108. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.len +0 -0
  109. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.values.at +0 -0
  110. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab_i +0 -0
  111. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab_i.len +0 -0
  112. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab +0 -0
  113. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.keystream +0 -0
  114. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.keystream.len +0 -0
  115. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.len +0 -0
  116. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.values.at +0 -0
  117. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab_i +0 -0
  118. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab_i.len +0 -0
  119. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/counters.tab +0 -2
  120. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab +0 -0
  121. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.keystream +0 -0
  122. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.keystream.len +0 -0
  123. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.len +0 -0
  124. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.values.at +0 -0
  125. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab_i +0 -0
  126. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab_i.len +0 -0
  127. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab +0 -0
  128. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.keystream +0 -0
  129. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.keystream.len +0 -0
  130. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.len +0 -0
  131. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.values.at +0 -0
  132. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab_i +0 -0
  133. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab_i.len +0 -0
  134. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab +0 -0
  135. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream +0 -0
  136. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream.len +0 -0
  137. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.len +0 -0
  138. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.values.at +0 -0
  139. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab_i +0 -0
  140. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab_i.len +0 -0
  141. package/android/build/kotlin/compileDebugKotlin/cacheable/last-build.bin +0 -0
  142. package/android/build/kotlin/compileDebugKotlin/classpath-snapshot/shrunk-classpath-snapshot.bin +0 -0
  143. package/android/build/outputs/logs/manifest-merger-debug-report.txt +0 -14
  144. package/android/build/tmp/compileDebugJavaWithJavac/previous-compilation-data.bin +0 -0
  145. package/android/build/tmp/kotlin-classes/debug/META-INF/animo-id-expo-mdoc-data-transfer_debug.kotlin_module +0 -0
  146. package/android/build/tmp/kotlin-classes/debug/eu/europa/ec/eudi/iso18013/transfer/TransferEvent$Connected.class +0 -0
  147. package/android/build/tmp/kotlin-classes/debug/eu/europa/ec/eudi/iso18013/transfer/TransferEvent$Connecting.class +0 -0
  148. package/android/build/tmp/kotlin-classes/debug/eu/europa/ec/eudi/iso18013/transfer/TransferEvent$Disconnected.class +0 -0
  149. package/android/build/tmp/kotlin-classes/debug/eu/europa/ec/eudi/iso18013/transfer/TransferEvent$Error.class +0 -0
  150. package/android/build/tmp/kotlin-classes/debug/eu/europa/ec/eudi/iso18013/transfer/TransferEvent$IntentToSend.class +0 -0
  151. package/android/build/tmp/kotlin-classes/debug/eu/europa/ec/eudi/iso18013/transfer/TransferEvent$Listenable.class +0 -0
  152. package/android/build/tmp/kotlin-classes/debug/eu/europa/ec/eudi/iso18013/transfer/TransferEvent$Listener.class +0 -0
  153. package/android/build/tmp/kotlin-classes/debug/eu/europa/ec/eudi/iso18013/transfer/TransferEvent$QrEngagementReady.class +0 -0
  154. package/android/build/tmp/kotlin-classes/debug/eu/europa/ec/eudi/iso18013/transfer/TransferEvent$Redirect.class +0 -0
  155. package/android/build/tmp/kotlin-classes/debug/eu/europa/ec/eudi/iso18013/transfer/TransferEvent$RequestReceived.class +0 -0
  156. package/android/build/tmp/kotlin-classes/debug/eu/europa/ec/eudi/iso18013/transfer/TransferEvent$ResponseSent.class +0 -0
  157. package/android/build/tmp/kotlin-classes/debug/eu/europa/ec/eudi/iso18013/transfer/TransferEvent.class +0 -0
  158. package/android/build/tmp/kotlin-classes/debug/eu/europa/ec/eudi/iso18013/transfer/TransferManager$Companion.class +0 -0
  159. package/android/build/tmp/kotlin-classes/debug/eu/europa/ec/eudi/iso18013/transfer/TransferManager$DefaultImpls.class +0 -0
  160. package/android/build/tmp/kotlin-classes/debug/eu/europa/ec/eudi/iso18013/transfer/TransferManager.class +0 -0
  161. package/android/build/tmp/kotlin-classes/debug/eu/europa/ec/eudi/iso18013/transfer/TransferManagerImpl$Builder.class +0 -0
  162. package/android/build/tmp/kotlin-classes/debug/eu/europa/ec/eudi/iso18013/transfer/TransferManagerImpl$Companion.class +0 -0
  163. package/android/build/tmp/kotlin-classes/debug/eu/europa/ec/eudi/iso18013/transfer/TransferManagerImpl.class +0 -0
  164. package/android/build/tmp/kotlin-classes/debug/eu/europa/ec/eudi/iso18013/transfer/engagement/BleRetrievalMethod.class +0 -0
  165. package/android/build/tmp/kotlin-classes/debug/eu/europa/ec/eudi/iso18013/transfer/engagement/DeviceRetrievalMethod.class +0 -0
  166. package/android/build/tmp/kotlin-classes/debug/eu/europa/ec/eudi/iso18013/transfer/engagement/NfcEngagementService$Companion.class +0 -0
  167. package/android/build/tmp/kotlin-classes/debug/eu/europa/ec/eudi/iso18013/transfer/engagement/NfcEngagementService$deviceRetrievalHelperListener$1.class +0 -0
  168. package/android/build/tmp/kotlin-classes/debug/eu/europa/ec/eudi/iso18013/transfer/engagement/NfcEngagementService$nfcEngagementListener$1.class +0 -0
  169. package/android/build/tmp/kotlin-classes/debug/eu/europa/ec/eudi/iso18013/transfer/engagement/NfcEngagementService.class +0 -0
  170. package/android/build/tmp/kotlin-classes/debug/eu/europa/ec/eudi/iso18013/transfer/engagement/RetrievalMethod.class +0 -0
  171. package/android/build/tmp/kotlin-classes/debug/eu/europa/ec/eudi/iso18013/transfer/internal/DeviceRetrievalHelperExtKt.class +0 -0
  172. package/android/build/tmp/kotlin-classes/debug/eu/europa/ec/eudi/iso18013/transfer/internal/DeviceRetrievalMethodExtKt.class +0 -0
  173. package/android/build/tmp/kotlin-classes/debug/eu/europa/ec/eudi/iso18013/transfer/internal/EngagementToApp$presentationListener$1.class +0 -0
  174. package/android/build/tmp/kotlin-classes/debug/eu/europa/ec/eudi/iso18013/transfer/internal/EngagementToApp.class +0 -0
  175. package/android/build/tmp/kotlin-classes/debug/eu/europa/ec/eudi/iso18013/transfer/internal/ExtensionsKt.class +0 -0
  176. package/android/build/tmp/kotlin-classes/debug/eu/europa/ec/eudi/iso18013/transfer/internal/QrEngagement$deviceRetrievalHelperListener$1.class +0 -0
  177. package/android/build/tmp/kotlin-classes/debug/eu/europa/ec/eudi/iso18013/transfer/internal/QrEngagement$qrEngagementListener$1.class +0 -0
  178. package/android/build/tmp/kotlin-classes/debug/eu/europa/ec/eudi/iso18013/transfer/internal/QrEngagement.class +0 -0
  179. package/android/build/tmp/kotlin-classes/debug/id/animo/mdoc/datatransfer/MdocDataTransfer$Companion.class +0 -0
  180. package/android/build/tmp/kotlin-classes/debug/id/animo/mdoc/datatransfer/MdocDataTransfer.class +0 -0
  181. package/android/build/tmp/kotlin-classes/debug/id/animo/mdoc/datatransfer/MdocDataTransferEvent.class +0 -0
  182. package/android/build/tmp/kotlin-classes/debug/id/animo/mdoc/datatransfer/MdocDataTransferException$NotInitialized.class +0 -0
  183. package/android/build/tmp/kotlin-classes/debug/id/animo/mdoc/datatransfer/MdocDataTransferException.class +0 -0
  184. package/android/build/tmp/kotlin-classes/debug/id/animo/mdoc/datatransfer/MdocDataTransferManager.class +0 -0
  185. package/android/build/tmp/kotlin-classes/debug/id/animo/mdoc/datatransfer/MdocDataTransferModule$definition$1$1$1.class +0 -0
  186. package/android/build/tmp/kotlin-classes/debug/id/animo/mdoc/datatransfer/MdocDataTransferModule$definition$1$2$1$1.class +0 -0
  187. package/android/build/tmp/kotlin-classes/debug/id/animo/mdoc/datatransfer/MdocDataTransferModule$definition$lambda$6$$inlined$AsyncFunction$1.class +0 -0
  188. package/android/build/tmp/kotlin-classes/debug/id/animo/mdoc/datatransfer/MdocDataTransferModule$definition$lambda$6$$inlined$AsyncFunction$2.class +0 -0
  189. package/android/build/tmp/kotlin-classes/debug/id/animo/mdoc/datatransfer/MdocDataTransferModule$definition$lambda$6$$inlined$AsyncFunction$3.class +0 -0
  190. package/android/build/tmp/kotlin-classes/debug/id/animo/mdoc/datatransfer/MdocDataTransferModule$definition$lambda$6$$inlined$Function$1.class +0 -0
  191. package/android/build/tmp/kotlin-classes/debug/id/animo/mdoc/datatransfer/MdocDataTransferModule$definition$lambda$6$$inlined$Function$2.class +0 -0
  192. package/android/build/tmp/kotlin-classes/debug/id/animo/mdoc/datatransfer/MdocDataTransferModule$definition$lambda$6$$inlined$FunctionWithoutArgs$1.class +0 -0
  193. package/android/build/tmp/kotlin-classes/debug/id/animo/mdoc/datatransfer/MdocDataTransferModule$definition$lambda$6$$inlined$FunctionWithoutArgs$2.class +0 -0
  194. package/android/build/tmp/kotlin-classes/debug/id/animo/mdoc/datatransfer/MdocDataTransferModule$definition$lambda$6$$inlined$FunctionWithoutArgs$3.class +0 -0
  195. package/android/build/tmp/kotlin-classes/debug/id/animo/mdoc/datatransfer/MdocDataTransferModule.class +0 -0
  196. package/android/build/tmp/kotlin-classes/debug/id/animo/mdoc/datatransfer/NfcEngagementServiceImpl.class +0 -0
  197. package/ios/MdocDataTransfer-Bridging-Header.h +0 -1
  198. package/ios/MdocDataTransfer.swift +0 -186
@@ -42,7 +42,7 @@ class MdocDataTransfer {
42
42
  }
43
43
  async sendDeviceResponse(deviceResponse) {
44
44
  const p = new Promise((resolve) => NativeMdocDataTransfer.addListener(MdocDataTransferEvent.OnResponseSent, resolve));
45
- MdocDataTransfer.handleError(() => NativeMdocDataTransfer.sendDeviceResponse(Buffer.from(deviceResponse).toString('base64')));
45
+ MdocDataTransfer.handleError(async () => await NativeMdocDataTransfer.sendDeviceResponse(Buffer.from(deviceResponse).toString('base64')));
46
46
  await p;
47
47
  }
48
48
  shutdown() {
@@ -1 +1 @@
1
- {"version":3,"file":"MdocDataTransfer.js","sourceRoot":"","sources":["../src/MdocDataTransfer.ts"],"names":[],"mappings":"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","sourcesContent":["import { Buffer } from 'buffer'\nimport { MdocDataTransferError } from './MdocDataTransferError'\nimport {\n MdocDataTransferEvent,\n type OnErrorPayload,\n type OnRequestReceivedEventPayload,\n type OnResponseSentPayload,\n} from './MdocDataTransferEvent'\nimport { NativeMdocDataTransfer } from './NativeMdocDataTransfer'\n\nexport let instance: MdocDataTransfer | undefined = undefined\nexport const mdocDataTransfer = {\n instance: () => {\n if (instance) return instance\n return MdocDataTransfer.initialize()\n },\n isInitialized: () => !!instance,\n}\n\nclass MdocDataTransfer {\n public isNfcEnabled = false\n\n private static handleError(nativeCall: () => void) {\n let error: string | undefined\n const subscription = NativeMdocDataTransfer.addListener(\n MdocDataTransferEvent.OnError,\n (payload: OnErrorPayload) => {\n error = payload.error\n }\n )\n\n nativeCall()\n\n subscription.remove()\n\n if (error) {\n throw new MdocDataTransferError(error)\n }\n }\n\n public static initialize() {\n MdocDataTransfer.handleError(NativeMdocDataTransfer.initialize)\n\n instance = new MdocDataTransfer()\n return instance\n }\n\n public async startQrEngagement() {\n return await NativeMdocDataTransfer.startQrEngagement()\n }\n\n public async waitForDeviceRequest() {\n return await new Promise<{ deviceRequest: Uint8Array; sessionTranscript: Uint8Array }>((resolve) =>\n NativeMdocDataTransfer.addListener(\n MdocDataTransferEvent.OnRequestReceived,\n (payload: OnRequestReceivedEventPayload) => {\n resolve({\n deviceRequest: new Uint8Array(Buffer.from(payload.deviceRequest, 'base64')),\n sessionTranscript: new Uint8Array(Buffer.from(payload.sessionTranscript, 'base64')),\n })\n }\n )\n )\n }\n\n public async sendDeviceResponse(deviceResponse: Uint8Array) {\n const p = new Promise<OnResponseSentPayload>((resolve) =>\n NativeMdocDataTransfer.addListener(MdocDataTransferEvent.OnResponseSent, resolve)\n )\n\n MdocDataTransfer.handleError(() =>\n NativeMdocDataTransfer.sendDeviceResponse(Buffer.from(deviceResponse).toString('base64'))\n )\n\n await p\n }\n\n public shutdown() {\n this.isNfcEnabled = false\n MdocDataTransfer.handleError(NativeMdocDataTransfer.shutdown)\n instance = undefined\n }\n\n public enableNfc() {\n if (this.isNfcEnabled) return\n NativeMdocDataTransfer.enableNfc()\n this.isNfcEnabled = true\n }\n}\n"]}
1
+ {"version":3,"file":"MdocDataTransfer.js","sourceRoot":"","sources":["../src/MdocDataTransfer.ts"],"names":[],"mappings":"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","sourcesContent":["import { Buffer } from 'buffer'\nimport { MdocDataTransferError } from './MdocDataTransferError'\nimport {\n MdocDataTransferEvent,\n type OnErrorPayload,\n type OnRequestReceivedEventPayload,\n type OnResponseSentPayload,\n} from './MdocDataTransferEvent'\nimport { NativeMdocDataTransfer } from './NativeMdocDataTransfer'\n\nexport let instance: MdocDataTransfer | undefined = undefined\nexport const mdocDataTransfer = {\n instance: () => {\n if (instance) return instance\n return MdocDataTransfer.initialize()\n },\n isInitialized: () => !!instance,\n}\n\nclass MdocDataTransfer {\n public isNfcEnabled = false\n\n private static handleError(nativeCall: () => void | Promise<void>) {\n let error: string | undefined\n const subscription = NativeMdocDataTransfer.addListener(\n MdocDataTransferEvent.OnError,\n (payload: OnErrorPayload) => {\n error = payload.error\n }\n )\n\n nativeCall()\n\n subscription.remove()\n\n if (error) {\n throw new MdocDataTransferError(error)\n }\n }\n\n public static initialize() {\n MdocDataTransfer.handleError(NativeMdocDataTransfer.initialize)\n\n instance = new MdocDataTransfer()\n return instance\n }\n\n public async startQrEngagement() {\n return await NativeMdocDataTransfer.startQrEngagement()\n }\n\n public async waitForDeviceRequest() {\n return await new Promise<{ deviceRequest: Uint8Array; sessionTranscript: Uint8Array }>((resolve) =>\n NativeMdocDataTransfer.addListener(\n MdocDataTransferEvent.OnRequestReceived,\n (payload: OnRequestReceivedEventPayload) => {\n resolve({\n deviceRequest: new Uint8Array(Buffer.from(payload.deviceRequest, 'base64')),\n sessionTranscript: new Uint8Array(Buffer.from(payload.sessionTranscript, 'base64')),\n })\n }\n )\n )\n }\n\n public async sendDeviceResponse(deviceResponse: Uint8Array) {\n const p = new Promise<OnResponseSentPayload>((resolve) =>\n NativeMdocDataTransfer.addListener(MdocDataTransferEvent.OnResponseSent, resolve)\n )\n\n MdocDataTransfer.handleError(\n async () => await NativeMdocDataTransfer.sendDeviceResponse(Buffer.from(deviceResponse).toString('base64'))\n )\n\n await p\n }\n\n public shutdown() {\n this.isNfcEnabled = false\n MdocDataTransfer.handleError(NativeMdocDataTransfer.shutdown)\n instance = undefined\n }\n\n public enableNfc() {\n if (this.isNfcEnabled) return\n NativeMdocDataTransfer.enableNfc()\n this.isNfcEnabled = true\n }\n}\n"]}
@@ -8,7 +8,7 @@ export type MdocDataTransferEvents = {
8
8
  declare class MdocDataTransferModule extends NativeModule<MdocDataTransferEvents> {
9
9
  initialize: () => void;
10
10
  startQrEngagement: () => Promise<string>;
11
- sendDeviceResponse: (devceResponse: string) => void;
11
+ sendDeviceResponse: (devceResponse: string) => Promise<void>;
12
12
  shutdown: () => void;
13
13
  enableNfc: () => void;
14
14
  }
@@ -1 +1 @@
1
- {"version":3,"file":"NativeMdocDataTransfer.d.ts","sourceRoot":"","sources":["../src/NativeMdocDataTransfer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAuB,MAAM,MAAM,CAAA;AACxD,OAAO,KAAK,EAAE,cAAc,EAAE,6BAA6B,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAA;AAEnH,MAAM,MAAM,sBAAsB,GAAG;IACnC,iBAAiB,EAAE,CAAC,OAAO,EAAE,6BAA6B,KAAK,IAAI,CAAA;IACnE,cAAc,EAAE,CAAC,OAAO,EAAE,qBAAqB,KAAK,IAAI,CAAA;IACxD,OAAO,EAAE,CAAC,OAAO,EAAE,cAAc,KAAK,IAAI,CAAA;CAC3C,CAAA;AAED,OAAO,OAAO,sBAAuB,SAAQ,YAAY,CAAC,sBAAsB,CAAC;IAC/E,UAAU,EAAE,MAAM,IAAI,CAAA;IACtB,iBAAiB,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAA;IACxC,kBAAkB,EAAE,CAAC,aAAa,EAAE,MAAM,KAAK,IAAI,CAAA;IACnD,QAAQ,EAAE,MAAM,IAAI,CAAA;IACpB,SAAS,EAAE,MAAM,IAAI,CAAA;CACtB;AAED,eAAO,MAAM,sBAAsB,wBAAkE,CAAA"}
1
+ {"version":3,"file":"NativeMdocDataTransfer.d.ts","sourceRoot":"","sources":["../src/NativeMdocDataTransfer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAuB,MAAM,MAAM,CAAA;AACxD,OAAO,KAAK,EAAE,cAAc,EAAE,6BAA6B,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAA;AAEnH,MAAM,MAAM,sBAAsB,GAAG;IACnC,iBAAiB,EAAE,CAAC,OAAO,EAAE,6BAA6B,KAAK,IAAI,CAAA;IACnE,cAAc,EAAE,CAAC,OAAO,EAAE,qBAAqB,KAAK,IAAI,CAAA;IACxD,OAAO,EAAE,CAAC,OAAO,EAAE,cAAc,KAAK,IAAI,CAAA;CAC3C,CAAA;AAED,OAAO,OAAO,sBAAuB,SAAQ,YAAY,CAAC,sBAAsB,CAAC;IAC/E,UAAU,EAAE,MAAM,IAAI,CAAA;IACtB,iBAAiB,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAA;IACxC,kBAAkB,EAAE,CAAC,aAAa,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAC5D,QAAQ,EAAE,MAAM,IAAI,CAAA;IACpB,SAAS,EAAE,MAAM,IAAI,CAAA;CACtB;AAED,eAAO,MAAM,sBAAsB,wBAAkE,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"NativeMdocDataTransfer.js","sourceRoot":"","sources":["../src/NativeMdocDataTransfer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,mBAAmB,EAAE,MAAM,MAAM,CAAA;AAiBxD,MAAM,CAAC,MAAM,sBAAsB,GAAG,mBAAmB,CAAyB,kBAAkB,CAAC,CAAA","sourcesContent":["import { NativeModule, requireNativeModule } from 'expo'\nimport type { OnErrorPayload, OnRequestReceivedEventPayload, OnResponseSentPayload } from './MdocDataTransferEvent'\n\nexport type MdocDataTransferEvents = {\n onRequestReceived: (payload: OnRequestReceivedEventPayload) => void\n onResponseSent: (payload: OnResponseSentPayload) => void\n onError: (payload: OnErrorPayload) => void\n}\n\ndeclare class MdocDataTransferModule extends NativeModule<MdocDataTransferEvents> {\n initialize: () => void\n startQrEngagement: () => Promise<string>\n sendDeviceResponse: (devceResponse: string) => void\n shutdown: () => void\n enableNfc: () => void\n}\n\nexport const NativeMdocDataTransfer = requireNativeModule<MdocDataTransferModule>('MdocDataTransfer')\n"]}
1
+ {"version":3,"file":"NativeMdocDataTransfer.js","sourceRoot":"","sources":["../src/NativeMdocDataTransfer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,mBAAmB,EAAE,MAAM,MAAM,CAAA;AAiBxD,MAAM,CAAC,MAAM,sBAAsB,GAAG,mBAAmB,CAAyB,kBAAkB,CAAC,CAAA","sourcesContent":["import { NativeModule, requireNativeModule } from 'expo'\nimport type { OnErrorPayload, OnRequestReceivedEventPayload, OnResponseSentPayload } from './MdocDataTransferEvent'\n\nexport type MdocDataTransferEvents = {\n onRequestReceived: (payload: OnRequestReceivedEventPayload) => void\n onResponseSent: (payload: OnResponseSentPayload) => void\n onError: (payload: OnErrorPayload) => void\n}\n\ndeclare class MdocDataTransferModule extends NativeModule<MdocDataTransferEvents> {\n initialize: () => void\n startQrEngagement: () => Promise<string>\n sendDeviceResponse: (devceResponse: string) => Promise<void>\n shutdown: () => void\n enableNfc: () => void\n}\n\nexport const NativeMdocDataTransfer = requireNativeModule<MdocDataTransferModule>('MdocDataTransfer')\n"]}
@@ -1,5 +1,5 @@
1
1
  {
2
- "platforms": ["android", "apple"],
2
+ "platforms": ["apple", "android"],
3
3
  "apple": {
4
4
  "modules": ["MdocDataTransferModule"]
5
5
  },
@@ -1,6 +1,6 @@
1
1
  require 'json'
2
2
 
3
- package = JSON.parse(File.read(File.join(__dir__, 'package.json')))
3
+ package = JSON.parse(File.read(File.join(__dir__, '../package.json')))
4
4
 
5
5
  Pod::Spec.new do |s|
6
6
  s.name = 'MdocDataTransfer'
@@ -17,10 +17,9 @@ Pod::Spec.new do |s|
17
17
 
18
18
  s.pod_target_xcconfig = {
19
19
  'DEFINES_MODULE' => 'YES',
20
- 'SWIFT_COMPILATION_MODE' => 'wholemodule'
21
20
  }
22
21
 
23
- s.source_files = "ios/**/*.{h,m,mm,swift}"
22
+ s.source_files = "**/*.{h,m,mm,swift,hpp,cpp}"
24
23
 
25
24
  s.dependency 'ExpoModulesCore'
26
25
 
@@ -1,10 +1,12 @@
1
1
  import ExpoModulesCore
2
+ import MdocDataModel18013
3
+ import SwiftCBOR
2
4
 
3
5
  public class MdocDataTransferModule: Module {
4
6
  public func definition() -> ModuleDefinition {
5
7
  Name("MdocDataTransfer")
6
8
 
7
- let bleServerTransfer: MdocGattServer = MdocGattServer()
9
+ let bleServerTransfer: MdocGattServer = MdocGattServer(self)
8
10
 
9
11
  Events(
10
12
  MdocDataTransferEvent.ON_REQUEST_RECEIVED.description,
@@ -15,17 +17,13 @@ public class MdocDataTransferModule: Module {
15
17
  // no-op
16
18
  }
17
19
 
18
- AsyncFunction("startQrEngagement") { (promise: Promise) in
19
- do {
20
- let qrCode = try await bleServerTransfer.performDeviceEngagement()
21
- promise.resolve(qrCode)
22
- } catch {
23
- promise.reject(error)
24
- }
20
+ AsyncFunction("startQrEngagement") {
21
+ try await bleServerTransfer.performDeviceEngagement()
25
22
  }
26
23
 
27
- Function("sendDeviceResponse") { (deviceResponse: String) in
28
- bleServerTransfer.sendDeviceResponse(deviceResponse: Data(base64Encoded: deviceResponse.data(using: .utf8)!)!)
24
+ AsyncFunction("sendDeviceResponse") { (deviceResponse: String) in
25
+ try await bleServerTransfer.sendDeviceResponse(deviceResponse: Data(base64Encoded: deviceResponse.data(using: .utf8)!)!)
26
+ sendEvent(MdocDataTransferEvent.ON_RESPONSE_SENT.description)
29
27
  }
30
28
 
31
29
  Function("shutdown") {
@@ -37,3 +35,24 @@ public class MdocDataTransferModule: Module {
37
35
  }
38
36
  }
39
37
  }
38
+
39
+ extension MdocDataTransferModule : MdocOfflineDelegate {
40
+ public func didChangeStatus(_ newStatus: TransferStatus) {
41
+ // no-op
42
+ }
43
+
44
+ public func didFinishedWithError(_ error: any Error) {
45
+ // no-op
46
+ }
47
+
48
+ public func didReceiveRequest(_ deviceRequest: Data, _ sessionTranscript: Data) {
49
+ do {
50
+ let dr = try DeviceRequest(data: deviceRequest.bytes).encode(options: CBOROptions())
51
+ sendEvent(MdocDataTransferEvent.ON_REQUEST_RECEIVED.description, ["deviceRequest": Data(dr).base64EncodedString(),"sessionTranscript": sessionTranscript.base64EncodedString() ])
52
+ } catch {
53
+ logger.error("\(error.localizedDescription)")
54
+ }
55
+ }
56
+
57
+
58
+ }
@@ -31,9 +31,10 @@ public class MdocGattServer: @unchecked Sendable, ObservableObject {
31
31
  var remoteCentral: CBCentral!
32
32
  var stateCharacteristic: CBMutableCharacteristic!
33
33
  var server2ClientCharacteristic: CBMutableCharacteristic!
34
- public var deviceEngagement: DeviceEngagement?
35
- public var qrCodePayload: String?
36
- public weak var delegate: (any MdocOfflineDelegate)?
34
+ var deviceEngagement: DeviceEngagement?
35
+ var sessionEncryption: SessionEncryption?
36
+ var qrCodePayload: String?
37
+ public var delegate: any MdocOfflineDelegate
37
38
  var continuationQrCodeReady: CheckedContinuation<Void, Error>?
38
39
  public var advertising: Bool = false
39
40
  public var error: Error? = nil {
@@ -49,16 +50,17 @@ public class MdocGattServer: @unchecked Sendable, ObservableObject {
49
50
  }
50
51
  }
51
52
  public var unlockData: [String: Data]!
52
- public var deviceResponseBytes: Data?
53
+
53
54
  var readBuffer = Data()
54
55
  var sendBuffer = [Data]()
55
56
  var numBlocks: Int = 0
56
57
  var subscribeCount: Int = 0
57
58
  var initSuccess:Bool = false
58
59
 
59
- public init() {
60
+ public init(_ delegate: any MdocOfflineDelegate) {
60
61
  secureArea = SecureEnclaveSecureArea.create(storage: KeyChainSecureKeyStorage(serviceName: "TODO_SERVICE_NAME", accessGroup: nil))
61
62
  status = .initialized
63
+ self.delegate = delegate
62
64
  initPeripheralManager()
63
65
  initSuccess = true
64
66
  }
@@ -243,20 +245,29 @@ public class MdocGattServer: @unchecked Sendable, ObservableObject {
243
245
  }
244
246
 
245
247
  func handleStatusChange(_ newValue: TransferStatus) async {
246
- guard !isPreview && !isInErrorState else {
247
- return
248
- }
249
- logger.log(level: .info, "Transfer status will change to \(newValue)")
250
- delegate?.didChangeStatus(newValue)
251
- if newValue == .requestReceived {
252
- peripheralManager.stopAdvertising()
253
- delegate?.didReceiveRequest(readBuffer)
254
- }
255
- else if newValue == .initialized {
256
- initPeripheralManager()
257
- } else if newValue == .disconnected && status != .disconnected {
258
- stop()
259
- }
248
+ do {
249
+ guard !isPreview && !isInErrorState else {
250
+ return
251
+ }
252
+ guard let deviceEngagement else {
253
+ return
254
+ }
255
+ logger.log(level: .info, "Transfer status will change to \(newValue)")
256
+ delegate.didChangeStatus(newValue)
257
+ if newValue == .requestReceived {
258
+ peripheralManager.stopAdvertising()
259
+ let (dr, se) = try await MdocHelpers.decodeDeviceRequestIntoSessionTranscript(deviceEngagement, BleTransferMode.QRHandover, readBuffer)
260
+ sessionEncryption = se
261
+ delegate.didReceiveRequest(dr, Data(se.sessionTranscriptBytes))
262
+ }
263
+ else if newValue == .initialized {
264
+ initPeripheralManager()
265
+ } else if newValue == .disconnected && status != .disconnected {
266
+ stop()
267
+ }
268
+ } catch {
269
+ logger.log(level: .error, "\(error.localizedDescription)")
270
+ }
260
271
  }
261
272
 
262
273
  var isPreview: Bool {
@@ -270,7 +281,7 @@ public class MdocGattServer: @unchecked Sendable, ObservableObject {
270
281
  return
271
282
  }
272
283
  status = .error
273
- delegate?.didFinishedWithError(newValue)
284
+ delegate.didFinishedWithError(newValue)
274
285
  logger.log(level: .error, "Transfer error \(newValue) (\(newValue.localizedDescription)")
275
286
  }
276
287
 
@@ -307,8 +318,11 @@ public class MdocGattServer: @unchecked Sendable, ObservableObject {
307
318
  }
308
319
  }
309
320
 
310
- func sendDeviceResponse(deviceResponse: Data) {
311
- self.prepareDataToSend(deviceResponse)
321
+ func sendDeviceResponse(deviceResponse: Data) async throws {
322
+ guard let sessionEncryption else { throw MdocHelpers.makeError(code: .unexpected_error, str: error?.localizedDescription ?? "session encryption not found") }
323
+ let encryptedDeviceResponse = try await MdocHelpers.encryptDeviceResponse(deviceResponse, sessionEncryption)
324
+ guard let encryptedDeviceResponse else { throw MdocHelpers.makeError(code: .unexpected_error, str: error?.localizedDescription ?? "Could not encrypt device response") }
325
+ self.prepareDataToSend(encryptedDeviceResponse)
312
326
  self.sendDataWithUpdates()
313
327
  }
314
328
  }
@@ -1,6 +1,3 @@
1
- //
2
- // MdocOfflineHandler.swift
3
-
4
1
  import Foundation
5
2
  import MdocDataModel18013
6
3
  import MdocSecurity18013
@@ -9,7 +6,7 @@ import MdocSecurity18013
9
6
  public protocol MdocOfflineDelegate: AnyObject {
10
7
  func didChangeStatus(_ newStatus: TransferStatus)
11
8
  func didFinishedWithError(_ error: Error)
12
- func didReceiveRequest(_ deviceRequest: Data)
9
+ func didReceiveRequest(_ deviceRequest: Data, _ sessionTranscript: Data)
13
10
  }
14
11
 
15
12
 
@@ -91,4 +91,22 @@ public class MdocHelpers {
91
91
  }
92
92
  return numBlocks
93
93
  }
94
+
95
+ public static func decodeDeviceRequestIntoSessionTranscript(_ deviceEngagement: DeviceEngagement, _ handOver: CBOR, _ sessionEstablishmentBytes: Data) async throws -> (Data, SessionEncryption) {
96
+ guard let seCbor = try CBOR.decode([UInt8](sessionEstablishmentBytes)) else { logger.error("Request Data is not Cbor"); throw Self.makeError(code: .requestDecodeError) }
97
+ let se = try SessionEstablishment(cbor: seCbor)
98
+ let sessionEncryption = SessionEncryption(se: se, de: deviceEngagement, handOver: handOver)
99
+ guard var sessionEncryption else { logger.error("Session Encryption not initialized"); throw Self.makeError(code: .sessionEncryptionNotInitialized) }
100
+ let requestData = try await sessionEncryption.decrypt(se.data)
101
+ let deviceRequest = try DeviceRequest(data: requestData)
102
+ return (Data(deviceRequest.encode(options: CBOROptions())), sessionEncryption)
103
+ }
104
+
105
+ public static func encryptDeviceResponse(_ deviceResponseBytes: Data, _ sessionEncryption: SessionEncryption) async throws -> Data? {
106
+ var se = sessionEncryption
107
+ let cipherData = try await se.encrypt([UInt8](deviceResponseBytes))
108
+ guard let cipherData else { return nil }
109
+ let sd = SessionData(cipher_data: cipherData, status: 20)
110
+ return Data(sd.encode(options: CBOROptions()))
111
+ }
94
112
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@animo-id/expo-mdoc-data-transfer",
3
- "version": "0.2.0-alpha.2",
3
+ "version": "0.2.0-alpha.4",
4
4
  "description": "Expo mdoc data transfer module",
5
5
  "main": "build/index.js",
6
6
  "types": "build/index.d.ts",
@@ -20,7 +20,7 @@ export const mdocDataTransfer = {
20
20
  class MdocDataTransfer {
21
21
  public isNfcEnabled = false
22
22
 
23
- private static handleError(nativeCall: () => void) {
23
+ private static handleError(nativeCall: () => void | Promise<void>) {
24
24
  let error: string | undefined
25
25
  const subscription = NativeMdocDataTransfer.addListener(
26
26
  MdocDataTransferEvent.OnError,
@@ -68,8 +68,8 @@ class MdocDataTransfer {
68
68
  NativeMdocDataTransfer.addListener(MdocDataTransferEvent.OnResponseSent, resolve)
69
69
  )
70
70
 
71
- MdocDataTransfer.handleError(() =>
72
- NativeMdocDataTransfer.sendDeviceResponse(Buffer.from(deviceResponse).toString('base64'))
71
+ MdocDataTransfer.handleError(
72
+ async () => await NativeMdocDataTransfer.sendDeviceResponse(Buffer.from(deviceResponse).toString('base64'))
73
73
  )
74
74
 
75
75
  await p
@@ -10,7 +10,7 @@ export type MdocDataTransferEvents = {
10
10
  declare class MdocDataTransferModule extends NativeModule<MdocDataTransferEvents> {
11
11
  initialize: () => void
12
12
  startQrEngagement: () => Promise<string>
13
- sendDeviceResponse: (devceResponse: string) => void
13
+ sendDeviceResponse: (devceResponse: string) => Promise<void>
14
14
  shutdown: () => void
15
15
  enableNfc: () => void
16
16
  }
@@ -1,10 +0,0 @@
1
- /**
2
- * Automatically generated file. DO NOT MODIFY
3
- */
4
- package id.animo.mdoc.datatransfer;
5
-
6
- public final class BuildConfig {
7
- public static final boolean DEBUG = Boolean.parseBoolean("true");
8
- public static final String LIBRARY_PACKAGE_NAME = "id.animo.mdoc.datatransfer";
9
- public static final String BUILD_TYPE = "debug";
10
- }
@@ -1,7 +0,0 @@
1
- <?xml version="1.0" encoding="utf-8"?>
2
- <manifest xmlns:android="http://schemas.android.com/apk/res/android"
3
- package="id.animo.mdoc.datatransfer" >
4
-
5
- <uses-sdk android:minSdkVersion="26" />
6
-
7
- </manifest>
@@ -1,18 +0,0 @@
1
- {
2
- "version": 3,
3
- "artifactType": {
4
- "type": "AAPT_FRIENDLY_MERGED_MANIFESTS",
5
- "kind": "Directory"
6
- },
7
- "applicationId": "id.animo.mdoc.datatransfer",
8
- "variantName": "debug",
9
- "elements": [
10
- {
11
- "type": "SINGLE",
12
- "filters": [],
13
- "attributes": [],
14
- "outputFile": "AndroidManifest.xml"
15
- }
16
- ],
17
- "elementType": "File"
18
- }
@@ -1,6 +0,0 @@
1
- aarFormatVersion=1.0
2
- aarMetadataVersion=1.0
3
- minCompileSdk=1
4
- minCompileSdkExtension=0
5
- minAndroidGradlePluginVersion=1.0.0
6
- coreLibraryDesugaringEnabled=false
@@ -1,3 +0,0 @@
1
- int string engagement_aid_group_desc 0x0
2
- int string nfc_engagement_service_desc 0x0
3
- int xml nfc_engagement_apdu_service 0x0
@@ -1,2 +0,0 @@
1
- #Thu Feb 19 12:04:51 CET 2026
2
- id.animo.mdoc.datatransfer.animo-id-expo-mdoc-data-transfer-main-6\:/xml/nfc_engagement_apdu_service.xml=/Users/beri/Developer/work/animo/expo-mdoc-data-transfer/android/build/intermediates/packaged_res/debug/packageDebugResources/xml/nfc_engagement_apdu_service.xml
@@ -1,5 +0,0 @@
1
- <?xml version="1.0" encoding="utf-8"?>
2
- <resources>
3
- <string name="engagement_aid_group_desc">mDL Nfc</string>
4
- <string name="nfc_engagement_service_desc">NFC Device Engagement</string>
5
- </resources>
@@ -1,2 +0,0 @@
1
- <?xml version="1.0" encoding="utf-8"?>
2
- <merger version="3"><dataSet aapt-namespace="http://schemas.android.com/apk/res-auto" config="main$Generated" generated="true" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/Users/beri/Developer/work/animo/expo-mdoc-data-transfer/android/src/main/res"/></dataSet><dataSet aapt-namespace="http://schemas.android.com/apk/res-auto" config="main" generated-set="main$Generated" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/Users/beri/Developer/work/animo/expo-mdoc-data-transfer/android/src/main/res"><file path="/Users/beri/Developer/work/animo/expo-mdoc-data-transfer/android/src/main/res/values/strings.xml" qualifiers=""><string name="nfc_engagement_service_desc">NFC Device Engagement</string><string name="engagement_aid_group_desc">mDL Nfc</string></file><file name="nfc_engagement_apdu_service" path="/Users/beri/Developer/work/animo/expo-mdoc-data-transfer/android/src/main/res/xml/nfc_engagement_apdu_service.xml" qualifiers="" type="xml"/></source></dataSet><dataSet aapt-namespace="http://schemas.android.com/apk/res-auto" config="debug$Generated" generated="true" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/Users/beri/Developer/work/animo/expo-mdoc-data-transfer/android/src/debug/res"/></dataSet><dataSet aapt-namespace="http://schemas.android.com/apk/res-auto" config="debug" generated-set="debug$Generated" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/Users/beri/Developer/work/animo/expo-mdoc-data-transfer/android/src/debug/res"/></dataSet><dataSet aapt-namespace="http://schemas.android.com/apk/res-auto" config="generated$Generated" generated="true" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/Users/beri/Developer/work/animo/expo-mdoc-data-transfer/android/build/generated/res/resValues/debug"/></dataSet><dataSet aapt-namespace="http://schemas.android.com/apk/res-auto" config="generated" generated-set="generated$Generated" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/Users/beri/Developer/work/animo/expo-mdoc-data-transfer/android/build/generated/res/resValues/debug"/></dataSet><mergedItems/></merger>
@@ -1,2 +0,0 @@
1
- <?xml version="1.0" encoding="utf-8"?>
2
- <merger version="3"><dataSet config="main" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/Users/beri/Developer/work/animo/expo-mdoc-data-transfer/expo-sdk/android/src/main/assets"/></dataSet><dataSet config="debug" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/Users/beri/Developer/work/animo/expo-mdoc-data-transfer/expo-sdk/android/src/debug/assets"/></dataSet><dataSet config="generated" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/Users/beri/Developer/work/animo/expo-mdoc-data-transfer/expo-sdk/android/build/intermediates/shader_assets/debug/compileDebugShaders/out"/></dataSet></merger>
@@ -1,2 +0,0 @@
1
- <?xml version="1.0" encoding="utf-8"?>
2
- <merger version="3"><dataSet config="main" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/Users/beri/Developer/work/animo/expo-mdoc-data-transfer/expo-sdk/android/src/main/jniLibs"/></dataSet><dataSet config="debug" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/Users/beri/Developer/work/animo/expo-mdoc-data-transfer/expo-sdk/android/src/debug/jniLibs"/></dataSet></merger>
@@ -1,2 +0,0 @@
1
- <?xml version="1.0" encoding="utf-8"?>
2
- <merger version="3"><dataSet config="main" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/Users/beri/Developer/work/animo/expo-mdoc-data-transfer/expo-sdk/android/src/main/shaders"/></dataSet><dataSet config="debug" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/Users/beri/Developer/work/animo/expo-mdoc-data-transfer/expo-sdk/android/src/debug/shaders"/></dataSet></merger>
@@ -1,5 +0,0 @@
1
- R_DEF: Internal format may change without notice
2
- local
3
- string engagement_aid_group_desc
4
- string nfc_engagement_service_desc
5
- xml nfc_engagement_apdu_service
@@ -1,7 +0,0 @@
1
- 1<?xml version="1.0" encoding="utf-8"?>
2
- 2<manifest xmlns:android="http://schemas.android.com/apk/res/android"
3
- 3 package="id.animo.mdoc.datatransfer" >
4
- 4
5
- 5 <uses-sdk android:minSdkVersion="26" />
6
- 6
7
- 7</manifest>
@@ -1,7 +0,0 @@
1
- <?xml version="1.0" encoding="utf-8"?>
2
- <manifest xmlns:android="http://schemas.android.com/apk/res/android"
3
- package="id.animo.mdoc.datatransfer" >
4
-
5
- <uses-sdk android:minSdkVersion="26" />
6
-
7
- </manifest>
@@ -1,5 +0,0 @@
1
- <?xml version="1.0" encoding="utf-8"?>
2
- <resources>
3
- <string name="engagement_aid_group_desc">mDL Nfc</string>
4
- <string name="nfc_engagement_service_desc">NFC Device Engagement</string>
5
- </resources>
@@ -1,30 +0,0 @@
1
- <?xml version="1.0" encoding="utf-8"?>
2
-
3
- <!--
4
- ~ Copyright (c) 2024 European Commission
5
- ~
6
- ~ Licensed under the Apache License, Version 2.0 (the "License");
7
- ~ you may not use this file except in compliance with the License.
8
- ~ You may obtain a copy of the License at
9
- ~
10
- ~ http://www.apache.org/licenses/LICENSE-2.0
11
- ~
12
- ~ Unless required by applicable law or agreed to in writing, software
13
- ~ distributed under the License is distributed on an "AS IS" BASIS,
14
- ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
- ~ See the License for the specific language governing permissions and
16
- ~ limitations under the License.
17
- -->
18
-
19
- <host-apdu-service xmlns:android="http://schemas.android.com/apk/res/android"
20
- android:description="@string/nfc_engagement_service_desc"
21
- android:requireDeviceUnlock="true">
22
-
23
- <aid-group
24
- android:description="@string/engagement_aid_group_desc"
25
- android:category="other">
26
- <!-- NFC Type 4 Tag -->
27
- <aid-filter android:name="D2760000850101" />
28
- </aid-group>
29
-
30
- </host-apdu-service>
@@ -1,4 +0,0 @@
1
- id.animo.mdoc.datatransfer
2
- string engagement_aid_group_desc
3
- string nfc_engagement_service_desc
4
- xml nfc_engagement_apdu_service