@procivis/react-native-one-core 1.77931.0 → 1.81885.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (164) hide show
  1. package/README.md +15 -14
  2. package/android/build.gradle +0 -11
  3. package/android/src/main/java/ch/procivis/one/core/ProcivisOneCoreModule.kt +4 -4
  4. package/android/src/main/java/ch/procivis/one/core/SerializeSpecific.kt +128 -67
  5. package/android/src/main/java/ch/procivis/one/core/ubiqu/PinPadViewManager.kt +5 -8
  6. package/android/src/main/java/ch/procivis/one/core/ubiqu/UbiquKeyStorage.kt +17 -222
  7. package/core-sdk.json +6 -6
  8. package/dist/index.d.ts +1 -0
  9. package/dist/index.js +1 -0
  10. package/dist/src/config.d.ts +3 -2
  11. package/dist/src/config.js +5 -0
  12. package/dist/src/core.d.ts +5 -182
  13. package/dist/src/core.js +5 -19
  14. package/dist/src/nfc.d.ts +0 -5
  15. package/dist/src/one-core-uniffi-intf.d.ts +1773 -0
  16. package/dist/src/one-core-uniffi-intf.js +356 -0
  17. package/ios/ProcivisOneCoreModule.m +4 -4
  18. package/ios/ProcivisOneCoreModule.swift +10 -10
  19. package/ios/RSEKeyStorage.swift +17 -571
  20. package/ios/RSEPinPad.swift +3 -56
  21. package/ios/Serialize.swift +80 -27
  22. package/package.json +4 -2
  23. package/react-native-one-core.podspec +1 -1
  24. package/android/build.gradle_opensource +0 -122
  25. package/android/libs/core-reactnative-compatible-2025.0305.1.aar +0 -0
  26. package/android/src/main/java/ch/procivis/one/core/ubiqu/PinPadRunner.kt +0 -123
  27. package/android/src/main/java/ch/procivis/one/core/ubiqu/PinPadViewManager.kt_opensource +0 -20
  28. package/android/src/main/java/ch/procivis/one/core/ubiqu/PinPadWrapper.kt +0 -396
  29. package/android/src/main/java/ch/procivis/one/core/ubiqu/RegistrationManager.kt +0 -59
  30. package/android/src/main/java/ch/procivis/one/core/ubiqu/TokenManager.kt +0 -48
  31. package/android/src/main/java/ch/procivis/one/core/ubiqu/UbiquKeyStorage.kt_opensource +0 -63
  32. package/android/src/main/java/ch/procivis/one/core/ubiqu/Util.kt +0 -74
  33. package/android/src/main/java/ch/procivis/one/core/ubiqu/dataformats/CreateIdentityRequest.kt +0 -9
  34. package/android/src/main/java/ch/procivis/one/core/ubiqu/dataformats/CreateIdentityResponse.kt +0 -9
  35. package/android/src/main/java/ch/procivis/one/core/ubiqu/dataformats/RegisterRSEResponse.kt +0 -10
  36. package/dist/src/backup.d.ts +0 -22
  37. package/dist/src/backup.js +0 -1
  38. package/dist/src/cache.d.ts +0 -11
  39. package/dist/src/cache.js +0 -12
  40. package/dist/src/credential.d.ts +0 -177
  41. package/dist/src/credential.js +0 -44
  42. package/dist/src/credentialSchema.d.ts +0 -135
  43. package/dist/src/credentialSchema.js +0 -34
  44. package/dist/src/did.d.ts +0 -63
  45. package/dist/src/did.js +0 -27
  46. package/dist/src/history.d.ts +0 -101
  47. package/dist/src/history.js +0 -63
  48. package/dist/src/identifier.d.ts +0 -133
  49. package/dist/src/identifier.js +0 -29
  50. package/dist/src/key.d.ts +0 -17
  51. package/dist/src/key.js +0 -1
  52. package/dist/src/list.d.ts +0 -14
  53. package/dist/src/list.js +0 -5
  54. package/dist/src/organisation.d.ts +0 -9
  55. package/dist/src/organisation.js +0 -1
  56. package/dist/src/proof.d.ts +0 -234
  57. package/dist/src/proof.js +0 -43
  58. package/dist/src/proofSchema.d.ts +0 -116
  59. package/dist/src/proofSchema.js +0 -9
  60. package/dist/src/trust.d.ts +0 -173
  61. package/dist/src/trust.js +0 -44
  62. package/dist/src/walletUnit.d.ts +0 -30
  63. package/dist/src/walletUnit.js +0 -11
  64. package/ios/RSEKeyStorage.swift_opensource +0 -61
  65. package/ios/RSEPinPad.swift_opensource +0 -21
  66. package/ios/UBQKit.xcframework/Info.plist +0 -44
  67. package/ios/UBQKit.xcframework/ios-arm64/UBQKit.framework/Assets.car +0 -0
  68. package/ios/UBQKit.xcframework/ios-arm64/UBQKit.framework/Headers/AFCompatibilityMacros.h +0 -37
  69. package/ios/UBQKit.xcframework/ios-arm64/UBQKit.framework/Headers/AFHTTPSessionManager.h +0 -304
  70. package/ios/UBQKit.xcframework/ios-arm64/UBQKit.framework/Headers/AFNetworkReachabilityManager.h +0 -216
  71. package/ios/UBQKit.xcframework/ios-arm64/UBQKit.framework/Headers/AFNetworking.h +0 -41
  72. package/ios/UBQKit.xcframework/ios-arm64/UBQKit.framework/Headers/AFPlainTextRequestSerializer.h +0 -16
  73. package/ios/UBQKit.xcframework/ios-arm64/UBQKit.framework/Headers/AFSecurityPolicy.h +0 -156
  74. package/ios/UBQKit.xcframework/ios-arm64/UBQKit.framework/Headers/AFURLRequestSerialization.h +0 -479
  75. package/ios/UBQKit.xcframework/ios-arm64/UBQKit.framework/Headers/AFURLResponseSerialization.h +0 -310
  76. package/ios/UBQKit.xcframework/ios-arm64/UBQKit.framework/Headers/AFURLSessionManager.h +0 -501
  77. package/ios/UBQKit.xcframework/ios-arm64/UBQKit.framework/Headers/CardRequestProtocol.h +0 -72
  78. package/ios/UBQKit.xcframework/ios-arm64/UBQKit.framework/Headers/Constants.h +0 -222
  79. package/ios/UBQKit.xcframework/ios-arm64/UBQKit.framework/Headers/DeviceBindProtocol.h +0 -38
  80. package/ios/UBQKit.xcframework/ios-arm64/UBQKit.framework/Headers/DomainSecurityModule.h +0 -43
  81. package/ios/UBQKit.xcframework/ios-arm64/UBQKit.framework/Headers/ErrorDomains.h +0 -68
  82. package/ios/UBQKit.xcframework/ios-arm64/UBQKit.framework/Headers/FreeAssetProtocol.h +0 -40
  83. package/ios/UBQKit.xcframework/ios-arm64/UBQKit.framework/Headers/GDataXMLNode.h +0 -214
  84. package/ios/UBQKit.xcframework/ios-arm64/UBQKit.framework/Headers/NSDictionary+Utilities.h +0 -23
  85. package/ios/UBQKit.xcframework/ios-arm64/UBQKit.framework/Headers/NSFileManager+Utilities.h +0 -20
  86. package/ios/UBQKit.xcframework/ios-arm64/UBQKit.framework/Headers/NSString+Utilities.h +0 -23
  87. package/ios/UBQKit.xcframework/ios-arm64/UBQKit.framework/Headers/NSURL+Utilities.h +0 -12
  88. package/ios/UBQKit.xcframework/ios-arm64/UBQKit.framework/Headers/ProtocolBase.h +0 -38
  89. package/ios/UBQKit.xcframework/ios-arm64/UBQKit.framework/Headers/ResetPinProtocol.h +0 -45
  90. package/ios/UBQKit.xcframework/ios-arm64/UBQKit.framework/Headers/Settings.h +0 -120
  91. package/ios/UBQKit.xcframework/ios-arm64/UBQKit.framework/Headers/UBQCardRequest.h +0 -58
  92. package/ios/UBQKit.xcframework/ios-arm64/UBQKit.framework/Headers/UBQCardRequestBaseProcessor.h +0 -37
  93. package/ios/UBQKit.xcframework/ios-arm64/UBQKit.framework/Headers/UBQCardRequestBindProcessor.h +0 -34
  94. package/ios/UBQKit.xcframework/ios-arm64/UBQKit.framework/Headers/UBQCardRequestNullProcessor.h +0 -28
  95. package/ios/UBQKit.xcframework/ios-arm64/UBQKit.framework/Headers/UBQCardRequestResetPinProcessor.h +0 -35
  96. package/ios/UBQKit.xcframework/ios-arm64/UBQKit.framework/Headers/UBQCardRequestUnlockProcessor.h +0 -31
  97. package/ios/UBQKit.xcframework/ios-arm64/UBQKit.framework/Headers/UBQCardRequestUseProcessor.h +0 -34
  98. package/ios/UBQKit.xcframework/ios-arm64/UBQKit.framework/Headers/UBQKit-Swift.h +0 -761
  99. package/ios/UBQKit.xcframework/ios-arm64/UBQKit.framework/Headers/UBQKit.h +0 -56
  100. package/ios/UBQKit.xcframework/ios-arm64/UBQKit.framework/Headers/UBQPacket.h +0 -38
  101. package/ios/UBQKit.xcframework/ios-arm64/UBQKit.framework/Info.plist +0 -0
  102. package/ios/UBQKit.xcframework/ios-arm64/UBQKit.framework/Modules/UBQKit.swiftmodule/arm64-apple-ios.abi.json +0 -89006
  103. package/ios/UBQKit.xcframework/ios-arm64/UBQKit.framework/Modules/UBQKit.swiftmodule/arm64-apple-ios.private.swiftinterface +0 -1099
  104. package/ios/UBQKit.xcframework/ios-arm64/UBQKit.framework/Modules/UBQKit.swiftmodule/arm64-apple-ios.swiftdoc +0 -0
  105. package/ios/UBQKit.xcframework/ios-arm64/UBQKit.framework/Modules/UBQKit.swiftmodule/arm64-apple-ios.swiftinterface +0 -1099
  106. package/ios/UBQKit.xcframework/ios-arm64/UBQKit.framework/Modules/module.modulemap +0 -11
  107. package/ios/UBQKit.xcframework/ios-arm64/UBQKit.framework/UBQKit +0 -0
  108. package/ios/UBQKit.xcframework/ios-arm64/UBQKit.framework/_CodeSignature/CodeResources +0 -597
  109. package/ios/UBQKit.xcframework/ios-arm64/UBQKit.framework/certs +0 -0
  110. package/ios/UBQKit.xcframework/ios-arm64/UBQKit.framework/checksums +0 -0
  111. package/ios/UBQKit.xcframework/ios-arm64/UBQKit.framework/pinning_pub +0 -0
  112. package/ios/UBQKit.xcframework/ios-arm64/UBQKit.framework/static +0 -0
  113. package/ios/UBQKit.xcframework/ios-arm64/UBQKit.framework/stream +0 -0
  114. package/ios/UBQKit.xcframework/ios-arm64_x86_64-simulator/UBQKit.framework/Assets.car +0 -0
  115. package/ios/UBQKit.xcframework/ios-arm64_x86_64-simulator/UBQKit.framework/Headers/AFCompatibilityMacros.h +0 -37
  116. package/ios/UBQKit.xcframework/ios-arm64_x86_64-simulator/UBQKit.framework/Headers/AFHTTPSessionManager.h +0 -304
  117. package/ios/UBQKit.xcframework/ios-arm64_x86_64-simulator/UBQKit.framework/Headers/AFNetworkReachabilityManager.h +0 -216
  118. package/ios/UBQKit.xcframework/ios-arm64_x86_64-simulator/UBQKit.framework/Headers/AFNetworking.h +0 -41
  119. package/ios/UBQKit.xcframework/ios-arm64_x86_64-simulator/UBQKit.framework/Headers/AFPlainTextRequestSerializer.h +0 -16
  120. package/ios/UBQKit.xcframework/ios-arm64_x86_64-simulator/UBQKit.framework/Headers/AFSecurityPolicy.h +0 -156
  121. package/ios/UBQKit.xcframework/ios-arm64_x86_64-simulator/UBQKit.framework/Headers/AFURLRequestSerialization.h +0 -479
  122. package/ios/UBQKit.xcframework/ios-arm64_x86_64-simulator/UBQKit.framework/Headers/AFURLResponseSerialization.h +0 -310
  123. package/ios/UBQKit.xcframework/ios-arm64_x86_64-simulator/UBQKit.framework/Headers/AFURLSessionManager.h +0 -501
  124. package/ios/UBQKit.xcframework/ios-arm64_x86_64-simulator/UBQKit.framework/Headers/CardRequestProtocol.h +0 -72
  125. package/ios/UBQKit.xcframework/ios-arm64_x86_64-simulator/UBQKit.framework/Headers/Constants.h +0 -222
  126. package/ios/UBQKit.xcframework/ios-arm64_x86_64-simulator/UBQKit.framework/Headers/DeviceBindProtocol.h +0 -38
  127. package/ios/UBQKit.xcframework/ios-arm64_x86_64-simulator/UBQKit.framework/Headers/DomainSecurityModule.h +0 -43
  128. package/ios/UBQKit.xcframework/ios-arm64_x86_64-simulator/UBQKit.framework/Headers/ErrorDomains.h +0 -68
  129. package/ios/UBQKit.xcframework/ios-arm64_x86_64-simulator/UBQKit.framework/Headers/FreeAssetProtocol.h +0 -40
  130. package/ios/UBQKit.xcframework/ios-arm64_x86_64-simulator/UBQKit.framework/Headers/GDataXMLNode.h +0 -214
  131. package/ios/UBQKit.xcframework/ios-arm64_x86_64-simulator/UBQKit.framework/Headers/NSDictionary+Utilities.h +0 -23
  132. package/ios/UBQKit.xcframework/ios-arm64_x86_64-simulator/UBQKit.framework/Headers/NSFileManager+Utilities.h +0 -20
  133. package/ios/UBQKit.xcframework/ios-arm64_x86_64-simulator/UBQKit.framework/Headers/NSString+Utilities.h +0 -23
  134. package/ios/UBQKit.xcframework/ios-arm64_x86_64-simulator/UBQKit.framework/Headers/NSURL+Utilities.h +0 -12
  135. package/ios/UBQKit.xcframework/ios-arm64_x86_64-simulator/UBQKit.framework/Headers/ProtocolBase.h +0 -38
  136. package/ios/UBQKit.xcframework/ios-arm64_x86_64-simulator/UBQKit.framework/Headers/ResetPinProtocol.h +0 -45
  137. package/ios/UBQKit.xcframework/ios-arm64_x86_64-simulator/UBQKit.framework/Headers/Settings.h +0 -120
  138. package/ios/UBQKit.xcframework/ios-arm64_x86_64-simulator/UBQKit.framework/Headers/UBQCardRequest.h +0 -58
  139. package/ios/UBQKit.xcframework/ios-arm64_x86_64-simulator/UBQKit.framework/Headers/UBQCardRequestBaseProcessor.h +0 -37
  140. package/ios/UBQKit.xcframework/ios-arm64_x86_64-simulator/UBQKit.framework/Headers/UBQCardRequestBindProcessor.h +0 -34
  141. package/ios/UBQKit.xcframework/ios-arm64_x86_64-simulator/UBQKit.framework/Headers/UBQCardRequestNullProcessor.h +0 -28
  142. package/ios/UBQKit.xcframework/ios-arm64_x86_64-simulator/UBQKit.framework/Headers/UBQCardRequestResetPinProcessor.h +0 -35
  143. package/ios/UBQKit.xcframework/ios-arm64_x86_64-simulator/UBQKit.framework/Headers/UBQCardRequestUnlockProcessor.h +0 -31
  144. package/ios/UBQKit.xcframework/ios-arm64_x86_64-simulator/UBQKit.framework/Headers/UBQCardRequestUseProcessor.h +0 -34
  145. package/ios/UBQKit.xcframework/ios-arm64_x86_64-simulator/UBQKit.framework/Headers/UBQKit-Swift.h +0 -1522
  146. package/ios/UBQKit.xcframework/ios-arm64_x86_64-simulator/UBQKit.framework/Headers/UBQKit.h +0 -56
  147. package/ios/UBQKit.xcframework/ios-arm64_x86_64-simulator/UBQKit.framework/Headers/UBQPacket.h +0 -38
  148. package/ios/UBQKit.xcframework/ios-arm64_x86_64-simulator/UBQKit.framework/Info.plist +0 -0
  149. package/ios/UBQKit.xcframework/ios-arm64_x86_64-simulator/UBQKit.framework/Modules/UBQKit.swiftmodule/arm64-apple-ios-simulator.abi.json +0 -89006
  150. package/ios/UBQKit.xcframework/ios-arm64_x86_64-simulator/UBQKit.framework/Modules/UBQKit.swiftmodule/arm64-apple-ios-simulator.private.swiftinterface +0 -1099
  151. package/ios/UBQKit.xcframework/ios-arm64_x86_64-simulator/UBQKit.framework/Modules/UBQKit.swiftmodule/arm64-apple-ios-simulator.swiftdoc +0 -0
  152. package/ios/UBQKit.xcframework/ios-arm64_x86_64-simulator/UBQKit.framework/Modules/UBQKit.swiftmodule/arm64-apple-ios-simulator.swiftinterface +0 -1099
  153. package/ios/UBQKit.xcframework/ios-arm64_x86_64-simulator/UBQKit.framework/Modules/UBQKit.swiftmodule/x86_64-apple-ios-simulator.abi.json +0 -89006
  154. package/ios/UBQKit.xcframework/ios-arm64_x86_64-simulator/UBQKit.framework/Modules/UBQKit.swiftmodule/x86_64-apple-ios-simulator.private.swiftinterface +0 -1099
  155. package/ios/UBQKit.xcframework/ios-arm64_x86_64-simulator/UBQKit.framework/Modules/UBQKit.swiftmodule/x86_64-apple-ios-simulator.swiftdoc +0 -0
  156. package/ios/UBQKit.xcframework/ios-arm64_x86_64-simulator/UBQKit.framework/Modules/UBQKit.swiftmodule/x86_64-apple-ios-simulator.swiftinterface +0 -1099
  157. package/ios/UBQKit.xcframework/ios-arm64_x86_64-simulator/UBQKit.framework/Modules/module.modulemap +0 -11
  158. package/ios/UBQKit.xcframework/ios-arm64_x86_64-simulator/UBQKit.framework/UBQKit +0 -0
  159. package/ios/UBQKit.xcframework/ios-arm64_x86_64-simulator/UBQKit.framework/_CodeSignature/CodeResources +0 -652
  160. package/ios/UBQKit.xcframework/ios-arm64_x86_64-simulator/UBQKit.framework/certs +0 -0
  161. package/ios/UBQKit.xcframework/ios-arm64_x86_64-simulator/UBQKit.framework/checksums +0 -0
  162. package/ios/UBQKit.xcframework/ios-arm64_x86_64-simulator/UBQKit.framework/pinning_pub +0 -0
  163. package/ios/UBQKit.xcframework/ios-arm64_x86_64-simulator/UBQKit.framework/static +0 -0
  164. package/ios/UBQKit.xcframework/ios-arm64_x86_64-simulator/UBQKit.framework/stream +0 -0
