@oxyhq/services 5.16.35 → 5.16.37

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 (232) hide show
  1. package/README.md +8 -26
  2. package/lib/commonjs/core/OxyServices.base.js.map +1 -1
  3. package/lib/commonjs/core/mixins/OxyServices.user.js.map +1 -1
  4. package/lib/commonjs/core/mixins/OxyServices.utility.js.map +1 -1
  5. package/lib/commonjs/crypto/README.md +142 -0
  6. package/lib/commonjs/crypto/core.js +147 -0
  7. package/lib/commonjs/crypto/core.js.map +1 -0
  8. package/lib/commonjs/crypto/index.js +16 -0
  9. package/lib/commonjs/crypto/index.js.map +1 -1
  10. package/lib/commonjs/crypto/keyManager.js +19 -22
  11. package/lib/commonjs/crypto/keyManager.js.map +1 -1
  12. package/lib/commonjs/crypto/signatureService.js +116 -28
  13. package/lib/commonjs/crypto/signatureService.js.map +1 -1
  14. package/lib/commonjs/index.js +0 -12
  15. package/lib/commonjs/index.js.map +1 -1
  16. package/lib/commonjs/models/interfaces.js +10 -11
  17. package/lib/commonjs/models/interfaces.js.map +1 -1
  18. package/lib/commonjs/node/index.js +10 -1
  19. package/lib/commonjs/node/index.js.map +1 -1
  20. package/lib/commonjs/node/signatureService.js +107 -0
  21. package/lib/commonjs/node/signatureService.js.map +1 -0
  22. package/lib/commonjs/ui/context/OxyContext.js +23 -0
  23. package/lib/commonjs/ui/context/OxyContext.js.map +1 -1
  24. package/lib/commonjs/ui/context/hooks/useAuthOperations.js +29 -2
  25. package/lib/commonjs/ui/context/hooks/useAuthOperations.js.map +1 -1
  26. package/lib/commonjs/ui/context/hooks/useLanguageManagement.js.map +1 -1
  27. package/lib/commonjs/ui/hooks/useLanguageManagement.js.map +1 -1
  28. package/lib/commonjs/ui/hooks/useSessionManagement.js.map +1 -1
  29. package/lib/commonjs/ui/index.js +0 -2
  30. package/lib/commonjs/ui/index.js.map +1 -1
  31. package/lib/commonjs/ui/screens/AccountSettingsScreen.js.map +1 -1
  32. package/lib/commonjs/ui/screens/OxyAuthScreen.js +11 -2
  33. package/lib/commonjs/ui/screens/OxyAuthScreen.js.map +1 -1
  34. package/lib/module/core/OxyServices.base.js.map +1 -1
  35. package/lib/module/core/mixins/OxyServices.user.js.map +1 -1
  36. package/lib/module/core/mixins/OxyServices.utility.js.map +1 -1
  37. package/lib/module/crypto/README.md +142 -0
  38. package/lib/module/crypto/core.js +133 -0
  39. package/lib/module/crypto/core.js.map +1 -0
  40. package/lib/module/crypto/index.js +3 -9
  41. package/lib/module/crypto/index.js.map +1 -1
  42. package/lib/module/crypto/keyManager.js +19 -22
  43. package/lib/module/crypto/keyManager.js.map +1 -1
  44. package/lib/module/crypto/signatureService.js +113 -23
  45. package/lib/module/crypto/signatureService.js.map +1 -1
  46. package/lib/module/index.js +0 -2
  47. package/lib/module/index.js.map +1 -1
  48. package/lib/module/models/interfaces.js +10 -11
  49. package/lib/module/models/interfaces.js.map +1 -1
  50. package/lib/module/node/index.js +3 -0
  51. package/lib/module/node/index.js.map +1 -1
  52. package/lib/module/node/signatureService.js +101 -0
  53. package/lib/module/node/signatureService.js.map +1 -0
  54. package/lib/module/ui/context/OxyContext.js +23 -0
  55. package/lib/module/ui/context/OxyContext.js.map +1 -1
  56. package/lib/module/ui/context/hooks/useAuthOperations.js +29 -2
  57. package/lib/module/ui/context/hooks/useAuthOperations.js.map +1 -1
  58. package/lib/module/ui/context/hooks/useLanguageManagement.js.map +1 -1
  59. package/lib/module/ui/hooks/useLanguageManagement.js.map +1 -1
  60. package/lib/module/ui/hooks/useSessionManagement.js.map +1 -1
  61. package/lib/module/ui/index.js +0 -1
  62. package/lib/module/ui/index.js.map +1 -1
  63. package/lib/module/ui/screens/AccountSettingsScreen.js.map +1 -1
  64. package/lib/module/ui/screens/OxyAuthScreen.js +11 -2
  65. package/lib/module/ui/screens/OxyAuthScreen.js.map +1 -1
  66. package/lib/typescript/core/OxyServices.base.d.ts.map +1 -1
  67. package/lib/typescript/core/mixins/OxyServices.analytics.d.ts.map +1 -1
  68. package/lib/typescript/core/mixins/OxyServices.assets.d.ts.map +1 -1
  69. package/lib/typescript/core/mixins/OxyServices.auth.d.ts +1 -1
  70. package/lib/typescript/core/mixins/OxyServices.auth.d.ts.map +1 -1
  71. package/lib/typescript/core/mixins/OxyServices.developer.d.ts.map +1 -1
  72. package/lib/typescript/core/mixins/OxyServices.devices.d.ts.map +1 -1
  73. package/lib/typescript/core/mixins/OxyServices.karma.d.ts.map +1 -1
  74. package/lib/typescript/core/mixins/OxyServices.language.d.ts.map +1 -1
  75. package/lib/typescript/core/mixins/OxyServices.location.d.ts.map +1 -1
  76. package/lib/typescript/core/mixins/OxyServices.payment.d.ts.map +1 -1
  77. package/lib/typescript/core/mixins/OxyServices.privacy.d.ts.map +1 -1
  78. package/lib/typescript/core/mixins/OxyServices.security.d.ts.map +1 -1
  79. package/lib/typescript/core/mixins/OxyServices.user.d.ts +1 -2
  80. package/lib/typescript/core/mixins/OxyServices.user.d.ts.map +1 -1
  81. package/lib/typescript/core/mixins/OxyServices.utility.d.ts.map +1 -1
  82. package/lib/typescript/core/mixins/index.d.ts +13 -13
  83. package/lib/typescript/core/mixins/index.d.ts.map +1 -1
  84. package/lib/typescript/core/services/SessionService.d.ts +1 -1
  85. package/lib/typescript/core/services/SessionService.d.ts.map +1 -1
  86. package/lib/typescript/crypto/core.d.ts +56 -0
  87. package/lib/typescript/crypto/core.d.ts.map +1 -0
  88. package/lib/typescript/crypto/index.d.ts +1 -9
  89. package/lib/typescript/crypto/index.d.ts.map +1 -1
  90. package/lib/typescript/crypto/keyManager.d.ts +13 -1
  91. package/lib/typescript/crypto/keyManager.d.ts.map +1 -1
  92. package/lib/typescript/crypto/signatureService.d.ts +15 -9
  93. package/lib/typescript/crypto/signatureService.d.ts.map +1 -1
  94. package/lib/typescript/index.d.ts +1 -2
  95. package/lib/typescript/index.d.ts.map +1 -1
  96. package/lib/typescript/models/interfaces.d.ts +68 -15
  97. package/lib/typescript/models/interfaces.d.ts.map +1 -1
  98. package/lib/typescript/node/index.d.ts +1 -0
  99. package/lib/typescript/node/index.d.ts.map +1 -1
  100. package/lib/typescript/node/signatureService.d.ts +55 -0
  101. package/lib/typescript/node/signatureService.d.ts.map +1 -0
  102. package/lib/typescript/ui/context/OxyContext.d.ts +1 -2
  103. package/lib/typescript/ui/context/OxyContext.d.ts.map +1 -1
  104. package/lib/typescript/ui/context/hooks/useAuthOperations.d.ts +1 -2
  105. package/lib/typescript/ui/context/hooks/useAuthOperations.d.ts.map +1 -1
  106. package/lib/typescript/ui/context/hooks/useLanguageManagement.d.ts +1 -2
  107. package/lib/typescript/ui/context/hooks/useLanguageManagement.d.ts.map +1 -1
  108. package/lib/typescript/ui/hooks/mutations/useAccountMutations.d.ts +1 -1
  109. package/lib/typescript/ui/hooks/mutations/useAccountMutations.d.ts.map +1 -1
  110. package/lib/typescript/ui/hooks/queries/useAccountQueries.d.ts +1 -1
  111. package/lib/typescript/ui/hooks/queries/useAccountQueries.d.ts.map +1 -1
  112. package/lib/typescript/ui/hooks/useLanguageManagement.d.ts +1 -2
  113. package/lib/typescript/ui/hooks/useLanguageManagement.d.ts.map +1 -1
  114. package/lib/typescript/ui/hooks/useSessionManagement.d.ts +1 -2
  115. package/lib/typescript/ui/hooks/useSessionManagement.d.ts.map +1 -1
  116. package/lib/typescript/ui/index.d.ts +1 -1
  117. package/lib/typescript/ui/index.d.ts.map +1 -1
  118. package/lib/typescript/ui/screens/OxyAuthScreen.d.ts.map +1 -1
  119. package/lib/typescript/ui/stores/authStore.d.ts +1 -1
  120. package/lib/typescript/ui/stores/authStore.d.ts.map +1 -1
  121. package/lib/typescript/ui/utils/avatarUtils.d.ts +1 -1
  122. package/lib/typescript/ui/utils/avatarUtils.d.ts.map +1 -1
  123. package/package.json +6 -1
  124. package/src/core/OxyServices.base.ts +1 -2
  125. package/src/core/mixins/OxyServices.auth.ts +1 -1
  126. package/src/core/mixins/OxyServices.user.ts +1 -2
  127. package/src/core/mixins/OxyServices.utility.ts +1 -2
  128. package/src/core/services/SessionService.ts +1 -1
  129. package/src/crypto/README.md +142 -0
  130. package/src/crypto/__tests__/core.test.ts +203 -0
  131. package/src/crypto/core.ts +142 -0
  132. package/src/crypto/index.ts +3 -10
  133. package/src/crypto/keyManager.ts +25 -21
  134. package/src/crypto/signatureService.ts +137 -36
  135. package/src/index.ts +2 -3
  136. package/src/models/interfaces.ts +73 -21
  137. package/src/node/index.ts +3 -0
  138. package/src/node/signatureService.ts +126 -0
  139. package/src/ui/context/OxyContext.tsx +26 -2
  140. package/src/ui/context/hooks/useAuthOperations.ts +33 -4
  141. package/src/ui/context/hooks/useLanguageManagement.ts +1 -2
  142. package/src/ui/hooks/auth/index.ts +2 -0
  143. package/src/ui/hooks/mutations/useAccountMutations.ts +1 -1
  144. package/src/ui/hooks/mutations/useServicesMutations.ts +1 -1
  145. package/src/ui/hooks/queries/useAccountQueries.ts +1 -1
  146. package/src/ui/hooks/useLanguageManagement.ts +1 -2
  147. package/src/ui/hooks/useSessionManagement.ts +1 -2
  148. package/src/ui/index.ts +1 -2
  149. package/src/ui/screens/AccountSettingsScreen.tsx +6 -6
  150. package/src/ui/screens/AccountSwitcherScreen.tsx +1 -1
  151. package/src/ui/screens/OxyAuthScreen.tsx +11 -2
  152. package/src/ui/screens/ProfileScreen.tsx +1 -1
  153. package/src/ui/stores/authStore.ts +1 -1
  154. package/src/ui/types/navigation.ts +1 -1
  155. package/src/ui/utils/avatarUtils.ts +1 -1
  156. package/lib/commonjs/core/services/AuthService.js +0 -156
  157. package/lib/commonjs/core/services/AuthService.js.map +0 -1
  158. package/lib/commonjs/core/services/SessionTransportService.js +0 -64
  159. package/lib/commonjs/core/services/SessionTransportService.js.map +0 -1
  160. package/lib/commonjs/core/services/UserService.js +0 -123
  161. package/lib/commonjs/core/services/UserService.js.map +0 -1
  162. package/lib/commonjs/core/services/index.js +0 -34
  163. package/lib/commonjs/core/services/index.js.map +0 -1
  164. package/lib/commonjs/shared/crypto/messageBuilders.js +0 -79
  165. package/lib/commonjs/shared/crypto/messageBuilders.js.map +0 -1
  166. package/lib/commonjs/shared/crypto/platform.js +0 -118
  167. package/lib/commonjs/shared/crypto/platform.js.map +0 -1
  168. package/lib/commonjs/shared/crypto/signature.js +0 -191
  169. package/lib/commonjs/shared/crypto/signature.js.map +0 -1
  170. package/lib/commonjs/shared/index.js +0 -94
  171. package/lib/commonjs/shared/index.js.map +0 -1
  172. package/lib/commonjs/shared/models/index.js +0 -2
  173. package/lib/commonjs/shared/models/index.js.map +0 -1
  174. package/lib/commonjs/shared/transport/index.js +0 -260
  175. package/lib/commonjs/shared/transport/index.js.map +0 -1
  176. package/lib/commonjs/shared/utils/index.js +0 -82
  177. package/lib/commonjs/shared/utils/index.js.map +0 -1
  178. package/lib/module/core/services/AuthService.js +0 -151
  179. package/lib/module/core/services/AuthService.js.map +0 -1
  180. package/lib/module/core/services/SessionTransportService.js +0 -59
  181. package/lib/module/core/services/SessionTransportService.js.map +0 -1
  182. package/lib/module/core/services/UserService.js +0 -118
  183. package/lib/module/core/services/UserService.js.map +0 -1
  184. package/lib/module/core/services/index.js +0 -16
  185. package/lib/module/core/services/index.js.map +0 -1
  186. package/lib/module/shared/crypto/messageBuilders.js +0 -70
  187. package/lib/module/shared/crypto/messageBuilders.js.map +0 -1
  188. package/lib/module/shared/crypto/platform.js +0 -112
  189. package/lib/module/shared/crypto/platform.js.map +0 -1
  190. package/lib/module/shared/crypto/signature.js +0 -186
  191. package/lib/module/shared/crypto/signature.js.map +0 -1
  192. package/lib/module/shared/index.js +0 -30
  193. package/lib/module/shared/index.js.map +0 -1
  194. package/lib/module/shared/models/index.js +0 -2
  195. package/lib/module/shared/models/index.js.map +0 -1
  196. package/lib/module/shared/transport/index.js +0 -254
  197. package/lib/module/shared/transport/index.js.map +0 -1
  198. package/lib/module/shared/utils/index.js +0 -74
  199. package/lib/module/shared/utils/index.js.map +0 -1
  200. package/lib/typescript/core/services/AuthService.d.ts +0 -50
  201. package/lib/typescript/core/services/AuthService.d.ts.map +0 -1
  202. package/lib/typescript/core/services/SessionTransportService.d.ts +0 -31
  203. package/lib/typescript/core/services/SessionTransportService.d.ts.map +0 -1
  204. package/lib/typescript/core/services/UserService.d.ts +0 -39
  205. package/lib/typescript/core/services/UserService.d.ts.map +0 -1
  206. package/lib/typescript/core/services/index.d.ts +0 -13
  207. package/lib/typescript/core/services/index.d.ts.map +0 -1
  208. package/lib/typescript/shared/crypto/messageBuilders.d.ts +0 -38
  209. package/lib/typescript/shared/crypto/messageBuilders.d.ts.map +0 -1
  210. package/lib/typescript/shared/crypto/platform.d.ts +0 -54
  211. package/lib/typescript/shared/crypto/platform.d.ts.map +0 -1
  212. package/lib/typescript/shared/crypto/signature.d.ts +0 -72
  213. package/lib/typescript/shared/crypto/signature.d.ts.map +0 -1
  214. package/lib/typescript/shared/index.d.ts +0 -20
  215. package/lib/typescript/shared/index.d.ts.map +0 -1
  216. package/lib/typescript/shared/models/index.d.ts +0 -163
  217. package/lib/typescript/shared/models/index.d.ts.map +0 -1
  218. package/lib/typescript/shared/transport/index.d.ts +0 -73
  219. package/lib/typescript/shared/transport/index.d.ts.map +0 -1
  220. package/lib/typescript/shared/utils/index.d.ts +0 -28
  221. package/lib/typescript/shared/utils/index.d.ts.map +0 -1
  222. package/src/core/services/AuthService.ts +0 -153
  223. package/src/core/services/SessionTransportService.ts +0 -69
  224. package/src/core/services/UserService.ts +0 -125
  225. package/src/core/services/index.ts +0 -14
  226. package/src/shared/crypto/messageBuilders.ts +0 -89
  227. package/src/shared/crypto/platform.ts +0 -140
  228. package/src/shared/crypto/signature.ts +0 -235
  229. package/src/shared/index.ts +0 -28
  230. package/src/shared/models/index.ts +0 -173
  231. package/src/shared/transport/index.ts +0 -349
  232. package/src/shared/utils/index.ts +0 -73
