@oxyhq/services 5.16.35 → 5.16.36
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.
- package/README.md +8 -26
- package/lib/commonjs/core/OxyServices.base.js.map +1 -1
- package/lib/commonjs/core/mixins/OxyServices.user.js.map +1 -1
- package/lib/commonjs/core/mixins/OxyServices.utility.js.map +1 -1
- package/lib/commonjs/crypto/README.md +142 -0
- package/lib/commonjs/crypto/core.js +147 -0
- package/lib/commonjs/crypto/core.js.map +1 -0
- package/lib/commonjs/crypto/index.js +16 -0
- package/lib/commonjs/crypto/index.js.map +1 -1
- package/lib/commonjs/crypto/keyManager.js +19 -22
- package/lib/commonjs/crypto/keyManager.js.map +1 -1
- package/lib/commonjs/crypto/signatureService.js +116 -28
- package/lib/commonjs/crypto/signatureService.js.map +1 -1
- package/lib/commonjs/index.js +0 -12
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/models/interfaces.js +10 -11
- package/lib/commonjs/models/interfaces.js.map +1 -1
- package/lib/commonjs/node/index.js +10 -1
- package/lib/commonjs/node/index.js.map +1 -1
- package/lib/commonjs/node/signatureService.js +107 -0
- package/lib/commonjs/node/signatureService.js.map +1 -0
- package/lib/commonjs/ui/context/OxyContext.js.map +1 -1
- package/lib/commonjs/ui/context/hooks/useAuthOperations.js.map +1 -1
- package/lib/commonjs/ui/context/hooks/useLanguageManagement.js.map +1 -1
- package/lib/commonjs/ui/hooks/useLanguageManagement.js.map +1 -1
- package/lib/commonjs/ui/hooks/useSessionManagement.js.map +1 -1
- package/lib/commonjs/ui/index.js +0 -2
- package/lib/commonjs/ui/index.js.map +1 -1
- package/lib/commonjs/ui/screens/AccountSettingsScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/OxyAuthScreen.js +11 -2
- package/lib/commonjs/ui/screens/OxyAuthScreen.js.map +1 -1
- package/lib/module/core/OxyServices.base.js.map +1 -1
- package/lib/module/core/mixins/OxyServices.user.js.map +1 -1
- package/lib/module/core/mixins/OxyServices.utility.js.map +1 -1
- package/lib/module/crypto/README.md +142 -0
- package/lib/module/crypto/core.js +133 -0
- package/lib/module/crypto/core.js.map +1 -0
- package/lib/module/crypto/index.js +3 -9
- package/lib/module/crypto/index.js.map +1 -1
- package/lib/module/crypto/keyManager.js +19 -22
- package/lib/module/crypto/keyManager.js.map +1 -1
- package/lib/module/crypto/signatureService.js +113 -23
- package/lib/module/crypto/signatureService.js.map +1 -1
- package/lib/module/index.js +0 -2
- package/lib/module/index.js.map +1 -1
- package/lib/module/models/interfaces.js +10 -11
- package/lib/module/models/interfaces.js.map +1 -1
- package/lib/module/node/index.js +3 -0
- package/lib/module/node/index.js.map +1 -1
- package/lib/module/node/signatureService.js +101 -0
- package/lib/module/node/signatureService.js.map +1 -0
- package/lib/module/ui/context/OxyContext.js.map +1 -1
- package/lib/module/ui/context/hooks/useAuthOperations.js.map +1 -1
- package/lib/module/ui/context/hooks/useLanguageManagement.js.map +1 -1
- package/lib/module/ui/hooks/useLanguageManagement.js.map +1 -1
- package/lib/module/ui/hooks/useSessionManagement.js.map +1 -1
- package/lib/module/ui/index.js +0 -1
- package/lib/module/ui/index.js.map +1 -1
- package/lib/module/ui/screens/AccountSettingsScreen.js.map +1 -1
- package/lib/module/ui/screens/OxyAuthScreen.js +11 -2
- package/lib/module/ui/screens/OxyAuthScreen.js.map +1 -1
- package/lib/typescript/core/OxyServices.base.d.ts.map +1 -1
- package/lib/typescript/core/mixins/OxyServices.analytics.d.ts.map +1 -1
- package/lib/typescript/core/mixins/OxyServices.assets.d.ts.map +1 -1
- package/lib/typescript/core/mixins/OxyServices.auth.d.ts +1 -1
- package/lib/typescript/core/mixins/OxyServices.auth.d.ts.map +1 -1
- package/lib/typescript/core/mixins/OxyServices.developer.d.ts.map +1 -1
- package/lib/typescript/core/mixins/OxyServices.devices.d.ts.map +1 -1
- package/lib/typescript/core/mixins/OxyServices.karma.d.ts.map +1 -1
- package/lib/typescript/core/mixins/OxyServices.language.d.ts.map +1 -1
- package/lib/typescript/core/mixins/OxyServices.location.d.ts.map +1 -1
- package/lib/typescript/core/mixins/OxyServices.payment.d.ts.map +1 -1
- package/lib/typescript/core/mixins/OxyServices.privacy.d.ts.map +1 -1
- package/lib/typescript/core/mixins/OxyServices.security.d.ts.map +1 -1
- package/lib/typescript/core/mixins/OxyServices.user.d.ts +1 -2
- package/lib/typescript/core/mixins/OxyServices.user.d.ts.map +1 -1
- package/lib/typescript/core/mixins/OxyServices.utility.d.ts.map +1 -1
- package/lib/typescript/core/mixins/index.d.ts +13 -13
- package/lib/typescript/core/mixins/index.d.ts.map +1 -1
- package/lib/typescript/core/services/SessionService.d.ts +1 -1
- package/lib/typescript/core/services/SessionService.d.ts.map +1 -1
- package/lib/typescript/crypto/core.d.ts +56 -0
- package/lib/typescript/crypto/core.d.ts.map +1 -0
- package/lib/typescript/crypto/index.d.ts +1 -9
- package/lib/typescript/crypto/index.d.ts.map +1 -1
- package/lib/typescript/crypto/keyManager.d.ts +13 -1
- package/lib/typescript/crypto/keyManager.d.ts.map +1 -1
- package/lib/typescript/crypto/signatureService.d.ts +15 -9
- package/lib/typescript/crypto/signatureService.d.ts.map +1 -1
- package/lib/typescript/index.d.ts +1 -2
- package/lib/typescript/index.d.ts.map +1 -1
- package/lib/typescript/models/interfaces.d.ts +68 -15
- package/lib/typescript/models/interfaces.d.ts.map +1 -1
- package/lib/typescript/node/index.d.ts +1 -0
- package/lib/typescript/node/index.d.ts.map +1 -1
- package/lib/typescript/node/signatureService.d.ts +55 -0
- package/lib/typescript/node/signatureService.d.ts.map +1 -0
- package/lib/typescript/ui/context/OxyContext.d.ts +1 -2
- package/lib/typescript/ui/context/OxyContext.d.ts.map +1 -1
- package/lib/typescript/ui/context/hooks/useAuthOperations.d.ts +1 -2
- package/lib/typescript/ui/context/hooks/useAuthOperations.d.ts.map +1 -1
- package/lib/typescript/ui/context/hooks/useLanguageManagement.d.ts +1 -2
- package/lib/typescript/ui/context/hooks/useLanguageManagement.d.ts.map +1 -1
- package/lib/typescript/ui/hooks/mutations/useAccountMutations.d.ts +1 -1
- package/lib/typescript/ui/hooks/mutations/useAccountMutations.d.ts.map +1 -1
- package/lib/typescript/ui/hooks/queries/useAccountQueries.d.ts +1 -1
- package/lib/typescript/ui/hooks/queries/useAccountQueries.d.ts.map +1 -1
- package/lib/typescript/ui/hooks/useLanguageManagement.d.ts +1 -2
- package/lib/typescript/ui/hooks/useLanguageManagement.d.ts.map +1 -1
- package/lib/typescript/ui/hooks/useSessionManagement.d.ts +1 -2
- package/lib/typescript/ui/hooks/useSessionManagement.d.ts.map +1 -1
- package/lib/typescript/ui/index.d.ts +1 -1
- package/lib/typescript/ui/index.d.ts.map +1 -1
- package/lib/typescript/ui/screens/OxyAuthScreen.d.ts.map +1 -1
- package/lib/typescript/ui/stores/authStore.d.ts +1 -1
- package/lib/typescript/ui/stores/authStore.d.ts.map +1 -1
- package/lib/typescript/ui/utils/avatarUtils.d.ts +1 -1
- package/lib/typescript/ui/utils/avatarUtils.d.ts.map +1 -1
- package/package.json +6 -1
- package/src/core/OxyServices.base.ts +1 -2
- package/src/core/mixins/OxyServices.auth.ts +1 -1
- package/src/core/mixins/OxyServices.user.ts +1 -2
- package/src/core/mixins/OxyServices.utility.ts +1 -2
- package/src/core/services/SessionService.ts +1 -1
- package/src/crypto/README.md +142 -0
- package/src/crypto/__tests__/core.test.ts +203 -0
- package/src/crypto/core.ts +142 -0
- package/src/crypto/index.ts +3 -10
- package/src/crypto/keyManager.ts +25 -21
- package/src/crypto/signatureService.ts +137 -36
- package/src/index.ts +2 -3
- package/src/models/interfaces.ts +73 -21
- package/src/node/index.ts +3 -0
- package/src/node/signatureService.ts +126 -0
- package/src/ui/context/OxyContext.tsx +1 -2
- package/src/ui/context/hooks/useAuthOperations.ts +1 -2
- package/src/ui/context/hooks/useLanguageManagement.ts +1 -2
- package/src/ui/hooks/auth/index.ts +2 -0
- package/src/ui/hooks/mutations/useAccountMutations.ts +1 -1
- package/src/ui/hooks/mutations/useServicesMutations.ts +1 -1
- package/src/ui/hooks/queries/useAccountQueries.ts +1 -1
- package/src/ui/hooks/useLanguageManagement.ts +1 -2
- package/src/ui/hooks/useSessionManagement.ts +1 -2
- package/src/ui/index.ts +1 -2
- package/src/ui/screens/AccountSettingsScreen.tsx +6 -6
- package/src/ui/screens/AccountSwitcherScreen.tsx +1 -1
- package/src/ui/screens/OxyAuthScreen.tsx +11 -2
- package/src/ui/screens/ProfileScreen.tsx +1 -1
- package/src/ui/stores/authStore.ts +1 -1
- package/src/ui/types/navigation.ts +1 -1
- package/src/ui/utils/avatarUtils.ts +1 -1
- package/lib/commonjs/core/services/AuthService.js +0 -156
- package/lib/commonjs/core/services/AuthService.js.map +0 -1
- package/lib/commonjs/core/services/SessionTransportService.js +0 -64
- package/lib/commonjs/core/services/SessionTransportService.js.map +0 -1
- package/lib/commonjs/core/services/UserService.js +0 -123
- package/lib/commonjs/core/services/UserService.js.map +0 -1
- package/lib/commonjs/core/services/index.js +0 -34
- package/lib/commonjs/core/services/index.js.map +0 -1
- package/lib/commonjs/shared/crypto/messageBuilders.js +0 -79
- package/lib/commonjs/shared/crypto/messageBuilders.js.map +0 -1
- package/lib/commonjs/shared/crypto/platform.js +0 -118
- package/lib/commonjs/shared/crypto/platform.js.map +0 -1
- package/lib/commonjs/shared/crypto/signature.js +0 -191
- package/lib/commonjs/shared/crypto/signature.js.map +0 -1
- package/lib/commonjs/shared/index.js +0 -94
- package/lib/commonjs/shared/index.js.map +0 -1
- package/lib/commonjs/shared/models/index.js +0 -2
- package/lib/commonjs/shared/models/index.js.map +0 -1
- package/lib/commonjs/shared/transport/index.js +0 -260
- package/lib/commonjs/shared/transport/index.js.map +0 -1
- package/lib/commonjs/shared/utils/index.js +0 -82
- package/lib/commonjs/shared/utils/index.js.map +0 -1
- package/lib/module/core/services/AuthService.js +0 -151
- package/lib/module/core/services/AuthService.js.map +0 -1
- package/lib/module/core/services/SessionTransportService.js +0 -59
- package/lib/module/core/services/SessionTransportService.js.map +0 -1
- package/lib/module/core/services/UserService.js +0 -118
- package/lib/module/core/services/UserService.js.map +0 -1
- package/lib/module/core/services/index.js +0 -16
- package/lib/module/core/services/index.js.map +0 -1
- package/lib/module/shared/crypto/messageBuilders.js +0 -70
- package/lib/module/shared/crypto/messageBuilders.js.map +0 -1
- package/lib/module/shared/crypto/platform.js +0 -112
- package/lib/module/shared/crypto/platform.js.map +0 -1
- package/lib/module/shared/crypto/signature.js +0 -186
- package/lib/module/shared/crypto/signature.js.map +0 -1
- package/lib/module/shared/index.js +0 -30
- package/lib/module/shared/index.js.map +0 -1
- package/lib/module/shared/models/index.js +0 -2
- package/lib/module/shared/models/index.js.map +0 -1
- package/lib/module/shared/transport/index.js +0 -254
- package/lib/module/shared/transport/index.js.map +0 -1
- package/lib/module/shared/utils/index.js +0 -74
- package/lib/module/shared/utils/index.js.map +0 -1
- package/lib/typescript/core/services/AuthService.d.ts +0 -50
- package/lib/typescript/core/services/AuthService.d.ts.map +0 -1
- package/lib/typescript/core/services/SessionTransportService.d.ts +0 -31
- package/lib/typescript/core/services/SessionTransportService.d.ts.map +0 -1
- package/lib/typescript/core/services/UserService.d.ts +0 -39
- package/lib/typescript/core/services/UserService.d.ts.map +0 -1
- package/lib/typescript/core/services/index.d.ts +0 -13
- package/lib/typescript/core/services/index.d.ts.map +0 -1
- package/lib/typescript/shared/crypto/messageBuilders.d.ts +0 -38
- package/lib/typescript/shared/crypto/messageBuilders.d.ts.map +0 -1
- package/lib/typescript/shared/crypto/platform.d.ts +0 -54
- package/lib/typescript/shared/crypto/platform.d.ts.map +0 -1
- package/lib/typescript/shared/crypto/signature.d.ts +0 -72
- package/lib/typescript/shared/crypto/signature.d.ts.map +0 -1
- package/lib/typescript/shared/index.d.ts +0 -20
- package/lib/typescript/shared/index.d.ts.map +0 -1
- package/lib/typescript/shared/models/index.d.ts +0 -163
- package/lib/typescript/shared/models/index.d.ts.map +0 -1
- package/lib/typescript/shared/transport/index.d.ts +0 -73
- package/lib/typescript/shared/transport/index.d.ts.map +0 -1
- package/lib/typescript/shared/utils/index.d.ts +0 -28
- package/lib/typescript/shared/utils/index.d.ts.map +0 -1
- package/src/core/services/AuthService.ts +0 -153
- package/src/core/services/SessionTransportService.ts +0 -69
- package/src/core/services/UserService.ts +0 -125
- package/src/core/services/index.ts +0 -14
- package/src/shared/crypto/messageBuilders.ts +0 -89
- package/src/shared/crypto/platform.ts +0 -140
- package/src/shared/crypto/signature.ts +0 -235
- package/src/shared/index.ts +0 -28
- package/src/shared/models/index.ts +0 -173
- package/src/shared/transport/index.ts +0 -349
- package/src/shared/utils/index.ts +0 -73
package/README.md
CHANGED
|
@@ -327,9 +327,6 @@ import {
|
|
|
327
327
|
} from '@oxyhq/services';
|
|
328
328
|
|
|
329
329
|
// Crypto module (for identity management)
|
|
330
|
-
// ⚠️ IMPORTANT: KeyManager is primarily for the Oxy Accounts app.
|
|
331
|
-
// Third-party apps should NOT generate or store user identities.
|
|
332
|
-
// See "Identity Management" section below for details.
|
|
333
330
|
import {
|
|
334
331
|
KeyManager,
|
|
335
332
|
SignatureService
|
|
@@ -495,25 +492,21 @@ Oxy uses **public/private key cryptography** (ECDSA secp256k1) instead of passwo
|
|
|
495
492
|
|
|
496
493
|
### Public Key Authentication
|
|
497
494
|
|
|
498
|
-
⚠️ **Important**: Identity management (creating/importing identities) should only be done in the **Oxy Accounts app**. Third-party applications should use "Sign in with Oxy" (see below) rather than managing identities directly.
|
|
499
|
-
|
|
500
|
-
#### In Oxy Accounts App (Identity Wallet)
|
|
501
|
-
|
|
502
495
|
```typescript
|
|
503
496
|
import { useOxy } from '@oxyhq/services';
|
|
504
497
|
|
|
505
498
|
function AuthScreen() {
|
|
506
499
|
const { createIdentity, importIdentity, signIn, hasIdentity } = useOxy();
|
|
507
500
|
|
|
508
|
-
// Create new identity (
|
|
501
|
+
// Create new identity (in Oxy Accounts app)
|
|
509
502
|
const handleCreate = async () => {
|
|
510
503
|
const { synced } = await createIdentity();
|
|
511
504
|
// Identity created - user should create backup file
|
|
512
505
|
};
|
|
513
506
|
|
|
514
|
-
// Import existing identity from backup file
|
|
507
|
+
// Import existing identity from backup file
|
|
515
508
|
const handleImport = async (backupData: { encrypted: string; salt: string; iv: string; publicKey: string }, password: string) => {
|
|
516
|
-
const user = await importIdentity(
|
|
509
|
+
const user = await importIdentity(phrase, 'username', 'email');
|
|
517
510
|
};
|
|
518
511
|
|
|
519
512
|
// Sign in with stored identity
|
|
@@ -526,17 +519,6 @@ function AuthScreen() {
|
|
|
526
519
|
}
|
|
527
520
|
```
|
|
528
521
|
|
|
529
|
-
#### KeyManager Usage
|
|
530
|
-
|
|
531
|
-
`KeyManager` is exported from `@oxyhq/services/crypto` for convenience but is **primarily intended for use in the Oxy Accounts app**.
|
|
532
|
-
|
|
533
|
-
**For third-party apps:**
|
|
534
|
-
- ❌ **Do NOT** call `KeyManager.createIdentity()` or `KeyManager.importKeyPair()`
|
|
535
|
-
- ✅ **Do** use `SignatureService` for signing operations (when keys are provided by Accounts app)
|
|
536
|
-
- ✅ **Do** use "Sign in with Oxy" flow (see below) for user authentication
|
|
537
|
-
|
|
538
|
-
The Accounts app is the identity wallet that manages all cryptographic keys.
|
|
539
|
-
|
|
540
522
|
### Cross-App Authentication (Sign in with Oxy)
|
|
541
523
|
|
|
542
524
|
For third-party apps that want to allow users to sign in with their Oxy identity:
|
|
@@ -888,14 +870,14 @@ import { oxyClient } from '@oxyhq/services';
|
|
|
888
870
|
const app = express();
|
|
889
871
|
app.use(express.json());
|
|
890
872
|
|
|
891
|
-
// Auth routes
|
|
892
|
-
app.post('/api/auth/
|
|
873
|
+
// Auth routes
|
|
874
|
+
app.post('/api/auth/signin', async (req, res) => {
|
|
893
875
|
try {
|
|
894
|
-
const {
|
|
895
|
-
const response = await oxyClient.
|
|
876
|
+
const { username, password } = req.body;
|
|
877
|
+
const response = await oxyClient.signIn(username, password);
|
|
896
878
|
res.json(response);
|
|
897
879
|
} catch (error) {
|
|
898
|
-
res.status(
|
|
880
|
+
res.status(401).json({ error: error.message });
|
|
899
881
|
}
|
|
900
882
|
});
|
|
901
883
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_errorUtils","require","_HttpService","_OxyServices","_TokenService","OxyServicesBase","constructor","args","config","Error","cloudURL","httpService","HttpService","__resetTokensForTests","makeRequest","method","url","data","options","request","undefined","params","getBaseURL","getClient","getMetrics","clearCache","clearCacheEntry","key","getCacheStats","getCloudURL","setTokens","accessToken","refreshToken","clearTokens","getCurrentUserId","tokenService","getUserIdFromToken","hasValidToken","hasAccessToken","getAccessToken","waitForAuth","timeoutMs","startTime","performance","now","maxTime","pollInterval","Promise","resolve","setTimeout","Math","min","withAuthRetry","operation","operationName","maxRetries","retryDelay","authTimeoutMs","attempt","authReady","OxyAuthenticationTimeoutError","OxyAuthenticationError","error","isLastAttempt","errorObj","isAuthError","response","status","code","message","includes","handleError","validate","res","cache","retry","valid","api","handleHttpError","trim","err","details","healthCheck","timeout","exports"],"sourceRoot":"../../../src","sources":["core/OxyServices.base.ts"],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"names":["_errorUtils","require","_HttpService","_OxyServices","_TokenService","OxyServicesBase","constructor","args","config","Error","cloudURL","httpService","HttpService","__resetTokensForTests","makeRequest","method","url","data","options","request","undefined","params","getBaseURL","getClient","getMetrics","clearCache","clearCacheEntry","key","getCacheStats","getCloudURL","setTokens","accessToken","refreshToken","clearTokens","getCurrentUserId","tokenService","getUserIdFromToken","hasValidToken","hasAccessToken","getAccessToken","waitForAuth","timeoutMs","startTime","performance","now","maxTime","pollInterval","Promise","resolve","setTimeout","Math","min","withAuthRetry","operation","operationName","maxRetries","retryDelay","authTimeoutMs","attempt","authReady","OxyAuthenticationTimeoutError","OxyAuthenticationError","error","isLastAttempt","errorObj","isAuthError","response","status","code","message","includes","handleError","validate","res","cache","retry","valid","api","handleHttpError","trim","err","details","healthCheck","timeout","exports"],"sourceRoot":"../../../src","sources":["core/OxyServices.base.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_apiUtils","require","OxyServicesUserMixin","Base","constructor","args","getProfileByUsername","username","makeRequest","undefined","cache","cacheTTL","error","handleError","searchProfiles","query","pagination","params","searchParams","buildSearchParams","paramsObj","Object","fromEntries","entries","response","isSearchProfilesResponse","payload","Array","isArray","data","typedResponse","paginationInfo","total","length","limit","offset","hasMore","fallbackLimit","fallbackPagination","Error","getProfileRecommendations","withAuthRetry","getUserById","userId","getCurrentUser","updateProfile","updates","errorAny","errorMessage","message","String","status","isAuthError","includes","hasValidToken","getPrivacySettings","id","getCurrentUserId","updatePrivacySettings","settings","requestAccountVerification","reason","evidence","downloadAccountData","format","result","getClient","request","method","url","deleteAccount","password","confirmText","followUser","unfollowUser","getFollowStatus","getUserFollowers","buildPaginationParams","followers","getUserFollowing","following","getNotifications","getUnreadCount","res","count","createNotification","markNotificationAsRead","notificationId","markAllNotificationsAsRead","deleteNotification"],"sourceRoot":"../../../../src","sources":["core/mixins/OxyServices.user.ts"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_apiUtils","require","OxyServicesUserMixin","Base","constructor","args","getProfileByUsername","username","makeRequest","undefined","cache","cacheTTL","error","handleError","searchProfiles","query","pagination","params","searchParams","buildSearchParams","paramsObj","Object","fromEntries","entries","response","isSearchProfilesResponse","payload","Array","isArray","data","typedResponse","paginationInfo","total","length","limit","offset","hasMore","fallbackLimit","fallbackPagination","Error","getProfileRecommendations","withAuthRetry","getUserById","userId","getCurrentUser","updateProfile","updates","errorAny","errorMessage","message","String","status","isAuthError","includes","hasValidToken","getPrivacySettings","id","getCurrentUserId","updatePrivacySettings","settings","requestAccountVerification","reason","evidence","downloadAccountData","format","result","getClient","request","method","url","deleteAccount","password","confirmText","followUser","unfollowUser","getFollowStatus","getUserFollowers","buildPaginationParams","followers","getUserFollowing","following","getNotifications","getUnreadCount","res","count","createNotification","markNotificationAsRead","notificationId","markAllNotificationsAsRead","deleteNotification"],"sourceRoot":"../../../../src","sources":["core/mixins/OxyServices.user.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_jwtDecode","require","_mixinHelpers","OxyServicesUtilityMixin","Base","constructor","args","fetchLinkMetadata","url","makeRequest","cache","cacheTTL","CACHE_TIMES","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","jwtDecode","userId","id","decodeError","exp","Math","floor","Date","now","accessToken","user","setTokens","apiError"],"sourceRoot":"../../../../src","sources":["core/mixins/OxyServices.utility.ts"],"mappings":";;;;;;AAMA,IAAAA,UAAA,GAAAC,OAAA;
|
|
1
|
+
{"version":3,"names":["_jwtDecode","require","_mixinHelpers","OxyServicesUtilityMixin","Base","constructor","args","fetchLinkMetadata","url","makeRequest","cache","cacheTTL","CACHE_TIMES","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","jwtDecode","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,147 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.MAX_SIGNATURE_AGE_MS = exports.CHALLENGE_TTL_MS = void 0;
|
|
7
|
+
exports.buildAuthMessage = buildAuthMessage;
|
|
8
|
+
exports.buildRegistrationMessage = buildRegistrationMessage;
|
|
9
|
+
exports.buildRequestMessage = buildRequestMessage;
|
|
10
|
+
exports.derivePublicKey = derivePublicKey;
|
|
11
|
+
exports.getEllipticCurve = getEllipticCurve;
|
|
12
|
+
exports.isTimestampFresh = isTimestampFresh;
|
|
13
|
+
exports.isValidPrivateKey = isValidPrivateKey;
|
|
14
|
+
exports.isValidPublicKey = isValidPublicKey;
|
|
15
|
+
exports.shortenPublicKey = shortenPublicKey;
|
|
16
|
+
exports.verifySignatureCore = verifySignatureCore;
|
|
17
|
+
var _elliptic = require("elliptic");
|
|
18
|
+
/**
|
|
19
|
+
* Core Cryptographic Functions - Platform Agnostic
|
|
20
|
+
*
|
|
21
|
+
* This module contains the core signature verification logic
|
|
22
|
+
* that is shared between all platforms (React Native, Node.js, Web).
|
|
23
|
+
* Platform-specific implementations (hashing, random generation) are injected.
|
|
24
|
+
*/
|
|
25
|
+
|
|
26
|
+
const ec = new _elliptic.ec('secp256k1');
|
|
27
|
+
|
|
28
|
+
// Constants for signature validation
|
|
29
|
+
const CHALLENGE_TTL_MS = exports.CHALLENGE_TTL_MS = 5 * 60 * 1000; // 5 minutes
|
|
30
|
+
const MAX_SIGNATURE_AGE_MS = exports.MAX_SIGNATURE_AGE_MS = 5 * 60 * 1000; // 5 minutes
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Core signature verification using elliptic curve
|
|
34
|
+
* This is platform-agnostic and works everywhere
|
|
35
|
+
*/
|
|
36
|
+
function verifySignatureCore(messageHash, signature, publicKey) {
|
|
37
|
+
try {
|
|
38
|
+
const key = ec.keyFromPublic(publicKey, 'hex');
|
|
39
|
+
return key.verify(messageHash, signature);
|
|
40
|
+
} catch {
|
|
41
|
+
return false;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* Validate that a string is a valid public key
|
|
47
|
+
*/
|
|
48
|
+
function isValidPublicKey(publicKey) {
|
|
49
|
+
// Reject empty strings
|
|
50
|
+
if (!publicKey || publicKey.trim().length === 0) {
|
|
51
|
+
return false;
|
|
52
|
+
}
|
|
53
|
+
try {
|
|
54
|
+
ec.keyFromPublic(publicKey, 'hex');
|
|
55
|
+
return true;
|
|
56
|
+
} catch {
|
|
57
|
+
return false;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* Validate that a string is a valid private key
|
|
63
|
+
*/
|
|
64
|
+
function isValidPrivateKey(privateKey) {
|
|
65
|
+
// Reject empty strings
|
|
66
|
+
if (!privateKey || privateKey.trim().length === 0) {
|
|
67
|
+
return false;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
// Private keys must be 64 hex characters (32 bytes)
|
|
71
|
+
if (!/^[0-9a-fA-F]{64}$/.test(privateKey)) {
|
|
72
|
+
return false;
|
|
73
|
+
}
|
|
74
|
+
try {
|
|
75
|
+
const keyPair = ec.keyFromPrivate(privateKey);
|
|
76
|
+
// Verify it can derive a public key and the key is valid
|
|
77
|
+
keyPair.getPublic('hex');
|
|
78
|
+
// Check that the private key is not zero (which would be invalid)
|
|
79
|
+
const priv = keyPair.getPrivate();
|
|
80
|
+
if (!priv || priv.isZero()) {
|
|
81
|
+
return false;
|
|
82
|
+
}
|
|
83
|
+
return true;
|
|
84
|
+
} catch {
|
|
85
|
+
return false;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
/**
|
|
90
|
+
* Get a shortened display version of a public key
|
|
91
|
+
* Format: first 8 chars...last 8 chars
|
|
92
|
+
*/
|
|
93
|
+
function shortenPublicKey(publicKey) {
|
|
94
|
+
if (publicKey.length <= 20) return publicKey;
|
|
95
|
+
return `${publicKey.slice(0, 8)}...${publicKey.slice(-8)}`;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
/**
|
|
99
|
+
* Derive public key from a private key (without storing)
|
|
100
|
+
*/
|
|
101
|
+
function derivePublicKey(privateKey) {
|
|
102
|
+
const keyPair = ec.keyFromPrivate(privateKey);
|
|
103
|
+
return keyPair.getPublic('hex');
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
/**
|
|
107
|
+
* Check timestamp freshness
|
|
108
|
+
*/
|
|
109
|
+
function isTimestampFresh(timestamp, maxAgeMs = MAX_SIGNATURE_AGE_MS) {
|
|
110
|
+
const now = Date.now();
|
|
111
|
+
return now - timestamp <= maxAgeMs;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
/**
|
|
115
|
+
* Build authentication challenge message
|
|
116
|
+
* Format: auth:{publicKey}:{challenge}:{timestamp}
|
|
117
|
+
*/
|
|
118
|
+
function buildAuthMessage(publicKey, challenge, timestamp) {
|
|
119
|
+
return `auth:${publicKey}:${challenge}:${timestamp}`;
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
/**
|
|
123
|
+
* Build registration message
|
|
124
|
+
* Format: oxy:register:{publicKey}:{timestamp}
|
|
125
|
+
*/
|
|
126
|
+
function buildRegistrationMessage(publicKey, timestamp) {
|
|
127
|
+
return `oxy:register:${publicKey}:${timestamp}`;
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
/**
|
|
131
|
+
* Build request signature message
|
|
132
|
+
* Format: request:{publicKey}:{timestamp}:{canonicalString}
|
|
133
|
+
*/
|
|
134
|
+
function buildRequestMessage(publicKey, timestamp, data) {
|
|
135
|
+
const sortedKeys = Object.keys(data).sort();
|
|
136
|
+
const canonicalParts = sortedKeys.map(key => `${key}:${JSON.stringify(data[key])}`);
|
|
137
|
+
const canonicalString = canonicalParts.join('|');
|
|
138
|
+
return `request:${publicKey}:${timestamp}:${canonicalString}`;
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
/**
|
|
142
|
+
* Get the elliptic curve instance (for key generation)
|
|
143
|
+
*/
|
|
144
|
+
function getEllipticCurve() {
|
|
145
|
+
return ec;
|
|
146
|
+
}
|
|
147
|
+
//# sourceMappingURL=core.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_elliptic","require","ec","EC","CHALLENGE_TTL_MS","exports","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":[]}
|
|
@@ -3,6 +3,10 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
+
var _exportNames = {
|
|
7
|
+
KeyManager: true,
|
|
8
|
+
SignatureService: true
|
|
9
|
+
};
|
|
6
10
|
Object.defineProperty(exports, "KeyManager", {
|
|
7
11
|
enumerable: true,
|
|
8
12
|
get: function () {
|
|
@@ -24,4 +28,16 @@ Object.defineProperty(exports, "default", {
|
|
|
24
28
|
require("./polyfill");
|
|
25
29
|
var _keyManager = require("./keyManager");
|
|
26
30
|
var _signatureService = require("./signatureService");
|
|
31
|
+
var _core = require("./core");
|
|
32
|
+
Object.keys(_core).forEach(function (key) {
|
|
33
|
+
if (key === "default" || key === "__esModule") return;
|
|
34
|
+
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
35
|
+
if (key in exports && exports[key] === _core[key]) return;
|
|
36
|
+
Object.defineProperty(exports, key, {
|
|
37
|
+
enumerable: true,
|
|
38
|
+
get: function () {
|
|
39
|
+
return _core[key];
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
});
|
|
27
43
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["require","_keyManager","_signatureService"],"sourceRoot":"../../../src","sources":["crypto/index.ts"],"mappings":"
|
|
1
|
+
{"version":3,"names":["require","_keyManager","_signatureService","_core","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get"],"sourceRoot":"../../../src","sources":["crypto/index.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAQAA,OAAA;AAEA,IAAAC,WAAA,GAAAD,OAAA;AACA,IAAAE,iBAAA,GAAAF,OAAA;AAQA,IAAAG,KAAA,GAAAH,OAAA;AAAAI,MAAA,CAAAC,IAAA,CAAAF,KAAA,EAAAG,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAJ,KAAA,CAAAI,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAZ,KAAA,CAAAI,GAAA;IAAA;EAAA;AAAA","ignoreList":[]}
|
|
@@ -4,19 +4,30 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = exports.KeyManager = void 0;
|
|
7
|
-
var _elliptic = require("elliptic");
|
|
8
7
|
var _reactNative = require("react-native");
|
|
9
|
-
var
|
|
8
|
+
var _core = require("./core");
|
|
10
9
|
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); } /**
|
|
11
10
|
* Key Manager - ECDSA secp256k1 Key Generation and Storage
|
|
12
11
|
*
|
|
13
|
-
*
|
|
12
|
+
* ⚠️ **FOR OXY ACCOUNTS APP ONLY**
|
|
13
|
+
*
|
|
14
|
+
* This module handles secure generation, storage, and retrieval of cryptographic keys.
|
|
14
15
|
* Private keys are stored securely using expo-secure-store and never leave the device.
|
|
16
|
+
*
|
|
17
|
+
* **IMPORTANT**: Third-party apps should NOT use KeyManager directly.
|
|
18
|
+
* Instead, use the OxyServices authentication flows which communicate with the
|
|
19
|
+
* Oxy Accounts app via deep links/QR codes to obtain user authorization.
|
|
20
|
+
*
|
|
21
|
+
* The Oxy Accounts app is the sole owner of the user's private key and identity.
|
|
22
|
+
* Other apps request authentication from the Accounts app, which signs challenges
|
|
23
|
+
* and returns authorization to the requesting app via the API.
|
|
24
|
+
*
|
|
25
|
+
* @see {@link https://github.com/OxyHQ/OxyHQServices/blob/main/packages/services/src/crypto/README.md|Crypto Module Documentation}
|
|
15
26
|
*/
|
|
16
27
|
// Lazy imports for React Native specific modules
|
|
17
28
|
let SecureStore = null;
|
|
18
29
|
let ExpoCrypto = null;
|
|
19
|
-
const ec =
|
|
30
|
+
const ec = (0, _core.getEllipticCurve)();
|
|
20
31
|
const STORAGE_KEYS = {
|
|
21
32
|
PRIVATE_KEY: 'oxy_identity_private_key',
|
|
22
33
|
PUBLIC_KEY: 'oxy_identity_public_key',
|
|
@@ -471,34 +482,21 @@ class KeyManager {
|
|
|
471
482
|
* Derive public key from a private key (without storing)
|
|
472
483
|
*/
|
|
473
484
|
static derivePublicKey(privateKey) {
|
|
474
|
-
|
|
475
|
-
return keyPair.getPublic('hex');
|
|
485
|
+
return (0, _core.derivePublicKey)(privateKey);
|
|
476
486
|
}
|
|
477
487
|
|
|
478
488
|
/**
|
|
479
489
|
* Validate that a string is a valid public key
|
|
480
490
|
*/
|
|
481
491
|
static isValidPublicKey(publicKey) {
|
|
482
|
-
|
|
483
|
-
ec.keyFromPublic(publicKey, 'hex');
|
|
484
|
-
return true;
|
|
485
|
-
} catch {
|
|
486
|
-
return false;
|
|
487
|
-
}
|
|
492
|
+
return (0, _core.isValidPublicKey)(publicKey);
|
|
488
493
|
}
|
|
489
494
|
|
|
490
495
|
/**
|
|
491
496
|
* Validate that a string is a valid private key
|
|
492
497
|
*/
|
|
493
498
|
static isValidPrivateKey(privateKey) {
|
|
494
|
-
|
|
495
|
-
const keyPair = ec.keyFromPrivate(privateKey);
|
|
496
|
-
// Verify it can derive a public key
|
|
497
|
-
keyPair.getPublic('hex');
|
|
498
|
-
return true;
|
|
499
|
-
} catch {
|
|
500
|
-
return false;
|
|
501
|
-
}
|
|
499
|
+
return (0, _core.isValidPrivateKey)(privateKey);
|
|
502
500
|
}
|
|
503
501
|
|
|
504
502
|
/**
|
|
@@ -506,8 +504,7 @@ class KeyManager {
|
|
|
506
504
|
* Format: first 8 chars...last 8 chars
|
|
507
505
|
*/
|
|
508
506
|
static shortenPublicKey(publicKey) {
|
|
509
|
-
|
|
510
|
-
return (0, _shared.shortenPublicKey)(publicKey);
|
|
507
|
+
return (0, _core.shortenPublicKey)(publicKey);
|
|
511
508
|
}
|
|
512
509
|
}
|
|
513
510
|
exports.KeyManager = KeyManager;
|