@@ -1,615 +1,61 @@
1
1
  import Foundation
2
- import UBQKit
3
2
  import ProcivisOneCore
4
3
 
5
4
  class RSEKeyStorage: NativeKeyStorage {
6
5
 
7
- struct TokenResponse: Decodable {
8
-
9
- let accessToken: String
10
-
11
- enum CodingKeys: String, CodingKey {
12
- case accessToken = "access_token"
13
- }
14
- }
15
-
16
- struct CreateIdentityPayload: Encodable {
17
- let sub: String
18
- }
19
-
20
- struct CreateIdentityResponse: Decodable {
21
- let sub: String
22
- }
23
-
24
- struct RegisterRseResponse: Decodable {
25
- let nonce: String
26
- let puk: String
27
- }
28
-
29
- private let identity_service_url = "https://api.identity.strongpin.ubiqu-sandbox.com"
30
- private let organisation_id = "88e5fe80-106e-465c-a29d-1822d3790feb"
31
- private let api_key = "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJpc3MiOiJodHRwczovL2FwaS5pZGVudGl0eS5zdHJvbmdwaW4udWJpcXUtc2FuZGJveC5jb20iLCJpYXQiOjE3MzgzMzY2NTksImp0aSI6Ijc2NTY0M2FhLTI2NzgtNDFjZC04N2RiLThhODhmMzdjZDVhNSIsInNjb3BlIjoic2VydmljZV9hY2NvdW50Iiwic3ViIjoicHJvY2l2aXMtdGVzdCIsImF1ZCI6Imh0dHBzOi8vYXBpLnRva2VuLWdlbmVyYXRvci5zdHJvbmdwaW4udWJpcXUtc2FuZGJveC5jb20vdWJpcXUvIiwidG9rZW5fdHlwZSI6ImFwaV9rZXkifQ.RZtik0TlyoCd8M5BIKCsa0vQVols9eqB3QsvxPK-t5BvQO-v39VZoEQWahQCVQ2OKScEKX_EUeFiK0v1kzTLvKVGIIYuLYIBYJf6QQkc2MWroco54iDPMnK6_8J7EdRXdDhDH3-ukpzRrHwvOfAH50WGNco1U5QSqwvuwoWYWVANBZSBCSOMI4zYrNomEUbo04b-V10VjdHYMcpac14XxSNaxATSEliDVGv_JrAEOXSTs49ebGLT4OOdLHLoAfwu1NylpbvJQnhJYlpudzWf-46FM58uxCYs0DphYMtC6sC0XM1nhvcgli1ngzn-llSyaCQ1TY3PStU8RKxCtfa95A"
32
- private let token_generator_url = "https://api.token-generator.strongpin.ubiqu-sandbox.com"
33
- private let license = """
34
- {"id": "26c46847-152e-44e8-b73a-b7d4c51c7074", "version": "0", "content": "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", "signature": "ijEe2xRd36VNR7WwAgDqBbt1jpvuqS/NJL6RG+w3x9gWImR/wm/7W3mCHTlEEJ6AS0md2hVZG1pKvZqApAG788xIeVSSDfuMYn57yCu8XPBVloQazGQu4xU9WjbocbKc5VNtu0Sb1us5tBsW1wJt8eQLaPErihEcQ9HW/EaXz1h5s4pKwed/bsuLtH1HdCulLMs1IKhJKuSWzjuaf2l9Tmg2Z354C2mPm8UnXX2TE77PVxCXegIic9U6tDOgelDgGLjKFLbZwkxpuK8kSRPnvSS/K8vkyl+5KxQEwNL6DC+glFWDwB3PpWi/reniqc5QzrBMUgsdMMoPTaWaXi9F8A=="}
35
- """.data(using: .utf8)!
36
- private let EDDSA_PREFIX_ASN1 = Data([0x30, 0x2a, 0x30, 0x05, 0x06, 0x03, 0x2b, 0x65, 0x70, 0x03, 0x21, 0x00])
37
-
38
6
  public static var available: Bool {
39
- return true
7
+ return false
40
8
  }
41
9
 
42
- private var subscriber: RSESubscriber?
43
- private var signTransaction: UbqTransaction?
44
- private var changePinTransaction: UbqChangePin?
45
-
46
10
  init() {
47
- try? UbqSdk.setup(with: license, loggingEnabled: true)
11
+ fatalError("init() has not been implemented")
48
12
  }
49
13
 
50
14
  func generateKey(keyAlias: String) async throws -> GeneratedKeyBindingDto {
51
- // Check if main asset exists and handle its state
52
- if let asset = UbqSdk.assets.first {
53
- if asset.state != .normal {
54
- // an asset can be left locked after an unfinished generation earlier (e.g. app forcefully closed during PIN setup)
55
- try await delete()
56
- }
57
- }
58
-
59
- do {
60
- // Get or create the main asset
61
- let mainAsset: UbqAsset
62
- if let existingAsset = UbqSdk.assets.first, existingAsset.state == .normal {
63
- // Main asset already exists and is ready - reuse it
64
- mainAsset = existingAsset
65
- } else {
66
- // Need to create the main asset
67
- mainAsset = try await createMainAsset()
68
- }
69
-
70
- // Create a new derived asset from the main asset
71
- let derivedAsset = try await withCheckedThrowingContinuation { continuation in
72
- mainAsset.createDa(cryptoTypes: .EdDSA_25519) { derivedAsset in
73
- continuation.resume(returning: derivedAsset)
74
- } failure: { error in
75
- continuation.resume(throwing: error)
76
- }
77
- }
78
-
79
- guard let keyReference = derivedAsset.uuid.uuidString.data(using: .utf8),
80
- let pemString = derivedAsset.publicKey,
81
- let publicKeyPrefixed = parsePEMPublicKeyContent(pemString) else {
82
- throw NativeKeyStorageError.KeyGenerationFailure(reason: "Error getting keyReference or publicKey")
83
- }
84
- guard publicKeyPrefixed.subdata(in: 0..<12) == EDDSA_PREFIX_ASN1 else {
85
- throw NativeKeyStorageError.KeyGenerationFailure(reason: "Invalid key prefix")
86
- }
87
- let publicKey = publicKeyPrefixed.subdata(in: 12..<44)
88
- return GeneratedKeyBindingDto(keyReference: keyReference, publicKey: publicKey)
89
- } catch {
90
- self.subscriber = nil
91
- ProcivisOneCoreEventEmitter.shared.sendHidePinEvent()
92
- // delete partially generated asset only if we were creating a new one
93
- if UbqSdk.assets.isEmpty || UbqSdk.assets.first?.state != .normal {
94
- try? await delete()
95
- }
96
- throw NativeKeyStorageError.KeyGenerationFailure(reason: error.localizedDescription)
97
- }
98
- }
99
-
100
- private func createMainAsset() async throws -> UbqAsset {
101
- let tokenUrl = URL(string: "\(token_generator_url)/ubiqu/")!
102
- var tokenRequest = URLRequest(url: tokenUrl)
103
- tokenRequest.httpMethod = "GET"
104
- tokenRequest.setValue("bearer \(api_key)", forHTTPHeaderField: "Authorization")
105
- let (tokenData, _) = try await URLSession.shared.data(for: tokenRequest)
106
-
107
- let tokenResponse = try JSONDecoder().decode(TokenResponse.self, from: tokenData)
108
- let accessToken = tokenResponse.accessToken
109
-
110
- let identityUrl = URL(string: "\(identity_service_url)/organisation/\(organisation_id)/identity/")!
111
- var identityRequest = URLRequest(url: identityUrl)
112
- identityRequest.httpMethod = "POST"
113
- identityRequest.setValue("application/json", forHTTPHeaderField: "Content-Type")
114
- identityRequest.setValue("bearer \(accessToken)", forHTTPHeaderField: "Authorization")
115
- identityRequest.httpBody = try JSONEncoder().encode(CreateIdentityPayload(sub: "ios-rse-example-\(generateRandomString(length: 16))"))
116
- let (identityData, _) = try await URLSession.shared.data(for: identityRequest)
117
-
118
- let identityResponse = try JSONDecoder().decode(CreateIdentityResponse.self, from: identityData)
119
- let subject = identityResponse.sub
120
-
121
- let rseUrl = URL(string: "\(identity_service_url)/organisation/\(organisation_id)/identity/\(subject)/register_rse/")!
122
- var rseRequest = URLRequest(url: rseUrl)
123
- rseRequest.httpMethod = "POST"
124
- rseRequest.setValue("application/json", forHTTPHeaderField: "Content-Type")
125
- rseRequest.setValue("bearer \(accessToken)", forHTTPHeaderField: "Authorization")
126
- rseRequest.httpBody = try JSONEncoder().encode(CreateIdentityPayload(sub: "ios-rse-example-\(generateRandomString(length: 16))"))
127
- let (rseData, _) = try await URLSession.shared.data(for: rseRequest)
128
-
129
- let rseResponse = try JSONDecoder().decode(RegisterRseResponse.self, from: rseData)
130
-
131
- let subscribeTransaction = try await withCheckedThrowingContinuation { continuation in
132
- UbqSdk.subscribe(rseResponse.nonce, rseResponse.puk) { flow in
133
- continuation.resume(returning: flow)
134
- } onStartFailure: { error in
135
- continuation.resume(throwing: error)
136
- }
137
- }
138
- self.subscriber = await RSESubscriber(pinPad: RSEPinPad.self.sharedPinPad, transaction: subscribeTransaction)
139
- let asset = try await self.subscriber!.perform()
140
- self.subscriber = nil
141
-
142
- return asset
15
+ fatalError("generateKey(keyAlias:) has not been implemented")
143
16
  }
144
17
 
145
18
  func sign(keyReference: Data, message: Data) async throws -> Data {
146
- guard let asset = UbqSdk.assets.first else {
147
- throw NativeKeyStorageError.SignatureFailure(reason: "Key does not exist")
148
- }
149
- try await withCheckedThrowingContinuation { continuation in
150
- asset.refreshDerivedAssets {
151
- continuation.resume()
152
- } failure: { error in
153
- continuation.resume(throwing: error)
154
- }
155
- }
156
- guard let keyReferenceUUIDString = String(data: keyReference, encoding: .utf8),
157
- let keyReferenceUUID = UUID(uuidString: keyReferenceUUIDString),
158
- let derivedAsset = asset.derivedAssets.first(where: { $0.uuid == keyReferenceUUID }) else {
159
- throw NativeKeyStorageError.SignatureFailure(reason: "Key does not exist")
160
- }
161
-
162
- let signature: String?
163
-
164
- DispatchQueue.main.async {
165
- RSEPinPad.sharedPinPad.isHidden = false
166
- RSEPinPad.sharedPinPad.clear(makeVisible: true)
167
- RSEPinPad.fixSubviews(view: RSEPinPad.sharedPinPad)
168
- }
169
-
170
- do {
171
- self.signTransaction = try await withCheckedThrowingContinuation { continuation in
172
- derivedAsset.use(toBeSignedData: message.compactMap { String(format: "%02x", $0) }.joined()) { flow in
173
- continuation.resume(returning: flow)
174
- } failure: { error in
175
- continuation.resume(throwing: error)
176
- }
177
- }
178
-
179
- signature = try await RSESigner(pinPad: RSEPinPad.self.sharedPinPad).perform(transaction: self.signTransaction!)
180
- self.signTransaction = nil
181
- } catch {
182
- self.signTransaction = nil
183
- ProcivisOneCoreEventEmitter.shared.sendHidePinEvent()
184
- throw NativeKeyStorageError.SignatureFailure(reason: error.localizedDescription)
185
- }
186
-
187
- guard let signature else {
188
- throw NativeKeyStorageError.SignatureFailure(reason: "No signature returned")
189
- }
190
- guard let base64SignatureData = signature.data(using: .utf8),
191
- let signatureData = Data(base64Encoded: base64SignatureData) else {
192
- throw NativeKeyStorageError.SignatureFailure(reason: "Can't convert signature data")
193
- }
194
-
195
- return signatureData
19
+ fatalError("sign(keyReference:,message:) has not been implemented")
196
20
  }
197
21
 
198
22
  func generateAttestation(keyReference: Data, nonce: String?) async throws -> [String] {
199
- throw NativeKeyStorageError.Unsupported
23
+ fatalError("generateAttestation(keyReference:,nonce:) has not been implemented")
200
24
  }
201
25
 
202
26
  func generateAttestationKey(keyAlias: String, nonce: String?) async throws -> ProcivisOneCore.GeneratedKeyBindingDto {
203
- throw NativeKeyStorageError.Unsupported
27
+ fatalError("generateAttestationKey(keyAlias:,nonce:) has not been implemented")
204
28
  }
205
-
29
+
206
30
  func signWithAttestationKey(keyReference: Data, message: Data) async throws -> Data {
207
- throw NativeKeyStorageError.Unsupported
31
+ fatalError("signWithAttestationKey(keyReference:,message:) has not been implemented")
208
32
  }
209
-
33
+
210
34
  func changePin() async throws {
211
- guard let asset = UbqSdk.assets.first else {
212
- throw NativeKeyStorageError.SignatureFailure(reason: "Key does not exist")
213
- }
214
- do {
215
- self.changePinTransaction = try await withCheckedThrowingContinuation { continuation in
216
- asset.changePin { flow in
217
- continuation.resume(returning: flow)
218
- } failure: { error in
219
- continuation.resume(throwing: error)
220
- }
221
- }
222
-
223
- try await RSEPinChanger(pinPad: RSEPinPad.sharedPinPad).perform(transaction: self.changePinTransaction!)
224
- self.changePinTransaction = nil
225
- } catch {
226
- self.changePinTransaction = nil
227
- ProcivisOneCoreEventEmitter.shared.sendHidePinEvent()
228
- throw NativeKeyStorageError.Unknown(reason: error.localizedDescription)
229
- }
35
+ fatalError("changePin() has not been implemented")
230
36
  }
231
37
 
232
38
  var areBiometricsSupported: Bool {
233
- return false
39
+ fatalError("areBiometricsSupported has not been implemented")
234
40
  }
235
41
 
236
42
  var areBiometricsEnabled: Bool {
237
- guard let asset = UbqSdk.assets.first else {
238
- return false
239
- }
240
- return asset.biometricAuthenticationEnabled
43
+ fatalError("areBiometricsEnabled has not been implemented")
241
44
  }
242
45
 
243
46
  func enableBiometrics() async throws {
244
- guard let asset = UbqSdk.assets.first else {
245
- throw NativeKeyStorageError.SignatureFailure(reason: "Key does not exist")
246
- }
247
- do {
248
- try await withCheckedThrowingContinuation { continuation in
249
- asset.addBiometrics {
250
- continuation.resume(returning: Void())
251
- } failure: { error in
252
- continuation.resume(throwing: error)
253
- }
254
- }
255
- } catch {
256
- ProcivisOneCoreEventEmitter.shared.sendHidePinEvent()
257
- throw NativeKeyStorageError.Unknown(reason: error.localizedDescription)
258
- }
47
+ fatalError("enableBiometrics() has not been implemented")
259
48
  }
260
49
 
261
50
  func disableBiometrics() throws {
262
- guard let asset = UbqSdk.assets.first else {
263
- throw NativeKeyStorageError.SignatureFailure(reason: "Key does not exist")
264
- }
265
- asset.removeBiometrics()
51
+ fatalError("disableBiometrics() has not been implemented")
266
52
  }
267
53
 
268
54
  func delete() async throws {
269
- guard UbqSdk.assets.count > 0 else {
270
- return
271
- }
272
- try await withCheckedThrowingContinuation { continuation in
273
- UbqSdk.assets.forEach { asset in
274
- asset.revoke() {
275
- asset.delete() {
276
- continuation.resume(returning: Void())
277
- } failure: { error in
278
- debugPrint("Error deleting RSE: \(error)")
279
- continuation.resume(throwing: error)
280
- }
281
- } failure: { error in
282
- debugPrint("Error revoking RSE: \(error)")
283
- continuation.resume(throwing: error)
284
- }
285
- }
286
- }
287
- }
288
-
289
- func resetPinFlow() async throws {
290
- if let subscriber {
291
- subscriber.cancel(error: NativeKeyStorageError.KeyGenerationFailure(reason: "User canceled"))
292
- self.subscriber = nil
293
- }
294
-
295
- if let signTransaction {
296
- signTransaction.cancel()
297
- self.signTransaction = nil
298
- }
299
- if self.changePinTransaction != nil {
300
- self.changePinTransaction = nil
301
- }
302
- }
303
- }
304
-
305
- private extension RSEKeyStorage {
306
-
307
- func generateRandomString(length: Int) -> String {
308
- let letters = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
309
- return String((0..<length).map { _ in letters.randomElement()! })
310
- }
311
-
312
- func parsePEMPublicKeyContent(_ content: String) -> Data? {
313
- let base64String = content
314
- .replacingOccurrences(of: "-----BEGIN PUBLIC KEY-----\n", with: "")
315
- .replacingOccurrences(of: "-----END PUBLIC KEY-----\n", with: "")
316
- .split(separator: "\n")
317
- .joined()
318
- return Data(base64Encoded: base64String)
319
- }
320
- }
321
-
322
- private class RSESubscriber: SubscribeUiProtocol, SubscribeFinishProtocol {
323
-
324
- enum SubscribeTransactionError: Error {
325
-
326
- case rejected
327
- case exceededPinInputAttempts
328
- }
329
-
330
- private var continuation: CheckedContinuation<UbqAsset, any Error>?
331
- private var transaction: UbqSubscribe?
332
- private weak var pinPad: UBQPinPad!
333
-
334
- init(pinPad: UBQPinPad, transaction: UbqSubscribe) {
335
- self.pinPad = pinPad
336
- self.transaction = transaction
337
- }
338
-
339
- func perform() async throws -> UbqAsset {
340
- DispatchQueue.main.async { [self] in
341
- self.pinPad.clear(makeVisible: true)
342
- RSEPinPad.fixSubviews(view: self.pinPad)
343
- }
344
- return try await withCheckedThrowingContinuation { continuation in
345
- guard let transaction = self.transaction else {
346
- continuation.resume(throwing: NativeKeyStorageError.KeyGenerationFailure(reason: "User canceled"))
347
- return
348
- }
349
- transaction.setUiProtocol(i: self)
350
-
351
- do {
352
- try ProcivisOneCoreEventEmitter.shared.sendShowPinEvent(flowType: .subscribe, stage: .newFirstPin)
353
- } catch {
354
- continuation.resume(throwing: error)
355
- return
356
- }
357
- self.continuation = continuation
358
- }
359
- }
360
-
361
- func cancel(error: Error) {
362
- self.transaction = nil
363
- self.continuation?.resume(throwing: error)
364
- }
365
-
366
- // MARK: SubscribeUiProtocol
367
-
368
- func onSubscribePukEntered() {
369
- debugPrint("UBQ Subscribe Transaction puk entered")
370
- }
371
-
372
- func onSubscribeFirstPinEntered() {
373
- debugPrint("UBQ Subscribe Transaction first PIN entered")
374
- self.pinPad.clear(makeVisible: true)
375
- RSEPinPad.fixSubviews(view: pinPad)
376
- ProcivisOneCoreEventEmitter.shared.sendPinStageChangeEvent(stage: .newSecondPin)
377
- }
378
-
379
- func onSubscribeUnallowedPinEntered() {
380
- debugPrint("UBQ Subscribe Transaction unallowed PIN entered")
381
- self.pinPad.clear(makeVisible: true)
382
- RSEPinPad.fixSubviews(view: pinPad)
383
- ProcivisOneCoreEventEmitter.shared.sendPinStageChangeEvent(stage: .newFirstPin)
384
- }
385
-
386
- func onSubscribePinNotConfirmed() {
387
- debugPrint("UBQ Subscribe Transaction PIN not confirmed")
388
- self.pinPad?.clear(makeVisible: true)
389
- RSEPinPad.fixSubviews(view: pinPad)
390
- ProcivisOneCoreEventEmitter.shared.sendPinStageChangeEvent(stage: .newFirstPin)
391
- }
392
-
393
- func onSubscribePinConfirmed() {
394
- debugPrint("UBQ Subscribe Transaction PIN confirmed")
395
- ProcivisOneCoreEventEmitter.shared.sendHidePinEvent()
396
- self.transaction?.finish(subscribeFinishProtocol: self)
397
- }
398
-
399
- func onSubscribeUiError(error: UBQKit.UbqKitError) {
400
- debugPrint("UBQ Subscribe Transaction UI error \(error)")
401
- ProcivisOneCoreEventEmitter.shared.sendHidePinEvent()
402
- self.continuation?.resume(throwing: error)
403
- }
404
-
405
- // MARK: SubscribeFinishProtocol
406
-
407
- func onSubscribeCompleted(ubqAsset: UBQKit.UbqAsset) {
408
- debugPrint("UBQ Subscribe Transaction completed with asset: \(ubqAsset)")
409
- self.continuation?.resume(returning: ubqAsset)
410
- }
411
-
412
- func onSubscribeFinishFailure(error: UBQKit.UbqKitError) {
413
- debugPrint("UBQ Subscribe Transaction finish failure \(error)")
414
- self.continuation?.resume(throwing: error)
415
- }
416
-
417
- func onSubscribeIncorrectPukEntered(ubqAsset: UBQKit.UbqAsset) {
418
- debugPrint("UBQ Subscribe Transaction incorrect puk entered \(ubqAsset)")
419
- }
420
- }
421
-
422
- private class RSESigner: TransactionUiProtocol, TransactionFinishProtocol, TransactionRejectProtocol {
423
-
424
- enum SignTransactionError: Error {
425
-
426
- case rejected
427
- case exceededPinInputAttempts
428
- }
429
-
430
- private var continuation: CheckedContinuation<String?, any Error>?
431
- private weak var transaction: UbqTransaction?
432
- private weak var pinPad: UBQPinPad!
433
-
434
- init(pinPad: UBQPinPad) {
435
- self.pinPad = pinPad
436
- }
437
-
438
- func perform(transaction: UbqTransaction) async throws -> String? {
439
- if self.transaction != nil {
440
- self.transaction!.cancel()
441
- }
442
- self.transaction = transaction
443
- DispatchQueue.main.async {
444
- self.pinPad.clear(makeVisible: true)
445
- RSEPinPad.fixSubviews(view: self.pinPad)
446
- }
447
- transaction.setUiProtocol(i: self)
448
- transaction.setRejectProtocol(i: self)
449
- try ProcivisOneCoreEventEmitter.shared.sendShowPinEvent(flowType: .transaction, stage: .checkCurrentPin)
450
- return try await withCheckedThrowingContinuation { continuation in
451
- self.continuation = continuation
452
- transaction.start()
453
- }
454
- }
455
-
456
- // MARK: TransactionUiProtocol
457
-
458
- func onTransactionPinEntered() {
459
- debugPrint("UBQ Sign Transaction PIN entered")
460
- self.transaction?.finish(transactionFinishProtocol: self)
461
- }
462
-
463
- func onTransactionBiometricsEntered() {
464
- debugPrint("UBQ Sign Transaction biometrics entered")
465
- self.transaction?.finish(transactionFinishProtocol: self)
466
- }
467
-
468
- func onTransactionUiError(error: UBQKit.UbqKitError) {
469
- debugPrint("UBQ Sign Transaction UI Error \(error)")
470
- ProcivisOneCoreEventEmitter.shared.sendHidePinEvent()
471
- self.continuation?.resume(throwing: error)
472
- }
473
-
474
- // MARK: TransactionFinishProtocol
475
-
476
- func onTransactionCompleted(result: String?) {
477
- debugPrint("UBQ Sign Transaction completed with result: \(result ?? "")")
478
- ProcivisOneCoreEventEmitter.shared.sendHidePinEvent()
479
- self.continuation?.resume(returning: result)
480
- }
481
-
482
- func onTransactionFinishFailure(error: UBQKit.UbqKitError) {
483
- debugPrint("UBQ Sign Transaction finish failure \(error)")
484
- ProcivisOneCoreEventEmitter.shared.sendHidePinEvent()
485
- self.continuation?.resume(throwing: error)
486
- }
487
-
488
- func onTransactionIncorrectPinEntered(pinAttemptsLeft: Int8) {
489
- debugPrint("UBQ Sign Transaction incorrect PIN, \(pinAttemptsLeft) attempts left")
490
- ProcivisOneCoreEventEmitter.shared.sendIncorrectPinEvent(attemptsLeft: Int(pinAttemptsLeft))
491
- if pinAttemptsLeft == 0 {
492
- ProcivisOneCoreEventEmitter.shared.sendHidePinEvent()
493
- self.transaction?.cancel()
494
- self.continuation?.resume(throwing: SignTransactionError.exceededPinInputAttempts)
495
- } else {
496
- self.pinPad!.clear(makeVisible: true)
497
- RSEPinPad.fixSubviews(view: pinPad)
498
- ProcivisOneCoreEventEmitter.shared.sendPinStageChangeEvent(stage: .checkCurrentPin)
499
- }
500
- }
501
-
502
- // MARK: TransactionRejectProtocol
503
-
504
- func onTransactionRejected() {
505
- debugPrint("UBQ Sign Transaction rejected")
506
- ProcivisOneCoreEventEmitter.shared.sendHidePinEvent()
507
- self.continuation?.resume(throwing: SignTransactionError.rejected)
508
- }
509
-
510
- func onTransactionRejectFailure(error: UBQKit.UbqKitError) {
511
- debugPrint("UBQ Sign Transaction reject failure \(error)")
512
- ProcivisOneCoreEventEmitter.shared.sendHidePinEvent()
513
- self.continuation?.resume(throwing: error)
55
+ fatalError("delete() has not been implemented")
514
56
  }
515
- }
516
57
 