@@ -1 +1 @@
1
- {"version":3,"names":["jwtDecode","CACHE_TIMES","OxyServicesUtilityMixin","Base","constructor","args","fetchLinkMetadata","url","makeRequest","cache","cacheTTL","EXTRA_LONG","error","handleError","auth","options","debug","onError","loadUser","session","req","res","next","authHeader","headers","token","startsWith","substring","console","log","method","path","message","code","status","json","decoded","userId","id","decodeError","exp","Math","floor","Date","now","accessToken","user","setTokens","apiError"],"sourceRoot":"../../../../src","sources":["core/mixins/OxyServices.utility.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["jwtDecode","CACHE_TIMES","OxyServicesUtilityMixin","Base","constructor","args","fetchLinkMetadata","url","makeRequest","cache","cacheTTL","EXTRA_LONG","error","handleError","auth","options","debug","onError","loadUser","session","req","res","next","authHeader","headers","token","startsWith","substring","console","log","method","path","message","code","status","json","decoded","userId","id","decodeError","exp","Math","floor","Date","now","accessToken","user","setTokens","apiError"],"sourceRoot":"../../../../src","sources":["core/mixins/OxyServices.utility.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,142 @@
1
+ # Oxy Crypto Module
2
+
3
+ This module provides cryptographic operations for the Oxy ecosystem, supporting both React Native and Node.js environments.
4
+
5
+ ## Architecture
6
+
7
+ The crypto module is organized into several layers:
8
+
9
+ ### Core Layer (`core.ts`)
10
+ Platform-agnostic cryptographic functions that work everywhere:
11
+ - Signature verification using elliptic curve cryptography
12
+ - Public/private key validation
13
+ - Message formatting (auth, registration, requests)
14
+ - Utility functions (shortenPublicKey, derivePublicKey, etc.)
15
+
16
+ ### Platform-Specific Implementations
17
+
18
+ #### React Native (`signatureService.ts`, `keyManager.ts`)
19
+ - **KeyManager**: Manages ECDSA key pairs with secure storage via Expo SecureStore
20
+ - ⚠️ **For Oxy Accounts app only** - Not intended for third-party apps
21
+ - Handles key generation, import, backup, and secure retrieval
22
+ - Private keys never leave the device
23
+
24
+ - **SignatureService**: Provides async signing and verification
25
+ - Uses `expo-crypto` for hashing in React Native
26
+ - Falls back to Node.js crypto when available
27
+ - Suitable for both React Native and Node.js environments
28
+
29
+ #### Node.js (`node/signatureService.ts`)
30
+ - Optimized synchronous signature operations for backend
31
+ - Uses Node's `crypto` module directly for better performance
32
+ - Exports same API as React Native version for consistency
33
+
34
+ ## Usage
35
+
36
+ ### In React Native / Accounts App
37
+
38
+ ```typescript
39
+ import { KeyManager, SignatureService } from '@oxyhq/services/crypto';
40
+
41
+ // Create identity (Accounts app only)
42
+ const publicKey = await KeyManager.createIdentity();
43
+
44
+ // Sign a challenge
45
+ const signature = await SignatureService.sign(message);
46
+
47
+ // Verify a signature
48
+ const isValid = await SignatureService.verify(message, signature, publicKey);
49
+ ```
50
+
51
+ ### In Node.js Backend
52
+
53
+ ```typescript
54
+ import { SignatureService } from '@oxyhq/services/node';
55
+
56
+ // Generate challenge
57
+ const challenge = SignatureService.generateChallenge();
58
+
59
+ // Verify signature (synchronous)
60
+ const isValid = SignatureService.verifyChallengeResponse(
61
+ publicKey,
62
+ challenge,
63
+ signature,
64
+ timestamp
65
+ );
66
+ ```
67
+
68
+ ### In Third-Party Apps (Services SDK)
69
+
70
+ Third-party apps should **not** use KeyManager directly. Instead, use the authentication flows provided by the OxyServices class:
71
+
72
+ ```typescript
73
+ import { OxyServices } from '@oxyhq/services';
74
+
75
+ const oxy = new OxyServices({ baseURL: 'https://api.oxy.so' });
76
+
77
+ // Request authentication (shows QR code / deep link)
78
+ // User approves in Oxy Accounts app
79
+ // Returns session when approved
80
+ const session = await oxy.requestAuth({ appId: 'my-app' });
81
+ ```
82
+
83
+ ## Security Considerations
84
+
85
+ ### Message Formats
86
+ All signed messages follow specific formats to prevent replay attacks:
87
+
88
+ - **Authentication**: `auth:{publicKey}:{challenge}:{timestamp}`
89
+ - **Registration**: `oxy:register:{publicKey}:{timestamp}`
90
+ - **API Requests**: `request:{publicKey}:{timestamp}:{canonicalData}`
91
+
92
+ Timestamps must be within 5 minutes to be valid.
93
+
94
+ ### Key Storage
95
+ - Private keys are stored in device secure storage (iOS Keychain, Android Keystore)
96
+ - Never transmitted or exposed outside the device
97
+ - Only the Oxy Accounts app has access to private keys
98
+
99
+ ### Backup Encryption
100
+ ⚠️ **Current Implementation**: The backup encryption currently uses a custom XOR scheme with key stretching. This is functional but not optimal.
101
+
102
+ 📋 **Planned Improvement**: Migrate to standard AES-256-GCM encryption for better security and interoperability.
103
+
104
+ ## Separation of Concerns
105
+
106
+ ### Oxy Accounts App
107
+ - Owns and manages the user's private key
108
+ - Handles identity creation, backup, and recovery
109
+ - Signs authentication challenges
110
+ - Uses `KeyManager` and `SignatureService`
111
+
112
+ ### Services SDK / Third-Party Apps
113
+ - Does NOT generate or store private keys
114
+ - Displays QR codes and deep links for authentication
115
+ - Polls server for authentication status
116
+ - Uses `OxyServices` class for API communication
117
+
118
+ ### API Backend
119
+ - Generates challenges
120
+ - Verifies signatures using public keys
121
+ - Manages sessions and user data
122
+ - Uses `SignatureService` from `@oxyhq/services/node`
123
+
124
+ ## Migration from Old Signature Service
125
+
126
+ The API previously had a duplicate `signature.service.ts` file. This has been replaced with a re-export from `@oxyhq/services/node` to ensure consistency and eliminate duplication.
127
+
128
+ If you're maintaining code that imports from the old location, it will continue to work as the file now re-exports from the shared module.
129
+
130
+ ## Testing
131
+
132
+ When making changes to crypto code:
133
+ 1. Test in both React Native and Node.js environments
134
+ 2. Verify signatures created in one environment can be verified in another
135
+ 3. Check that timestamps are properly validated
136
+ 4. Ensure message formats match exactly between client and server
137
+
138
+ ## Further Reading
139
+
140
+ - [Public Key Authentication Guide](../docs/PUBLIC_KEY_AUTHENTICATION.md)
141
+ - [ECDSA on secp256k1](https://en.bitcoin.it/wiki/Secp256k1)
142
+ - [Expo SecureStore Documentation](https://docs.expo.dev/versions/latest/sdk/securestore/)
@@ -0,0 +1,133 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * Core Cryptographic Functions - Platform Agnostic
5
+ *
6
+ * This module contains the core signature verification logic
7
+ * that is shared between all platforms (React Native, Node.js, Web).
8
+ * Platform-specific implementations (hashing, random generation) are injected.
9
+ */
10
+
11
+ import { ec as EC } from 'elliptic';
12
+ const ec = new EC('secp256k1');
13
+
14
+ // Constants for signature validation
15
+ export const CHALLENGE_TTL_MS = 5 * 60 * 1000; // 5 minutes
16
+ export const MAX_SIGNATURE_AGE_MS = 5 * 60 * 1000; // 5 minutes
17
+
18
+ /**
19
+ * Core signature verification using elliptic curve
20
+ * This is platform-agnostic and works everywhere
21
+ */
22
+ export function verifySignatureCore(messageHash, signature, publicKey) {
23
+ try {
24
+ const key = ec.keyFromPublic(publicKey, 'hex');
25
+ return key.verify(messageHash, signature);
26
+ } catch {
27
+ return false;
28
+ }
29
+ }
30
+
31
+ /**
32
+ * Validate that a string is a valid public key
33
+ */
34
+ export function isValidPublicKey(publicKey) {
35
+ // Reject empty strings
36
+ if (!publicKey || publicKey.trim().length === 0) {
37
+ return false;
38
+ }
39
+ try {
40
+ ec.keyFromPublic(publicKey, 'hex');
41
+ return true;
42
+ } catch {
43
+ return false;
44
+ }
45
+ }
46
+
47
+ /**
48
+ * Validate that a string is a valid private key
49
+ */
50
+ export function isValidPrivateKey(privateKey) {
51
+ // Reject empty strings
52
+ if (!privateKey || privateKey.trim().length === 0) {
53
+ return false;
54
+ }
55
+
56
+ // Private keys must be 64 hex characters (32 bytes)
57
+ if (!/^[0-9a-fA-F]{64}$/.test(privateKey)) {
58
+ return false;
59
+ }
60
+ try {
61
+ const keyPair = ec.keyFromPrivate(privateKey);
62
+ // Verify it can derive a public key and the key is valid
63
+ keyPair.getPublic('hex');
64
+ // Check that the private key is not zero (which would be invalid)
65
+ const priv = keyPair.getPrivate();
66
+ if (!priv || priv.isZero()) {
67
+ return false;
68
+ }
69
+ return true;
70
+ } catch {
71
+ return false;
72
+ }
73
+ }
74
+
75
+ /**
76
+ * Get a shortened display version of a public key
77
+ * Format: first 8 chars...last 8 chars
78
+ */
79
+ export function shortenPublicKey(publicKey) {
80
+ if (publicKey.length <= 20) return publicKey;
81
+ return `${publicKey.slice(0, 8)}...${publicKey.slice(-8)}`;
82
+ }
83
+
84
+ /**
85
+ * Derive public key from a private key (without storing)
86
+ */
87
+ export function derivePublicKey(privateKey) {
88
+ const keyPair = ec.keyFromPrivate(privateKey);
89
+ return keyPair.getPublic('hex');
90
+ }
91
+
92
+ /**
93
+ * Check timestamp freshness
94
+ */
95
+ export function isTimestampFresh(timestamp, maxAgeMs = MAX_SIGNATURE_AGE_MS) {
96
+ const now = Date.now();
97
+ return now - timestamp <= maxAgeMs;
98
+ }
99
+
100
+ /**
101
+ * Build authentication challenge message
102
+ * Format: auth:{publicKey}:{challenge}:{timestamp}
103
+ */
104
+ export function buildAuthMessage(publicKey, challenge, timestamp) {
105
+ return `auth:${publicKey}:${challenge}:${timestamp}`;
106
+ }
107
+
108
+ /**
109
+ * Build registration message
110
+ * Format: oxy:register:{publicKey}:{timestamp}
111
+ */
112
+ export function buildRegistrationMessage(publicKey, timestamp) {
113
+ return `oxy:register:${publicKey}:${timestamp}`;
114
+ }
115
+
116
+ /**
117
+ * Build request signature message
118
+ * Format: request:{publicKey}:{timestamp}:{canonicalString}
119
+ */
120
+ export function buildRequestMessage(publicKey, timestamp, data) {
121
+ const sortedKeys = Object.keys(data).sort();
122
+ const canonicalParts = sortedKeys.map(key => `${key}:${JSON.stringify(data[key])}`);
123
+ const canonicalString = canonicalParts.join('|');
124
+ return `request:${publicKey}:${timestamp}:${canonicalString}`;
125
+ }
126
+
127
+ /**
128
+ * Get the elliptic curve instance (for key generation)
129
+ */
130
+ export function getEllipticCurve() {
131
+ return ec;
132
+ }
133
+ //# sourceMappingURL=core.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["ec","EC","CHALLENGE_TTL_MS","MAX_SIGNATURE_AGE_MS","verifySignatureCore","messageHash","signature","publicKey","key","keyFromPublic","verify","isValidPublicKey","trim","length","isValidPrivateKey","privateKey","test","keyPair","keyFromPrivate","getPublic","priv","getPrivate","isZero","shortenPublicKey","slice","derivePublicKey","isTimestampFresh","timestamp","maxAgeMs","now","Date","buildAuthMessage","challenge","buildRegistrationMessage","buildRequestMessage","data","sortedKeys","Object","keys","sort","canonicalParts","map","JSON","stringify","canonicalString","join","getEllipticCurve"],"sourceRoot":"../../../src","sources":["crypto/core.ts"],"mappings":"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","ignoreList":[]}
@@ -5,21 +5,15 @@
5
5
  *
6
6
  * Provides cryptographic identity management for the Oxy ecosystem.
7
7
  * Handles key generation, secure storage, and digital signatures.
8
- *
9
- * ⚠️ IMPORTANT: KeyManager is primarily intended for use in the Oxy Accounts app.
10
- * While it's exported here for convenience, third-party applications should NOT
11
- * generate or store user identities. The Accounts app is the identity wallet.
12
- *
13
- * For third-party apps:
14
- * - Use SignatureService for signing operations (but keys come from Accounts app)
15
- * - Do NOT call KeyManager.createIdentity() or KeyManager.importKeyPair()
16
- * - The Oxy Accounts app handles all identity generation and key storage
17
8
  */
18
9
 
19
10
  // Import polyfills first - this ensures Buffer is available for crypto libraries
20
11
  import './polyfill';
21
12
  export { KeyManager } from './keyManager';
22
13
  export { SignatureService } from './signatureService';
14
+ // Export core crypto utilities (shared across platforms)
15
+ export * from './core';
16
+
23
17
  // Re-export for convenience
24
18
  export { KeyManager as default } from './keyManager';
25
19
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["KeyManager","SignatureService","default"],"sourceRoot":"../../../src","sources":["crypto/index.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,OAAO,YAAY;AAEnB,SAASA,UAAU,QAAsB,cAAc;AACvD,SACEC,gBAAgB,QAGX,oBAAoB;AAG3B;AACA,SAASD,UAAU,IAAIE,OAAO,QAAQ,cAAc","ignoreList":[]}
1
+ {"version":3,"names":["KeyManager","SignatureService","default"],"sourceRoot":"../../../src","sources":["crypto/index.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,OAAO,YAAY;AAEnB,SAASA,UAAU,QAAsB,cAAc;AACvD,SACEC,gBAAgB,QAGX,oBAAoB;AAG3B;AACA,cAAc,QAAQ;;AAEtB;AACA,SAASD,UAAU,IAAIE,OAAO,QAAQ,cAAc","ignoreList":[]}
@@ -3,18 +3,29 @@
3
3
  /**
4
4
  * Key Manager - ECDSA secp256k1 Key Generation and Storage
5
5
  *
6
- * Handles secure generation, storage, and retrieval of cryptographic keys.
6
+ * ⚠️ **FOR OXY ACCOUNTS APP ONLY**
7
+ *
8
+ * This module handles secure generation, storage, and retrieval of cryptographic keys.
7
9
  * Private keys are stored securely using expo-secure-store and never leave the device.
10
+ *
11
+ * **IMPORTANT**: Third-party apps should NOT use KeyManager directly.
12
+ * Instead, use the OxyServices authentication flows which communicate with the
13
+ * Oxy Accounts app via deep links/QR codes to obtain user authorization.
14
+ *
15
+ * The Oxy Accounts app is the sole owner of the user's private key and identity.
16
+ * Other apps request authentication from the Accounts app, which signs challenges
17
+ * and returns authorization to the requesting app via the API.
18
+ *
19
+ * @see {@link https://github.com/OxyHQ/OxyHQServices/blob/main/packages/services/src/crypto/README.md|Crypto Module Documentation}
8
20
  */
9
21
 
10
- import { ec as EC } from 'elliptic';
11
22
  import { Platform } from 'react-native';
12
- import { shortenPublicKey as sharedShortenPublicKey } from '../shared';
23
+ import { isValidPublicKey as validatePublicKey, isValidPrivateKey as validatePrivateKey, derivePublicKey as derivePublicKeyFromPrivate, shortenPublicKey as shortenKey, getEllipticCurve } from './core';
13
24
 
14
25
  // Lazy imports for React Native specific modules
15
26
  let SecureStore = null;
16
27
  let ExpoCrypto = null;
17
- const ec = new EC('secp256k1');
28
+ const ec = getEllipticCurve();
18
29
  const STORAGE_KEYS = {
19
30
  PRIVATE_KEY: 'oxy_identity_private_key',
20
31
  PUBLIC_KEY: 'oxy_identity_public_key',
@@ -469,34 +480,21 @@ export class KeyManager {
469
480
  * Derive public key from a private key (without storing)
470
481
  */
471
482
  static derivePublicKey(privateKey) {
472
- const keyPair = ec.keyFromPrivate(privateKey);
473
- return keyPair.getPublic('hex');
483
+ return derivePublicKeyFromPrivate(privateKey);
474
484
  }
475
485
 
476
486
  /**
477
487
  * Validate that a string is a valid public key
478
488
  */
479
489
  static isValidPublicKey(publicKey) {
480
- try {
481
- ec.keyFromPublic(publicKey, 'hex');
482
- return true;
483
- } catch {
484
- return false;
485
- }
490
+ return validatePublicKey(publicKey);
486
491
  }
487
492
 
488
493
  /**
489
494
  * Validate that a string is a valid private key
490
495
  */
491
496
  static isValidPrivateKey(privateKey) {
492
- try {
493
- const keyPair = ec.keyFromPrivate(privateKey);
494
- // Verify it can derive a public key
495
- keyPair.getPublic('hex');
496
- return true;
497
- } catch {
498
- return false;
499
- }
497
+ return validatePrivateKey(privateKey);
500
498
  }
501
499
 
502
500
  /**
@@ -504,8 +502,7 @@ export class KeyManager {
504
502
  * Format: first 8 chars...last 8 chars
505
503
  */
506
504
  static shortenPublicKey(publicKey) {
507
- // Use shared utility
508
- return sharedShortenPublicKey(publicKey);
505
+ return shortenKey(publicKey);
509
506
  }
510
507
  }
511
508
  export default KeyManager;
@@ -1 +1 @@
1
- {"version":3,"names":["ec","EC","Platform","shortenPublicKey","sharedShortenPublicKey","SecureStore","ExpoCrypto","STORAGE_KEYS","PRIVATE_KEY","PUBLIC_KEY","BACKUP_PRIVATE_KEY","BACKUP_PUBLIC_KEY","BACKUP_TIMESTAMP","initSecureStore","error","errorMessage","Error","message","String","isReactNative","navigator","product","isNodeJS","process","versions","node","isWebPlatform","OS","window","initExpoCrypto","uint8ArrayToHex","bytes","Array","from","map","b","toString","padStart","join","getSecureRandomBytes","length","Crypto","getRandomBytes","getCrypto","Function","crypto","Uint8Array","randomBytes","KeyManager","cachedPublicKey","cachedHasIdentity","invalidateCache","generateKeyPairSync","keyPair","genKeyPair","privateKey","getPrivate","publicKey","getPublic","generateKeyPair","privateKeyHex","keyFromPrivate","createIdentity","store","setItemAsync","keychainAccessible","WHEN_UNLOCKED_THIS_DEVICE_ONLY","importKeyPair","getPrivateKey","getItemAsync","__DEV__","console","warn","getPublicKey","hasIdentity","deleteIdentity","skipBackup","force","userConfirmed","backupSuccess","backupIdentity","backupError","deleteItemAsync","Date","now","verifyIdentityIntegrity","isValidPrivateKey","isValidPublicKey","derivedPublicKey","derivePublicKey","getKeyPairObject","restoreIdentityFromBackup","backupPrivateKey","backupPublicKey","restored","keyFromPublic"],"sourceRoot":"../../../src","sources":["crypto/keyManager.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["Platform","isValidPublicKey","validatePublicKey","isValidPrivateKey","validatePrivateKey","derivePublicKey","derivePublicKeyFromPrivate","shortenPublicKey","shortenKey","getEllipticCurve","SecureStore","ExpoCrypto","ec","STORAGE_KEYS","PRIVATE_KEY","PUBLIC_KEY","BACKUP_PRIVATE_KEY","BACKUP_PUBLIC_KEY","BACKUP_TIMESTAMP","initSecureStore","error","errorMessage","Error","message","String","isReactNative","navigator","product","isNodeJS","process","versions","node","isWebPlatform","OS","window","initExpoCrypto","uint8ArrayToHex","bytes","Array","from","map","b","toString","padStart","join","getSecureRandomBytes","length","Crypto","getRandomBytes","getCrypto","Function","crypto","Uint8Array","randomBytes","KeyManager","cachedPublicKey","cachedHasIdentity","invalidateCache","generateKeyPairSync","keyPair","genKeyPair","privateKey","getPrivate","publicKey","getPublic","generateKeyPair","privateKeyHex","keyFromPrivate","createIdentity","store","setItemAsync","keychainAccessible","WHEN_UNLOCKED_THIS_DEVICE_ONLY","importKeyPair","getPrivateKey","getItemAsync","__DEV__","console","warn","getPublicKey","hasIdentity","deleteIdentity","skipBackup","force","userConfirmed","backupSuccess","backupIdentity","backupError","deleteItemAsync","Date","now","verifyIdentityIntegrity","derivedPublicKey","getKeyPairObject","restoreIdentityFromBackup","backupPrivateKey","backupPublicKey","restored"],"sourceRoot":"../../../src","sources":["crypto/keyManager.ts"],"mappings":"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","ignoreList":[]}