@succinctlabs/react-native-zcam1 0.3.0 → 0.4.0-alpha.1

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 (127) hide show
  1. package/Zcam1Sdk.podspec +2 -2
  2. package/android/CMakeLists.txt +114 -0
  3. package/android/build.gradle +213 -0
  4. package/android/cpp-adapter-proving.cpp +35 -0
  5. package/android/cpp-adapter.cpp +35 -0
  6. package/android/src/main/AndroidManifest.xml +5 -0
  7. package/android/src/main/java/com/succinctlabs/zcam1sdk/Zcam1CaptureModule.kt +156 -0
  8. package/android/src/main/java/com/succinctlabs/zcam1sdk/Zcam1CapturePackage.kt +38 -0
  9. package/android/src/main/java/com/succinctlabs/zcam1sdk/Zcam1ProvingModule.kt +43 -0
  10. package/android/src/main/java/com/succinctlabs/zcam1sdk/Zcam1ProvingPackage.kt +34 -0
  11. package/android/src/main/java/com/succinctlabs/zcam1sdk/Zcam1SdkModule.kt +43 -0
  12. package/android/src/main/java/com/succinctlabs/zcam1sdk/Zcam1SdkPackage.kt +34 -0
  13. package/android/src/main/java/com/succinctlabs/zcam1sdk/camera/CameraUtils.kt +80 -0
  14. package/android/src/main/java/com/succinctlabs/zcam1sdk/camera/Zcam1CameraService.kt +588 -0
  15. package/android/src/main/java/com/succinctlabs/zcam1sdk/camera/Zcam1CameraView.kt +107 -0
  16. package/android/src/main/java/com/succinctlabs/zcam1sdk/camera/Zcam1CameraViewManager.kt +33 -0
  17. package/android/src/main/java/com/succinctlabs/zcam1sdk/camera/Zcam1OrientationManager.kt +73 -0
  18. package/cpp/generated/zcam1_c2pa_utils.cpp +170 -365
  19. package/cpp/generated/zcam1_c2pa_utils.hpp +0 -4
  20. package/cpp/generated/zcam1_certs_utils.cpp +121 -250
  21. package/cpp/generated/zcam1_common.cpp +1871 -0
  22. package/cpp/generated/zcam1_common.hpp +52 -0
  23. package/cpp/generated/zcam1_verify_utils.cpp +138 -265
  24. package/cpp/generated/zcam1_verify_utils.hpp +2 -2
  25. package/cpp/proving/generated/zcam1_common.cpp +1871 -0
  26. package/cpp/proving/generated/zcam1_common.hpp +52 -0
  27. package/cpp/proving/generated/zcam1_proving_utils.cpp +355 -417
  28. package/cpp/proving/generated/zcam1_proving_utils.hpp +13 -17
  29. package/cpp/proving/zcam1-proving.cpp +2 -0
  30. package/cpp/zcam1-sdk.cpp +2 -0
  31. package/lib/module/bindings.js +4 -0
  32. package/lib/module/bindings.js.map +1 -1
  33. package/lib/module/camera.js +71 -13
  34. package/lib/module/camera.js.map +1 -1
  35. package/lib/module/capture.js +115 -38
  36. package/lib/module/capture.js.map +1 -1
  37. package/lib/module/common.js +18 -2
  38. package/lib/module/common.js.map +1 -1
  39. package/lib/module/generated/zcam1_c2pa_utils-ffi.js +4 -0
  40. package/lib/module/generated/zcam1_c2pa_utils-ffi.js.map +1 -1
  41. package/lib/module/generated/zcam1_c2pa_utils.js +117 -9
  42. package/lib/module/generated/zcam1_c2pa_utils.js.map +1 -1
  43. package/lib/module/generated/zcam1_certs_utils-ffi.js +4 -0
  44. package/lib/module/generated/zcam1_certs_utils-ffi.js.map +1 -1
  45. package/lib/module/generated/zcam1_certs_utils.js +6 -2
  46. package/lib/module/generated/zcam1_certs_utils.js.map +1 -1
  47. package/lib/module/generated/zcam1_common-ffi.js +47 -0
  48. package/lib/module/generated/zcam1_common-ffi.js.map +1 -0
  49. package/lib/module/generated/zcam1_common.js +60 -0
  50. package/lib/module/generated/zcam1_common.js.map +1 -0
  51. package/lib/module/generated/zcam1_proving_utils-ffi.js +4 -0
  52. package/lib/module/generated/zcam1_proving_utils-ffi.js.map +1 -1
  53. package/lib/module/generated/zcam1_proving_utils.js +53 -46
  54. package/lib/module/generated/zcam1_proving_utils.js.map +1 -1
  55. package/lib/module/generated/zcam1_verify_utils-ffi.js +4 -0
  56. package/lib/module/generated/zcam1_verify_utils-ffi.js.map +1 -1
  57. package/lib/module/generated/zcam1_verify_utils.js +70 -22
  58. package/lib/module/generated/zcam1_verify_utils.js.map +1 -1
  59. package/lib/module/index.js +1 -1
  60. package/lib/module/index.js.map +1 -1
  61. package/lib/module/proving/NativeZcam1Proving.js +1 -1
  62. package/lib/module/proving/index.js +1 -1
  63. package/lib/module/proving/index.js.map +1 -1
  64. package/lib/module/proving/prove.js +14 -8
  65. package/lib/module/proving/prove.js.map +1 -1
  66. package/lib/module/utils.js +19 -14
  67. package/lib/module/utils.js.map +1 -1
  68. package/lib/module/verify.js +14 -22
  69. package/lib/module/verify.js.map +1 -1
  70. package/lib/typescript/src/bindings.d.ts +3 -0
  71. package/lib/typescript/src/bindings.d.ts.map +1 -1
  72. package/lib/typescript/src/camera.d.ts +15 -0
  73. package/lib/typescript/src/camera.d.ts.map +1 -1
  74. package/lib/typescript/src/capture.d.ts +40 -1
  75. package/lib/typescript/src/capture.d.ts.map +1 -1
  76. package/lib/typescript/src/common.d.ts.map +1 -1
  77. package/lib/typescript/src/generated/zcam1_c2pa_utils-ffi.d.ts +37 -46
  78. package/lib/typescript/src/generated/zcam1_c2pa_utils-ffi.d.ts.map +1 -1
  79. package/lib/typescript/src/generated/zcam1_c2pa_utils.d.ts +110 -8
  80. package/lib/typescript/src/generated/zcam1_c2pa_utils.d.ts.map +1 -1
  81. package/lib/typescript/src/generated/zcam1_certs_utils-ffi.d.ts +27 -32
  82. package/lib/typescript/src/generated/zcam1_certs_utils-ffi.d.ts.map +1 -1
  83. package/lib/typescript/src/generated/zcam1_certs_utils.d.ts.map +1 -1
  84. package/lib/typescript/src/generated/zcam1_common-ffi.d.ts +77 -0
  85. package/lib/typescript/src/generated/zcam1_common-ffi.d.ts.map +1 -0
  86. package/lib/typescript/src/generated/zcam1_common.d.ts +17 -0
  87. package/lib/typescript/src/generated/zcam1_common.d.ts.map +1 -0
  88. package/lib/typescript/src/generated/zcam1_proving_utils-ffi.d.ts +44 -51
  89. package/lib/typescript/src/generated/zcam1_proving_utils-ffi.d.ts.map +1 -1
  90. package/lib/typescript/src/generated/zcam1_proving_utils.d.ts +26 -26
  91. package/lib/typescript/src/generated/zcam1_proving_utils.d.ts.map +1 -1
  92. package/lib/typescript/src/generated/zcam1_verify_utils-ffi.d.ts +29 -34
  93. package/lib/typescript/src/generated/zcam1_verify_utils-ffi.d.ts.map +1 -1
  94. package/lib/typescript/src/generated/zcam1_verify_utils.d.ts +94 -14
  95. package/lib/typescript/src/generated/zcam1_verify_utils.d.ts.map +1 -1
  96. package/lib/typescript/src/index.d.ts +1 -1
  97. package/lib/typescript/src/index.d.ts.map +1 -1
  98. package/lib/typescript/src/proving/NativeZcam1Proving.d.ts +1 -1
  99. package/lib/typescript/src/proving/index.d.ts +1 -1
  100. package/lib/typescript/src/proving/index.d.ts.map +1 -1
  101. package/lib/typescript/src/proving/prove.d.ts +3 -3
  102. package/lib/typescript/src/proving/prove.d.ts.map +1 -1
  103. package/lib/typescript/src/utils.d.ts.map +1 -1
  104. package/lib/typescript/src/verify.d.ts +4 -3
  105. package/lib/typescript/src/verify.d.ts.map +1 -1
  106. package/package.json +13 -6
  107. package/react-native.config.js +11 -0
  108. package/src/bindings.tsx +4 -0
  109. package/src/camera.tsx +116 -11
  110. package/src/capture.tsx +150 -53
  111. package/src/common.tsx +22 -2
  112. package/src/generated/zcam1_c2pa_utils-ffi.ts +42 -56
  113. package/src/generated/zcam1_c2pa_utils.ts +224 -67
  114. package/src/generated/zcam1_certs_utils-ffi.ts +33 -36
  115. package/src/generated/zcam1_certs_utils.ts +27 -24
  116. package/src/generated/zcam1_common-ffi.ts +183 -0
  117. package/src/generated/zcam1_common.ts +116 -0
  118. package/src/generated/zcam1_proving_utils-ffi.ts +54 -67
  119. package/src/generated/zcam1_proving_utils.ts +133 -138
  120. package/src/generated/zcam1_verify_utils-ffi.ts +39 -40
  121. package/src/generated/zcam1_verify_utils.ts +109 -47
  122. package/src/index.ts +1 -1
  123. package/src/proving/NativeZcam1Proving.ts +2 -2
  124. package/src/proving/index.ts +1 -1
  125. package/src/proving/prove.tsx +22 -11
  126. package/src/utils.ts +26 -20
  127. package/src/verify.tsx +25 -42