517
- private class RSEPinChanger: ChangePinUiProtocol, ChangePinFinishProtocol {
518
-
519
- enum PinChangeError: Error {
520
-
521
- case incorrectPinEntered
522
- case unallowedPinEntered
523
- case pinNotConfirmed
524
- case exceededPinInputAttempts
525
- }
526
-
527
- private var continuation: CheckedContinuation<Void, any Error>?
528
- private weak var transaction: UbqChangePin?
529
- private weak var pinPad: UBQPinPad!
530
-
531
- init(pinPad: UBQPinPad) {
532
- self.pinPad = pinPad
533
- }
534
-
535
- func perform(transaction: UbqChangePin) async throws {
536
- self.transaction = transaction
537
- DispatchQueue.main.async {
538
- self.pinPad.clear(makeVisible: true)
539
- RSEPinPad.fixSubviews(view: self.pinPad)
540
- }
541
- transaction.setUiProtocol(i: self)
542
- try ProcivisOneCoreEventEmitter.shared.sendShowPinEvent(flowType: .changePin, stage: .checkCurrentPin)
543
- return try await withCheckedThrowingContinuation { continuation in
544
- self.continuation = continuation
545
- }
546
- }
547
-
548
- // MARK: ChangePinUiProtocol
549
-
550
- func onChangePinPinEntered() {
551
- debugPrint("UBQ Change PIN Transaction PIN entered")
552
- self.pinPad.clear(makeVisible: true)
553
- RSEPinPad.fixSubviews(view: pinPad)
554
- ProcivisOneCoreEventEmitter.shared.sendPinStageChangeEvent(stage: .newFirstPin)
555
- }
556
-
557
- func onChangePinNewPinEntered() {
558
- debugPrint("UBQ Change PIN Transaction new PIN entered")
559
- self.pinPad.clear(makeVisible: true)
560
- RSEPinPad.fixSubviews(view: pinPad)
561
- ProcivisOneCoreEventEmitter.shared.sendPinStageChangeEvent(stage: .newSecondPin)
562
- }
563
-
564
- func onChangePinUnallowedPinEntered() {
565
- debugPrint("UBQ Change PIN Transaction unallowed PIN entered")
566
- self.pinPad.clear(makeVisible: true)
567
- RSEPinPad.fixSubviews(view: pinPad)
568
- ProcivisOneCoreEventEmitter.shared.sendPinStageChangeEvent(stage: .checkCurrentPin)
569
- continuation?.resume(throwing: PinChangeError.unallowedPinEntered)
570
- }
571
-
572
- func onChangePinPinNotConfirmed() {
573
- debugPrint("UBQ Change PIN Transaction PIN not confirmed")
574
- self.pinPad.clear(makeVisible: true)
575
- RSEPinPad.fixSubviews(view: pinPad)
576
- ProcivisOneCoreEventEmitter.shared.sendPinStageChangeEvent(stage: .newFirstPin)
577
- }
578
-
579
- func onChangePinPinConfirmed() {
580
- debugPrint("UBQ Change PIN Transaction PIN confirmed")
581
- transaction?.finish(changePinFinishProtocol: self)
582
- }
583
-
584
- func onChangePinUiError(error: UBQKit.UbqKitError) {
585
- debugPrint("UBQ Change PIN Transaction UI error \(error)")
586
- ProcivisOneCoreEventEmitter.shared.sendHidePinEvent()
587
- continuation?.resume(throwing: error)
588
- }
589
-
590
- // MARK: ChangePinFinishProtocol
591
-
592
- func onChangePinCompleted() {
593
- debugPrint("UBQ Change PIN Transaction completed")
594
- ProcivisOneCoreEventEmitter.shared.sendHidePinEvent()
595
- continuation?.resume(returning: Void())
596
- }
597
-
598
- func onChangePinFinishFailure(error: UBQKit.UbqKitError) {
599
- debugPrint("UBQ Change PIN Transaction finish failure \(error)")
600
- ProcivisOneCoreEventEmitter.shared.sendHidePinEvent()
601
- continuation?.resume(throwing: error)
602
- }
603
-
604
- func onChangePinIncorrectPinEntered(pinAttemptsLeft: Int8) {
605
- debugPrint("UBQ Change PIN Transaction incorrect PIN, \(pinAttemptsLeft) attempts left")
606
- ProcivisOneCoreEventEmitter.shared.sendIncorrectPinEvent(attemptsLeft: Int(pinAttemptsLeft))
607
- if pinAttemptsLeft == 0 {
608
- ProcivisOneCoreEventEmitter.shared.sendHidePinEvent()
609
- self.continuation?.resume(throwing: PinChangeError.exceededPinInputAttempts)
610
- } else {
611
- ProcivisOneCoreEventEmitter.shared.sendPinStageChangeEvent(stage: .checkCurrentPin)
612
- self.continuation?.resume(throwing: PinChangeError.incorrectPinEntered)
613
- }
58
+ func resetPinFlow() async throws {
59
+ fatalError("resetPinFlow() has not been implemented")
614
60
  }
615
61
  }