@@ -21,13 +21,13 @@ class NativeZcam1ProvingUtils : public jsi::HostObject {
21
21
  jsi::Value cpp_uniffi_internal_fn_func_ffi__string_to_byte_length(jsi::Runtime& rt, const jsi::Value& thisVal, const jsi::Value* args, size_t count);
22
22
  jsi::Value cpp_uniffi_internal_fn_func_ffi__string_to_arraybuffer(jsi::Runtime& rt, const jsi::Value& thisVal, const jsi::Value* args, size_t count);
23
23
  jsi::Value cpp_uniffi_internal_fn_func_ffi__arraybuffer_to_string(jsi::Runtime& rt, const jsi::Value& thisVal, const jsi::Value* args, size_t count);
24
- jsi::Value cpp_uniffi_zcam1_proving_utils_fn_clone_iosprovingclient(jsi::Runtime& rt, const jsi::Value& thisVal, const jsi::Value* args, size_t count);
25
- jsi::Value cpp_uniffi_zcam1_proving_utils_fn_free_iosprovingclient(jsi::Runtime& rt, const jsi::Value& thisVal, const jsi::Value* args, size_t count);
26
- jsi::Value cpp_uniffi_zcam1_proving_utils_fn_constructor_iosprovingclient_mock(jsi::Runtime& rt, const jsi::Value& thisVal, const jsi::Value* args, size_t count);
27
- jsi::Value cpp_uniffi_zcam1_proving_utils_fn_constructor_iosprovingclient_new(jsi::Runtime& rt, const jsi::Value& thisVal, const jsi::Value* args, size_t count);
28
- jsi::Value cpp_uniffi_zcam1_proving_utils_fn_method_iosprovingclient_get_proof_status(jsi::Runtime& rt, const jsi::Value& thisVal, const jsi::Value* args, size_t count);
29
- jsi::Value cpp_uniffi_zcam1_proving_utils_fn_method_iosprovingclient_request_proof(jsi::Runtime& rt, const jsi::Value& thisVal, const jsi::Value* args, size_t count);
30
- jsi::Value cpp_uniffi_zcam1_proving_utils_fn_method_iosprovingclient_vk_hash(jsi::Runtime& rt, const jsi::Value& thisVal, const jsi::Value* args, size_t count);
24
+ jsi::Value cpp_uniffi_zcam1_proving_utils_fn_clone_provingclient(jsi::Runtime& rt, const jsi::Value& thisVal, const jsi::Value* args, size_t count);
25
+ jsi::Value cpp_uniffi_zcam1_proving_utils_fn_free_provingclient(jsi::Runtime& rt, const jsi::Value& thisVal, const jsi::Value* args, size_t count);
26
+ jsi::Value cpp_uniffi_zcam1_proving_utils_fn_constructor_provingclient_new(jsi::Runtime& rt, const jsi::Value& thisVal, const jsi::Value* args, size_t count);
27
+ jsi::Value cpp_uniffi_zcam1_proving_utils_fn_constructor_provingclient_simulator(jsi::Runtime& rt, const jsi::Value& thisVal, const jsi::Value* args, size_t count);
28
+ jsi::Value cpp_uniffi_zcam1_proving_utils_fn_method_provingclient_get_proof_status(jsi::Runtime& rt, const jsi::Value& thisVal, const jsi::Value* args, size_t count);
29
+ jsi::Value cpp_uniffi_zcam1_proving_utils_fn_method_provingclient_request_proof(jsi::Runtime& rt, const jsi::Value& thisVal, const jsi::Value* args, size_t count);
30
+ jsi::Value cpp_uniffi_zcam1_proving_utils_fn_method_provingclient_vk_hash(jsi::Runtime& rt, const jsi::Value& thisVal, const jsi::Value* args, size_t count);
31
31
  jsi::Value cpp_uniffi_zcam1_proving_utils_fn_init_callback_vtable_initialized(jsi::Runtime& rt, const jsi::Value& thisVal, const jsi::Value* args, size_t count);
32
32
  jsi::Value cpp_ffi_zcam1_proving_utils_rust_future_poll_u8(jsi::Runtime& rt, const jsi::Value& thisVal, const jsi::Value* args, size_t count);
33
33
  jsi::Value cpp_ffi_zcam1_proving_utils_rust_future_cancel_u8(jsi::Runtime& rt, const jsi::Value& thisVal, const jsi::Value* args, size_t count);
@@ -69,10 +69,6 @@ class NativeZcam1ProvingUtils : public jsi::HostObject {
69
69
  jsi::Value cpp_ffi_zcam1_proving_utils_rust_future_cancel_f64(jsi::Runtime& rt, const jsi::Value& thisVal, const jsi::Value* args, size_t count);
70
70
  jsi::Value cpp_ffi_zcam1_proving_utils_rust_future_free_f64(jsi::Runtime& rt, const jsi::Value& thisVal, const jsi::Value* args, size_t count);
71
71
  jsi::Value cpp_ffi_zcam1_proving_utils_rust_future_complete_f64(jsi::Runtime& rt, const jsi::Value& thisVal, const jsi::Value* args, size_t count);
72
- jsi::Value cpp_ffi_zcam1_proving_utils_rust_future_poll_pointer(jsi::Runtime& rt, const jsi::Value& thisVal, const jsi::Value* args, size_t count);
73
- jsi::Value cpp_ffi_zcam1_proving_utils_rust_future_cancel_pointer(jsi::Runtime& rt, const jsi::Value& thisVal, const jsi::Value* args, size_t count);
74
- jsi::Value cpp_ffi_zcam1_proving_utils_rust_future_free_pointer(jsi::Runtime& rt, const jsi::Value& thisVal, const jsi::Value* args, size_t count);
75
- jsi::Value cpp_ffi_zcam1_proving_utils_rust_future_complete_pointer(jsi::Runtime& rt, const jsi::Value& thisVal, const jsi::Value* args, size_t count);
76
72
  jsi::Value cpp_ffi_zcam1_proving_utils_rust_future_poll_rust_buffer(jsi::Runtime& rt, const jsi::Value& thisVal, const jsi::Value* args, size_t count);
77
73
  jsi::Value cpp_ffi_zcam1_proving_utils_rust_future_cancel_rust_buffer(jsi::Runtime& rt, const jsi::Value& thisVal, const jsi::Value* args, size_t count);
78
74
  jsi::Value cpp_ffi_zcam1_proving_utils_rust_future_free_rust_buffer(jsi::Runtime& rt, const jsi::Value& thisVal, const jsi::Value* args, size_t count);
@@ -81,14 +77,14 @@ class NativeZcam1ProvingUtils : public jsi::HostObject {
81
77
  jsi::Value cpp_ffi_zcam1_proving_utils_rust_future_cancel_void(jsi::Runtime& rt, const jsi::Value& thisVal, const jsi::Value* args, size_t count);
82
78
  jsi::Value cpp_ffi_zcam1_proving_utils_rust_future_free_void(jsi::Runtime& rt, const jsi::Value& thisVal, const jsi::Value* args, size_t count);
83
79
  jsi::Value cpp_ffi_zcam1_proving_utils_rust_future_complete_void(jsi::Runtime& rt, const jsi::Value& thisVal, const jsi::Value* args, size_t count);
84
- jsi::Value cpp_uniffi_zcam1_proving_utils_checksum_method_iosprovingclient_get_proof_status(jsi::Runtime& rt, const jsi::Value& thisVal, const jsi::Value* args, size_t count);
85
- jsi::Value cpp_uniffi_zcam1_proving_utils_checksum_method_iosprovingclient_request_proof(jsi::Runtime& rt, const jsi::Value& thisVal, const jsi::Value* args, size_t count);
86
- jsi::Value cpp_uniffi_zcam1_proving_utils_checksum_method_iosprovingclient_vk_hash(jsi::Runtime& rt, const jsi::Value& thisVal, const jsi::Value* args, size_t count);
87
- jsi::Value cpp_uniffi_zcam1_proving_utils_checksum_constructor_iosprovingclient_mock(jsi::Runtime& rt, const jsi::Value& thisVal, const jsi::Value* args, size_t count);
88
- jsi::Value cpp_uniffi_zcam1_proving_utils_checksum_constructor_iosprovingclient_new(jsi::Runtime& rt, const jsi::Value& thisVal, const jsi::Value* args, size_t count);
80
+ jsi::Value cpp_uniffi_zcam1_proving_utils_checksum_method_provingclient_get_proof_status(jsi::Runtime& rt, const jsi::Value& thisVal, const jsi::Value* args, size_t count);
81
+ jsi::Value cpp_uniffi_zcam1_proving_utils_checksum_method_provingclient_request_proof(jsi::Runtime& rt, const jsi::Value& thisVal, const jsi::Value* args, size_t count);
82
+ jsi::Value cpp_uniffi_zcam1_proving_utils_checksum_method_provingclient_vk_hash(jsi::Runtime& rt, const jsi::Value& thisVal, const jsi::Value* args, size_t count);
83
+ jsi::Value cpp_uniffi_zcam1_proving_utils_checksum_constructor_provingclient_new(jsi::Runtime& rt, const jsi::Value& thisVal, const jsi::Value* args, size_t count);
84
+ jsi::Value cpp_uniffi_zcam1_proving_utils_checksum_constructor_provingclient_simulator(jsi::Runtime& rt, const jsi::Value& thisVal, const jsi::Value* args, size_t count);
89
85
  jsi::Value cpp_uniffi_zcam1_proving_utils_checksum_method_initialized_initialized(jsi::Runtime& rt, const jsi::Value& thisVal, const jsi::Value* args, size_t count);
90
86
  jsi::Value cpp_ffi_zcam1_proving_utils_uniffi_contract_version(jsi::Runtime& rt, const jsi::Value& thisVal, const jsi::Value* args, size_t count);
91
- jsi::Value cpp_uniffi_internal_fn_method_iosprovingclient_ffi__bless_pointer(jsi::Runtime& rt, const jsi::Value& thisVal, const jsi::Value* args, size_t count);
87
+ jsi::Value cpp_uniffi_internal_fn_method_provingclient_ffi__bless_pointer(jsi::Runtime& rt, const jsi::Value& thisVal, const jsi::Value* args, size_t count);
92
88
 
93
89
  public:
94
90
  NativeZcam1ProvingUtils(jsi::Runtime &rt, std::shared_ptr<uniffi_runtime::UniffiCallInvoker> callInvoker);
@@ -1,11 +1,13 @@
1
1
  // Generated by uniffi-bindgen-react-native
2
2
  #include "zcam1-proving.h"
3
+ #include "generated/zcam1_common.hpp"
3
4
  #include "generated/zcam1_proving_utils.hpp"
4
5
 
5
6
  namespace zcam1proving {
6
7
  using namespace facebook;
7
8
 
8
9
  uint8_t installRustCrate(jsi::Runtime &runtime, std::shared_ptr<react::CallInvoker> callInvoker) {
10
+ NativeZcam1Common::registerModule(runtime, callInvoker);
9
11
  NativeZcam1ProvingUtils::registerModule(runtime, callInvoker);
10
12
  return true;
11
13
  }
package/cpp/zcam1-sdk.cpp CHANGED
@@ -2,6 +2,7 @@
2
2
  #include "zcam1-sdk.h"
3
3
  #include "generated/zcam1_c2pa_utils.hpp"
4
4
  #include "generated/zcam1_certs_utils.hpp"
5
+ #include "generated/zcam1_common.hpp"
5
6
  #include "generated/zcam1_verify_utils.hpp"
6
7
 
7
8
  namespace zcam1sdk {
@@ -10,6 +11,7 @@ namespace zcam1sdk {
10
11
  uint8_t installRustCrate(jsi::Runtime &runtime, std::shared_ptr<react::CallInvoker> callInvoker) {
11
12
  NativeZcam1C2paUtils::registerModule(runtime, callInvoker);
12
13
  NativeZcam1CertsUtils::registerModule(runtime, callInvoker);
14
+ NativeZcam1Common::registerModule(runtime, callInvoker);
13
15
  NativeZcam1VerifyUtils::registerModule(runtime, callInvoker);
14
16
  return true;
15
17
  }
@@ -15,6 +15,7 @@ if (!rustInstalled) {
15
15
  // Export the generated bindings to the app.
16
16
  export * from "./generated/zcam1_c2pa_utils.js";
17
17
  export * from "./generated/zcam1_certs_utils.js";
18
+ export * from "./generated/zcam1_common.js";
18
19
  export * from "./generated/zcam1_verify_utils.js";
19
20
 
20
21
  // Now import the bindings so we can:
@@ -22,6 +23,7 @@ export * from "./generated/zcam1_verify_utils.js";
22
23
  // - export them as namespaced objects as the default export.
23
24
  import * as zcam1_c2pa_utils from "./generated/zcam1_c2pa_utils.js";
24
25
  import * as zcam1_certs_utils from "./generated/zcam1_certs_utils.js";
26
+ import * as zcam1_common from "./generated/zcam1_common.js";
25
27
  import * as zcam1_verify_utils from "./generated/zcam1_verify_utils.js";
26
28
 
27
29
  // Initialize the generated bindings: mostly checksums, but also callbacks.
@@ -31,6 +33,7 @@ let initialized = false;
31
33
  if (!initialized) {
32
34
  zcam1_c2pa_utils.default.initialize();
33
35
  zcam1_certs_utils.default.initialize();
36
+ zcam1_common.default.initialize();
34
37
  zcam1_verify_utils.default.initialize();
35
38
  initialized = true;
36
39
  }
@@ -46,6 +49,7 @@ export async function uniffiInitAsync() {
46
49
  export default {
47
50
  zcam1_c2pa_utils,
48
51
  zcam1_certs_utils,
52
+ zcam1_common,
49
53
  zcam1_verify_utils
50
54
  };
51
55
  //# sourceMappingURL=bindings.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["installer","rustInstalled","installRustCrate","zcam1_c2pa_utils","zcam1_certs_utils","zcam1_verify_utils","initialized","default","initialize","uniffiInitAsync"],"sourceRoot":"../../src","sources":["bindings.tsx"],"mappings":";;AAAA;AACA,OAAOA,SAAS,MAAM,qBAAkB;;AAExC;AACA;AACA;AACA,IAAIC,aAAa,GAAG,KAAK;AACzB,IAAI,CAACA,aAAa,EAAE;EAClBD,SAAS,CAACE,gBAAgB,CAAC,CAAC;EAC5BD,aAAa,GAAG,IAAI;AACtB;;AAEA;AACA,cAAc,iCAA8B;AAC5C,cAAc,kCAA+B;AAC7C,cAAc,mCAAgC;;AAE9C;AACA;AACA;AACA,OAAO,KAAKE,gBAAgB,MAAM,iCAA8B;AAChE,OAAO,KAAKC,iBAAiB,MAAM,kCAA+B;AAClE,OAAO,KAAKC,kBAAkB,MAAM,mCAAgC;;AAEpE;AACA;AACA;AACA,IAAIC,WAAW,GAAG,KAAK;AACvB,IAAI,CAACA,WAAW,EAAE;EAChBH,gBAAgB,CAACI,OAAO,CAACC,UAAU,CAAC,CAAC;EACrCJ,iBAAiB,CAACG,OAAO,CAACC,UAAU,CAAC,CAAC;EACtCH,kBAAkB,CAACE,OAAO,CAACC,UAAU,CAAC,CAAC;EACvCF,WAAW,GAAG,IAAI;AACpB;;AAEA;AACA;AACA;AACA,OAAO,eAAeG,eAAeA,CAAA,EAAG;EACtC;AAAA;;AAGF;AACA,eAAe;EACbN,gBAAgB;EAChBC,iBAAiB;EACjBC;AACF,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["installer","rustInstalled","installRustCrate","zcam1_c2pa_utils","zcam1_certs_utils","zcam1_common","zcam1_verify_utils","initialized","default","initialize","uniffiInitAsync"],"sourceRoot":"../../src","sources":["bindings.tsx"],"mappings":";;AAAA;AACA,OAAOA,SAAS,MAAM,qBAAkB;;AAExC;AACA;AACA;AACA,IAAIC,aAAa,GAAG,KAAK;AACzB,IAAI,CAACA,aAAa,EAAE;EAClBD,SAAS,CAACE,gBAAgB,CAAC,CAAC;EAC5BD,aAAa,GAAG,IAAI;AACtB;;AAEA;AACA,cAAc,iCAA8B;AAC5C,cAAc,kCAA+B;AAC7C,cAAc,6BAA0B;AACxC,cAAc,mCAAgC;;AAE9C;AACA;AACA;AACA,OAAO,KAAKE,gBAAgB,MAAM,iCAA8B;AAChE,OAAO,KAAKC,iBAAiB,MAAM,kCAA+B;AAClE,OAAO,KAAKC,YAAY,MAAM,6BAA0B;AACxD,OAAO,KAAKC,kBAAkB,MAAM,mCAAgC;;AAEpE;AACA;AACA;AACA,IAAIC,WAAW,GAAG,KAAK;AACvB,IAAI,CAACA,WAAW,EAAE;EAChBJ,gBAAgB,CAACK,OAAO,CAACC,UAAU,CAAC,CAAC;EACrCL,iBAAiB,CAACI,OAAO,CAACC,UAAU,CAAC,CAAC;EACtCJ,YAAY,CAACG,OAAO,CAACC,UAAU,CAAC,CAAC;EACjCH,kBAAkB,CAACE,OAAO,CAACC,UAAU,CAAC,CAAC;EACvCF,WAAW,GAAG,IAAI;AACpB;;AAEA;AACA;AACA;AACA,OAAO,eAAeG,eAAeA,CAAA,EAAG;EACtC;AAAA;;AAGF;AACA,eAAe;EACbP,gBAAgB;EAChBC,iBAAiB;EACjBC,YAAY;EACZC;AACF,CAAC","ignoreList":[]}
@@ -1,8 +1,10 @@
1
1
  "use strict";
2
2
 
3
+ import Geolocation from "@react-native-community/geolocation";
3
4
  import JailMonkey from "jail-monkey";
4
5
  import React from "react";
5
- import { requireNativeComponent } from "react-native";
6
+ import { Platform, requireNativeComponent } from "react-native";
7
+ import { isEmulator } from "react-native-device-info";
6
8
  import { Dirs, Util } from "react-native-file-access";
7
9
  import { buildSelfSignedCertificate, computeHash, formatFromPath, ManifestEditor } from "./bindings.js";
8
10
  import { ZPhoto } from "./capture.js";
@@ -346,6 +348,13 @@ export class ZCamera extends React.PureComponent {
346
348
  const when = new Date().toISOString().replace("T", " ").split(".")[0];
347
349
  const isJailBroken = JailMonkey.isJailBroken();
348
350
  const isLocationSpoofingAvailable = JailMonkey.canMockLocation();
351
+ const location = await retrieveLocationData(this.props.captureTimestampEnabled, this.props.captureLocationEnabled);
352
+ const authenticityData = {
353
+ isJailBroken,
354
+ isLocationSpoofingAvailable,
355
+ isLocationAvailable: location.isLocationAvailable,
356
+ locationRetrievalStatus: location.locationRetrievalStatus
357
+ };
349
358
  result.filePath = await embedBindings(result.filePath, when, {
350
359
  deviceMake: result.deviceMake,
351
360
  deviceModel: result.deviceModel,
@@ -362,11 +371,10 @@ export class ZCamera extends React.PureComponent {
362
371
  audioCodec: result.audioCodec,
363
372
  audioSampleRate: result.audioSampleRate,
364
373
  audioChannels: result.audioChannels,
365
- authenticityData: {
366
- isJailBroken,
367
- isLocationSpoofingAvailable
368
- },
369
- filmStyle: this.resolveFilmStyleInfo()
374
+ authenticityData,
375
+ filmStyle: this.resolveFilmStyleInfo(),
376
+ trustedTimestamp: location.trustedTimestamp,
377
+ location: location.coords
370
378
  }, this.props.captureInfo, this.certChainPem);
371
379
  return result;
372
380
  } finally {
@@ -404,11 +412,18 @@ export class ZCamera extends React.PureComponent {
404
412
  const exif = metadata["{Exif}"] ?? {};
405
413
  const tiff = metadata["{TIFF}"] ?? {};
406
414
  const when = tiff.DateTime || new Date().toISOString().replace("T", " ").split(".")[0];
407
- const deviceMake = tiff.Make || "Apple";
415
+ const deviceMake = tiff.Make || (Platform.OS === "android" ? "Android" : "Apple");
408
416
  const deviceModel = tiff.Model || "Unknown";
409
417
  const softwareVersion = tiff.Software || "Unknown";
410
418
  const isJailBroken = JailMonkey.isJailBroken();
411
419
  const isLocationSpoofingAvailable = JailMonkey.canMockLocation();
420
+ const location = await retrieveLocationData(this.props.captureTimestampEnabled, this.props.captureLocationEnabled);
421
+ const authenticityData = {
422
+ isJailBroken,
423
+ isLocationSpoofingAvailable,
424
+ isLocationAvailable: location.isLocationAvailable,
425
+ locationRetrievalStatus: location.locationRetrievalStatus
426
+ };
412
427
  const destinationPath = await embedBindings(originalPath, when, {
413
428
  deviceMake: deviceMake,
414
429
  deviceModel: deviceModel,
@@ -420,12 +435,11 @@ export class ZCamera extends React.PureComponent {
420
435
  exposureTime: exif.ExposureTime,
421
436
  depthOfField: exif.FNumber,
422
437
  focalLength: exif.FocalLength,
423
- authenticityData: {
424
- isJailBroken,
425
- isLocationSpoofingAvailable
426
- },
438
+ authenticityData,
427
439
  depthData: result.depthData,
428
- filmStyle: this.resolveFilmStyleInfo()
440
+ filmStyle: this.resolveFilmStyleInfo(),
441
+ trustedTimestamp: location.trustedTimestamp,
442
+ location: location.coords
429
443
  }, this.props.captureInfo, this.certChainPem);
430
444
  return new ZPhoto(originalPath, destinationPath);
431
445
  }
@@ -487,7 +501,11 @@ async function embedBindings(originalPath, when, metadata, captureInfo, certChai
487
501
  throw new Error(`Unsupported file format: ${originalPath}`);
488
502
  }
489
503
  const destinationPath = Dirs.CacheDir + `/zcam-${Date.now()}-${Math.random().toString(36).slice(2, 10)}.${ext}`;
490
- const manifestEditor = new ManifestEditor(originalPath, captureInfo.contentKeyId.buffer, certChainPem);
504
+
505
+ // On Android, pass the KeyStore alias so Rust signs via JNI.
506
+ // On iOS, pass the contentKeyId (SHA1 of public key) so Rust signs via Secure Enclave.
507
+ const keyTag = Platform.OS === "android" ? new TextEncoder().encode((await isEmulator()) ? "ZCAM1_MOCK_CONTENT_KEY_TAG" : "ZCAM1_CONTENT_KEY_TAG") : captureInfo.contentKeyId;
508
+ const manifestEditor = new ManifestEditor(originalPath, keyTag.buffer, certChainPem);
491
509
 
492
510
  // Add the "capture" action to the manifest.
493
511
  let normalizedMetadata = undefined;
@@ -510,4 +528,44 @@ async function embedBindings(originalPath, when, metadata, captureInfo, certChai
510
528
  await manifestEditor.embedManifestToFile(destinationPath, format);
511
529
  return destinationPath;
512
530
  }
531
+ function retrieveLocationData(captureTimestampEnabled, captureLocationEnabled) {
532
+ if (!captureTimestampEnabled && !captureLocationEnabled) {
533
+ return Promise.resolve({
534
+ coords: undefined,
535
+ trustedTimestamp: undefined,
536
+ isLocationAvailable: undefined,
537
+ locationRetrievalStatus: undefined
538
+ });
539
+ }
540
+ return new Promise(resolve => {
541
+ Geolocation.getCurrentPosition(position => {
542
+ resolve({
543
+ coords: captureLocationEnabled ? {
544
+ latitude: position.coords.latitude.toFixed(6),
545
+ longitude: position.coords.longitude.toFixed(6),
546
+ altitude: position.coords.altitude?.toFixed(6),
547
+ accuracy: position.coords.accuracy.toFixed(6),
548
+ altitudeAccuracy: position.coords.altitudeAccuracy?.toFixed(6)
549
+ } : undefined,
550
+ trustedTimestamp: captureTimestampEnabled ? BigInt(Math.trunc(position.timestamp)) : undefined,
551
+ isLocationAvailable: true,
552
+ locationRetrievalStatus: "success"
553
+ });
554
+ }, error => {
555
+ console.warn(`[ZCAM1] failed to retrieve GPS location data: ${error.message}`);
556
+ resolve({
557
+ coords: undefined,
558
+ trustedTimestamp: undefined,
559
+ isLocationAvailable: false,
560
+ locationRetrievalStatus: error.message
561
+ });
562
+ }, {
563
+ timeout: 1000,
564
+ // 1 second
565
+ maximumAge: 60 * 1000,
566
+ // 1 minute
567
+ enableHighAccuracy: true
568
+ });
569
+ });
570
+ }
513
571
  //# sourceMappingURL=camera.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["JailMonkey","React","requireNativeComponent","Dirs","Util","buildSelfSignedCertificate","computeHash","formatFromPath","ManifestEditor","ZPhoto","NativeZcam1Sdk","generateAppAttestAssertion","stripFileProtocol","jsx","_jsx","CERT_KEY_TAG","DEFAULT_FILM_STYLE_RECIPES","normal","mellow","type","config","temperature","tint","value","highlights","shadows","nostalgic","bw","intensity","color","r","g","b","Zcam1CameraView","ZCamera","PureComponent","nativeRef","createRef","recordingInProgress","lastVideoStartResult","constructor","props","certChainPem","certChain","pem","console","warn","captureInfo","contentPublicKey","resolveFilmStyleInfo","filmStyle","filmStyleOverrides","customFilmStyles","isOverride","undefined","isCustom","source","recipe","name","JSON","stringify","getMinZoom","getMaxZoom","getSwitchOverZoomFactors","hasUltraWideCamera","getExposureRange","resetExposure","focusAtPoint","x","y","setZoomAnimated","factor","getDeviceDiagnostics","isDepthSupported","hasDepthZoomLimitations","getDepthSupportedZoomRanges","startVideoRecording","position","options","Error","result","startNativeVideoRecording","maxDurationSeconds","e","stopVideoRecording","stopNativeVideoRecording","when","Date","toISOString","replace","split","isJailBroken","isLocationSpoofingAvailable","canMockLocation","filePath","embedBindings","deviceMake","deviceModel","softwareVersion","format","hasAudio","durationSeconds","fileSizeBytes","width","height","rotationDegrees","frameRate","videoCodec","audioCodec","audioSampleRate","audioChannels","authenticityData","takePhoto","captureFormat","flash","includeDepthData","aspectRatio","orientation","takeNativePhoto","originalPath","metadata","exif","tiff","DateTime","Make","Model","Software","destinationPath","xResolution","PixelXDimension","yResolution","PixelYDimension","Orientation","iso","ISOSpeedRatings","toString","exposureTime","ExposureTime","depthOfField","FNumber","focalLength","FocalLength","depthData","render","isActive","zoom","torch","exposure","depthEnabled","onOrientationChange","style","mergedFilmStyleOverrides","ref","flex","event","nativeEvent","dataHash","ext","extname","CacheDir","now","Math","random","slice","manifestEditor","contentKeyId","buffer","normalizedMetadata","indexOf","addPhotoMetadataAction","addVideoMetadataAction","assertion","deviceKeyId","addAssertion","app_id","appId","device_key_id","attestation","embedManifestToFile"],"sourceRoot":"../../src","sources":["camera.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["Geolocation","JailMonkey","React","Platform","requireNativeComponent","isEmulator","Dirs","Util","buildSelfSignedCertificate","computeHash","formatFromPath","ManifestEditor","ZPhoto","NativeZcam1Sdk","generateAppAttestAssertion","stripFileProtocol","jsx","_jsx","CERT_KEY_TAG","DEFAULT_FILM_STYLE_RECIPES","normal","mellow","type","config","temperature","tint","value","highlights","shadows","nostalgic","bw","intensity","color","r","g","b","Zcam1CameraView","ZCamera","PureComponent","nativeRef","createRef","recordingInProgress","lastVideoStartResult","constructor","props","certChainPem","certChain","pem","console","warn","captureInfo","contentPublicKey","resolveFilmStyleInfo","filmStyle","filmStyleOverrides","customFilmStyles","isOverride","undefined","isCustom","source","recipe","name","JSON","stringify","getMinZoom","getMaxZoom","getSwitchOverZoomFactors","hasUltraWideCamera","getExposureRange","resetExposure","focusAtPoint","x","y","setZoomAnimated","factor","getDeviceDiagnostics","isDepthSupported","hasDepthZoomLimitations","getDepthSupportedZoomRanges","startVideoRecording","position","options","Error","result","startNativeVideoRecording","maxDurationSeconds","e","stopVideoRecording","stopNativeVideoRecording","when","Date","toISOString","replace","split","isJailBroken","isLocationSpoofingAvailable","canMockLocation","location","retrieveLocationData","captureTimestampEnabled","captureLocationEnabled","authenticityData","isLocationAvailable","locationRetrievalStatus","filePath","embedBindings","deviceMake","deviceModel","softwareVersion","format","hasAudio","durationSeconds","fileSizeBytes","width","height","rotationDegrees","frameRate","videoCodec","audioCodec","audioSampleRate","audioChannels","trustedTimestamp","coords","takePhoto","captureFormat","flash","includeDepthData","aspectRatio","orientation","takeNativePhoto","originalPath","metadata","exif","tiff","DateTime","Make","OS","Model","Software","destinationPath","xResolution","PixelXDimension","yResolution","PixelYDimension","Orientation","iso","ISOSpeedRatings","toString","exposureTime","ExposureTime","depthOfField","FNumber","focalLength","FocalLength","depthData","render","isActive","zoom","torch","exposure","depthEnabled","onOrientationChange","style","mergedFilmStyleOverrides","ref","flex","event","nativeEvent","dataHash","ext","extname","CacheDir","now","Math","random","slice","keyTag","TextEncoder","encode","contentKeyId","manifestEditor","buffer","normalizedMetadata","indexOf","addPhotoMetadataAction","addVideoMetadataAction","assertion","deviceKeyId","addAssertion","app_id","appId","device_key_id","attestation","embedManifestToFile","Promise","resolve","getCurrentPosition","latitude","toFixed","longitude","altitude","accuracy","altitudeAccuracy","BigInt","trunc","timestamp","error","message","timeout","maximumAge","enableHighAccuracy"],"sourceRoot":"../../src","sources":["camera.tsx"],"mappings":"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","ignoreList":[]}
@@ -1,14 +1,19 @@
1
1
  "use strict";
2
2
 
3
- import { generateHardwareKey, getAttestation } from "@pagopa/io-react-native-integrity";
3
+ import { getPublicKeyFixed, isKeyStrongboxBacked, sign as cryptoSign } from "@pagopa/io-react-native-crypto";
4
+ import { generateHardwareKey, getAttestation, isPlayServicesAvailable } from "@pagopa/io-react-native-integrity";
5
+ import Geolocation from "@react-native-community/geolocation";
6
+ import { PermissionsAndroid, Platform } from "react-native";
7
+ import { getBundleId, isEmulator } from "react-native-device-info";
4
8
  import EncryptedStorage from "react-native-encrypted-storage";
5
9
  import { getContentPublicKey, getSecureEnclaveKeyId } from "./common.js";
6
10
  export { buildSelfSignedCertificate, SelfSignedCertChain } from "./bindings.js";
7
11
 
8
12
  /**
9
13
  * Camera component for capturing photos with secure enclave integration.
14
+ * Lazy-loaded to avoid native module errors on platforms without camera support.
10
15
  */
11
- export { ZCamera } from "./camera.js";
16
+
12
17
  import NativeZcam1Capture from "./NativeZcam1Capture.js";
13
18
 
14
19
  /**
@@ -52,42 +57,59 @@ export class ZPhoto {
52
57
  * @returns Device information including keys, certificate chain, and attestation
53
58
  */
54
59
  export async function initCapture(settings) {
55
- let deviceKeyId = await EncryptedStorage.getItem(`deviceKeyId-${settings.appId}`);
56
60
  const contentPublicKey = await getContentPublicKey();
61
+ const isSimulator = await isEmulator();
62
+
63
+ // On Android, the appId is the package name.
64
+ const appId = Platform.OS == "android" ? getBundleId() : settings.appId;
57
65
  if (contentPublicKey.kty !== "EC") {
58
66
  throw new Error("Only EC public keys are supported");
59
67
  }
60
68
  const contentKeyId = getSecureEnclaveKeyId(contentPublicKey);
61
- if (deviceKeyId == null) {
62
- // Try to generate hardware key, but fall back to mock for simulator
63
- try {
64
- deviceKeyId = await generateHardwareKey();
65
- } catch (error) {
66
- // If running in simulator, hardware key generation is not supported
67
- const err = error;
68
- if (err?.code === "-1" || err?.message?.includes("UNSUPPORTED_SERVICE")) {
69
- console.warn("[ZCAM] Running in simulator - using mock device key. This is for development only.");
70
- // Generate a mock device key for simulator testing
71
- deviceKeyId = `SIMULATOR_DEVICE_KEY_${Date.now()}`;
72
- } else {
73
- throw error;
74
- }
69
+ let deviceKeyId = await EncryptedStorage.getItem(`deviceKeyId-${settings.appId}`);
70
+ let attestation = deviceKeyId ? await EncryptedStorage.getItem(`attestation-${deviceKeyId}`) : null;
71
+ if (deviceKeyId == null || attestation == null) {
72
+ switch (Platform.OS) {
73
+ case "android":
74
+ // On Android, getAttestation() creates the key AND returns the attestation
75
+ // certificate chain in a single call. generateHardwareKey() is iOS-only.
76
+ deviceKeyId = `ZCAM1_ANDROID_DEVICE_${appId}`;
77
+ if (isSimulator) {
78
+ // Emulator or device without Play Integrity support — use mock attestation.
79
+ console.warn("[ZCAM] Play Integrity not available - using mock attestation. This is for development only.");
80
+ attestation = `SIMULATOR_MOCK_${deviceKeyId}_${Date.now()}`;
81
+ } else {
82
+ attestation = await getAttestation(deviceKeyId, deviceKeyId);
83
+ }
84
+ break;
85
+ case "ios":
86
+ case "macos":
87
+ // iOS: generate key first, then attest separately
88
+ if (deviceKeyId == null) {
89
+ if (isSimulator) {
90
+ console.warn("[ZCAM] Running in simulator - using mock device key. This is for development only.");
91
+ deviceKeyId = `SIMULATOR_DEVICE_KEY_${Date.now()}`;
92
+ } else {
93
+ deviceKeyId = await generateHardwareKey();
94
+ }
95
+ }
96
+ attestation = await updateRegistration(deviceKeyId, settings);
97
+ break;
98
+ default:
99
+ throw new Error(`initCapture: ${Platform.OS} not supported`);
75
100
  }
76
101
  await EncryptedStorage.setItem(`deviceKeyId-${settings.appId}`, deviceKeyId);
102
+ await EncryptedStorage.setItem(`attestation-${deviceKeyId}`, attestation);
77
103
  }
78
104
  if (deviceKeyId == null) {
79
105
  throw new Error("Failed to generate a device key");
80
106
  }
81
- let attestation = await EncryptedStorage.getItem(`attestation-${deviceKeyId}`);
82
- if (attestation == null) {
83
- attestation = await updateRegistration(deviceKeyId, settings);
84
- }
85
107
  return {
86
- appId: settings.appId,
108
+ appId,
87
109
  deviceKeyId,
88
110
  contentPublicKey,
89
111
  contentKeyId,
90
- attestation
112
+ attestation: attestation
91
113
  };
92
114
  }
93
115
 
@@ -98,23 +120,78 @@ export async function initCapture(settings) {
98
120
  * @returns Attestation data and challenge
99
121
  */
100
122
  export async function updateRegistration(keyId, _settings) {
101
- // Try to get real attestation, but fall back to mock for simulator
102
- let attestation;
103
- try {
104
- attestation = await getAttestation(keyId, keyId);
105
- } catch (error) {
106
- // If running in simulator, App Attest is not supported
107
- const err = error;
108
- if (err?.code === "-1" || err?.message?.includes("UNSUPPORTED_SERVICE")) {
109
- console.warn("[ZCAM] Running in simulator - using mock attestation. This is for development only.");
110
- // Use a mock attestation for simulator testing
111
- // In production, this would need to be rejected by the backend
112
- return `SIMULATOR_MOCK_${keyId}_${Date.now()}`;
113
- } else {
114
- throw error;
115
- }
123
+ const isSimulator = await isEmulator();
124
+ if (isSimulator) {
125
+ console.warn("[ZCAM] Running in simulator - using mock attestation. This is for development only.");
126
+ return `SIMULATOR_MOCK_${keyId}_${Date.now()}`;
116
127
  }
128
+ const attestation = await getAttestation(keyId, keyId);
117
129
  await EncryptedStorage.setItem(`attestation-${keyId}`, attestation);
118
130
  return attestation;
119
131
  }
132
+
133
+ /**
134
+ * Requests camera (and microphone) permissions on Android.
135
+ * No-op on iOS — the system prompts automatically when the camera is accessed.
136
+ */
137
+ export async function requestCameraPermission() {
138
+ if (Platform.OS !== "android") return;
139
+ await PermissionsAndroid.requestMultiple([PermissionsAndroid.PERMISSIONS.CAMERA, PermissionsAndroid.PERMISSIONS.RECORD_AUDIO]);
140
+ }
141
+
142
+ /**
143
+ * Requests location permission from the user.
144
+ * This function triggers the native location authorization prompt on the device.
145
+ * @throws {string} Error message if permission request fails
146
+ */
147
+ export function requestLocationPermission() {
148
+ Geolocation.requestAuthorization(() => {}, error => {
149
+ throw error.message;
150
+ });
151
+ }
152
+
153
+ /**
154
+ * Sign a message with the device hardware key.
155
+ * Uses SHA256withECDSA on Android (Android KeyStore) or SecureEnclave on iOS.
156
+ * @param deviceKeyId - The key alias/tag from initCapture().deviceKeyId
157
+ * @param message - The UTF-8 string message to sign
158
+ * @returns Base64-encoded ECDSA signature
159
+ */
160
+ export async function signWithDeviceKey(deviceKeyId, message) {
161
+ return cryptoSign(message, deviceKeyId);
162
+ }
163
+
164
+ /**
165
+ * Get the public key for a device key in JWK format.
166
+ * @param deviceKeyId - The key alias/tag from initCapture().deviceKeyId
167
+ * @returns The public key as an ECKey (JWK format with x, y coordinates)
168
+ */
169
+ export async function getDevicePublicKey(deviceKeyId) {
170
+ const key = await getPublicKeyFixed(deviceKeyId);
171
+ if (key.kty !== "EC") {
172
+ throw new Error("Expected EC key, got " + key.kty);
173
+ }
174
+ return key;
175
+ }
176
+
177
+ /**
178
+ * Check if the device key is backed by StrongBox (highest hardware security level).
179
+ * Only meaningful on Android. Returns false on iOS.
180
+ * @param deviceKeyId - The key alias/tag from initCapture().deviceKeyId
181
+ * @returns true if StrongBox-backed, false if TEE-backed or unsupported
182
+ */
183
+ export async function isDeviceKeyStrongboxBacked(deviceKeyId) {
184
+ if (Platform.OS !== "android") return false;
185
+ return isKeyStrongboxBacked(deviceKeyId);
186
+ }
187
+
188
+ /**
189
+ * Check if Google Play Services is available (Android only).
190
+ * Required for Play Integrity token requests.
191
+ * @returns true if Play Services available, false otherwise. Always false on iOS.
192
+ */
193
+ export async function checkPlayServicesAvailable() {
194
+ if (Platform.OS !== "android") return false;
195
+ return isPlayServicesAvailable();
196
+ }
120
197
  //# sourceMappingURL=capture.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["generateHardwareKey","getAttestation","EncryptedStorage","getContentPublicKey","getSecureEnclaveKeyId","buildSelfSignedCertificate","SelfSignedCertChain","ZCamera","NativeZcam1Capture","previewFile","filePath","ZPhoto","constructor","originalPath","path","initCapture","settings","deviceKeyId","getItem","appId","contentPublicKey","kty","Error","contentKeyId","error","err","code","message","includes","console","warn","Date","now","setItem","attestation","updateRegistration","keyId","_settings"],"sourceRoot":"../../src","sources":["capture.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["getPublicKeyFixed","isKeyStrongboxBacked","sign","cryptoSign","generateHardwareKey","getAttestation","isPlayServicesAvailable","Geolocation","PermissionsAndroid","Platform","getBundleId","isEmulator","EncryptedStorage","getContentPublicKey","getSecureEnclaveKeyId","buildSelfSignedCertificate","SelfSignedCertChain","NativeZcam1Capture","previewFile","filePath","ZPhoto","constructor","originalPath","path","initCapture","settings","contentPublicKey","isSimulator","appId","OS","kty","Error","contentKeyId","deviceKeyId","getItem","attestation","console","warn","Date","now","updateRegistration","setItem","keyId","_settings","requestCameraPermission","requestMultiple","PERMISSIONS","CAMERA","RECORD_AUDIO","requestLocationPermission","requestAuthorization","error","message","signWithDeviceKey","getDevicePublicKey","key","isDeviceKeyStrongboxBacked","checkPlayServicesAvailable"],"sourceRoot":"../../src","sources":["capture.tsx"],"mappings":"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","ignoreList":[]}
@@ -3,7 +3,18 @@
3
3
  import { sha1 } from "@noble/hashes/legacy.js";
4
4
  import { generate, getPublicKeyFixed } from "@pagopa/io-react-native-crypto";
5
5
  import { base64, base64nopad, base64url, base64urlnopad } from "@scure/base";
6
+ import { Platform } from "react-native";
7
+ import { isEmulator } from "react-native-device-info";
6
8
  const CONTENT_KEY_TAG = "ZCAM1_CONTENT_KEY_TAG";
9
+
10
+ // Mock P-256 key used on emulators where hardware-backed key generation is unavailable.
11
+ // Public key coordinates correspond to MOCK_KEY in crates/c2pa-utils/src/manifest_editor.rs.
12
+ const MOCK_EMULATOR_CONTENT_KEY = {
13
+ kty: "EC",
14
+ crv: "P-256",
15
+ x: "hcUZSvoPr0QDDmC0CwMFLgGcHUTas1g4RXET2nFv_BA",
16
+ y: "v5WB7DJhhKed3SmZpO8hVJQXRUSOzNSxrfnQ9kv1zTg"
17
+ };
7
18
  // Flexible base64 decoder that handles both standard and url-safe formats, with or without padding.
8
19
  // iOS Secure Enclave returns keys in varying formats depending on the iOS version.
9
20
  function flexibleBase64Decode(str) {
@@ -15,8 +26,13 @@ function flexibleBase64Decode(str) {
15
26
  return hasPadding ? base64.decode(str) : base64nopad.decode(str);
16
27
  }
17
28
  export async function getContentPublicKey() {
18
- return await getPublicKeyFixed(CONTENT_KEY_TAG).catch(() => {
19
- return generate(CONTENT_KEY_TAG);
29
+ const isAndroidEmulator = await isEmulator().then(isEmulator => isEmulator && Platform.OS === "android");
30
+ if (isAndroidEmulator) {
31
+ return MOCK_EMULATOR_CONTENT_KEY;
32
+ }
33
+ return await getPublicKeyFixed(CONTENT_KEY_TAG).catch(async () => {
34
+ await generate(CONTENT_KEY_TAG);
35
+ return getPublicKeyFixed(CONTENT_KEY_TAG);
20
36
  });
21
37
  }
22
38
  export function getSecureEnclaveKeyId(publicKey) {
@@ -1 +1 @@
1
- {"version":3,"names":["sha1","generate","getPublicKeyFixed","base64","base64nopad","base64url","base64urlnopad","CONTENT_KEY_TAG","flexibleBase64Decode","str","isUrlSafe","includes","hasPadding","decode","getContentPublicKey","catch","getSecureEnclaveKeyId","publicKey","kty","x","y","out","Uint8Array","length","set","Error"],"sourceRoot":"../../src","sources":["common.tsx"],"mappings":";;AAAA,SAASA,IAAI,QAAQ,yBAAyB;AAC9C,SAASC,QAAQ,EAAEC,iBAAiB,QAAwB,gCAAgC;AAC5F,SAASC,MAAM,EAAEC,WAAW,EAAEC,SAAS,EAAEC,cAAc,QAAQ,aAAa;AAE5E,MAAMC,eAAe,GAAG,uBAAuB;AAS/C;AACA;AACA,SAASC,oBAAoBA,CAACC,GAAW,EAAc;EACrD,MAAMC,SAAS,GAAGD,GAAG,CAACE,QAAQ,CAAC,GAAG,CAAC,IAAIF,GAAG,CAACE,QAAQ,CAAC,GAAG,CAAC;EACxD,MAAMC,UAAU,GAAGH,GAAG,CAACE,QAAQ,CAAC,GAAG,CAAC;EAEpC,IAAID,SAAS,EAAE;IACb,OAAOE,UAAU,GAAGP,SAAS,CAACQ,MAAM,CAACJ,GAAG,CAAC,GAAGH,cAAc,CAACO,MAAM,CAACJ,GAAG,CAAC;EACxE;EACA,OAAOG,UAAU,GAAGT,MAAM,CAACU,MAAM,CAACJ,GAAG,CAAC,GAAGL,WAAW,CAACS,MAAM,CAACJ,GAAG,CAAC;AAClE;AAEA,OAAO,eAAeK,mBAAmBA,CAAA,EAAuB;EAC9D,OAAO,MAAMZ,iBAAiB,CAACK,eAAe,CAAC,CAACQ,KAAK,CAAC,MAAM;IAC1D,OAAOd,QAAQ,CAACM,eAAe,CAAC;EAClC,CAAC,CAAC;AACJ;AAEA,OAAO,SAASS,qBAAqBA,CAACC,SAAgB,EAAc;EAClE,IAAIA,SAAS,CAACC,GAAG,KAAK,IAAI,EAAE;IAC1B,MAAMC,CAAC,GAAGX,oBAAoB,CAACS,SAAS,CAACE,CAAC,CAAC;IAC3C,MAAMC,CAAC,GAAGZ,oBAAoB,CAACS,SAAS,CAACG,CAAC,CAAC;IAE3C,MAAMC,GAAG,GAAG,IAAIC,UAAU,CAAC,CAAC,GAAGH,CAAC,CAACI,MAAM,GAAGH,CAAC,CAACG,MAAM,CAAC;IACnDF,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IACfA,GAAG,CAACG,GAAG,CAACL,CAAC,EAAE,CAAC,CAAC;IACbE,GAAG,CAACG,GAAG,CAACJ,CAAC,EAAE,CAAC,GAAGD,CAAC,CAACI,MAAM,CAAC;IAExB,OAAOvB,IAAI,CAACqB,GAAG,CAAC;EAClB,CAAC,MAAM;IACL,MAAM,IAAII,KAAK,CAAC,kBAAkB,CAAC;EACrC;AACF","ignoreList":[]}
1
+ {"version":3,"names":["sha1","generate","getPublicKeyFixed","base64","base64nopad","base64url","base64urlnopad","Platform","isEmulator","CONTENT_KEY_TAG","MOCK_EMULATOR_CONTENT_KEY","kty","crv","x","y","flexibleBase64Decode","str","isUrlSafe","includes","hasPadding","decode","getContentPublicKey","isAndroidEmulator","then","OS","catch","getSecureEnclaveKeyId","publicKey","out","Uint8Array","length","set","Error"],"sourceRoot":"../../src","sources":["common.tsx"],"mappings":";;AAAA,SAASA,IAAI,QAAQ,yBAAyB;AAC9C,SAASC,QAAQ,EAAEC,iBAAiB,QAAwB,gCAAgC;AAC5F,SAASC,MAAM,EAAEC,WAAW,EAAEC,SAAS,EAAEC,cAAc,QAAQ,aAAa;AAC5E,SAASC,QAAQ,QAAQ,cAAc;AACvC,SAASC,UAAU,QAAQ,0BAA0B;AAErD,MAAMC,eAAe,GAAG,uBAAuB;;AAE/C;AACA;AACA,MAAMC,yBAAyB,GAAG;EAChCC,GAAG,EAAE,IAAa;EAClBC,GAAG,EAAE,OAAO;EACZC,CAAC,EAAE,6CAA6C;EAChDC,CAAC,EAAE;AACL,CAAC;AASD;AACA;AACA,SAASC,oBAAoBA,CAACC,GAAW,EAAc;EACrD,MAAMC,SAAS,GAAGD,GAAG,CAACE,QAAQ,CAAC,GAAG,CAAC,IAAIF,GAAG,CAACE,QAAQ,CAAC,GAAG,CAAC;EACxD,MAAMC,UAAU,GAAGH,GAAG,CAACE,QAAQ,CAAC,GAAG,CAAC;EAEpC,IAAID,SAAS,EAAE;IACb,OAAOE,UAAU,GAAGd,SAAS,CAACe,MAAM,CAACJ,GAAG,CAAC,GAAGV,cAAc,CAACc,MAAM,CAACJ,GAAG,CAAC;EACxE;EACA,OAAOG,UAAU,GAAGhB,MAAM,CAACiB,MAAM,CAACJ,GAAG,CAAC,GAAGZ,WAAW,CAACgB,MAAM,CAACJ,GAAG,CAAC;AAClE;AAEA,OAAO,eAAeK,mBAAmBA,CAAA,EAAuB;EAC9D,MAAMC,iBAAiB,GAAG,MAAMd,UAAU,CAAC,CAAC,CAACe,IAAI,CAC9Cf,UAAU,IAAKA,UAAU,IAAID,QAAQ,CAACiB,EAAE,KAAK,SAChD,CAAC;EAED,IAAIF,iBAAiB,EAAE;IACrB,OAAOZ,yBAAyB;EAClC;EAEA,OAAO,MAAMR,iBAAiB,CAACO,eAAe,CAAC,CAACgB,KAAK,CAAC,YAAY;IAChE,MAAMxB,QAAQ,CAACQ,eAAe,CAAC;IAC/B,OAAOP,iBAAiB,CAACO,eAAe,CAAC;EAC3C,CAAC,CAAC;AACJ;AAEA,OAAO,SAASiB,qBAAqBA,CAACC,SAAgB,EAAc;EAClE,IAAIA,SAAS,CAAChB,GAAG,KAAK,IAAI,EAAE;IAC1B,MAAME,CAAC,GAAGE,oBAAoB,CAACY,SAAS,CAACd,CAAC,CAAC;IAC3C,MAAMC,CAAC,GAAGC,oBAAoB,CAACY,SAAS,CAACb,CAAC,CAAC;IAE3C,MAAMc,GAAG,GAAG,IAAIC,UAAU,CAAC,CAAC,GAAGhB,CAAC,CAACiB,MAAM,GAAGhB,CAAC,CAACgB,MAAM,CAAC;IACnDF,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IACfA,GAAG,CAACG,GAAG,CAAClB,CAAC,EAAE,CAAC,CAAC;IACbe,GAAG,CAACG,GAAG,CAACjB,CAAC,EAAE,CAAC,GAAGD,CAAC,CAACiB,MAAM,CAAC;IAExB,OAAO9B,IAAI,CAAC4B,GAAG,CAAC;EAClB,CAAC,MAAM;IACL,MAAM,IAAII,KAAK,CAAC,kBAAkB,CAAC;EACrC;AACF","ignoreList":[]}
@@ -3,6 +3,10 @@
3
3
  // This file was autogenerated by some hot garbage in the `uniffi-bindgen-react-native` crate.
4
4
  // Trust me, you don't want to mess with it!
5
5
 
6
+ /* tslint:disable */
7
+ /* eslint-disable */
8
+ // @ts-nocheck
9
+
6
10
  // Casting globalThis to any allows us to look for `NativeZcam1C2paUtils`
7
11
  // if it was added via JSI.
8
12
  //