mindoodb 0.0.2 → 0.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README-server.md +1001 -0
- package/README.md +89 -28
- package/dist/__mocks__/expo-standard-web-crypto.d.ts +10 -0
- package/dist/__mocks__/expo-standard-web-crypto.d.ts.map +1 -0
- package/dist/__mocks__/expo-standard-web-crypto.js +22 -0
- package/dist/__mocks__/expo-standard-web-crypto.js.map +1 -0
- package/dist/appendonlystores/BasicOnDiskContentAddressedStoreFactory.d.ts +8 -0
- package/dist/appendonlystores/BasicOnDiskContentAddressedStoreFactory.d.ts.map +1 -0
- package/dist/appendonlystores/BasicOnDiskContentAddressedStoreFactory.js +16 -0
- package/dist/appendonlystores/BasicOnDiskContentAddressedStoreFactory.js.map +1 -0
- package/dist/appendonlystores/InMemoryContentAddressedStoreFactory.d.ts +1 -1
- package/dist/appendonlystores/InMemoryContentAddressedStoreFactory.d.ts.map +1 -1
- package/dist/appendonlystores/InMemoryContentAddressedStoreFactory.js +2 -2
- package/dist/appendonlystores/InMemoryContentAddressedStoreFactory.js.map +1 -1
- package/dist/appendonlystores/network/ClientNetworkContentAddressedStore.d.ts +30 -1
- package/dist/appendonlystores/network/ClientNetworkContentAddressedStore.d.ts.map +1 -1
- package/dist/appendonlystores/network/ClientNetworkContentAddressedStore.js +152 -5
- package/dist/appendonlystores/network/ClientNetworkContentAddressedStore.js.map +1 -1
- package/dist/appendonlystores/network/HttpTransport.d.ts +17 -2
- package/dist/appendonlystores/network/HttpTransport.d.ts.map +1 -1
- package/dist/appendonlystores/network/HttpTransport.js +129 -0
- package/dist/appendonlystores/network/HttpTransport.js.map +1 -1
- package/dist/appendonlystores/network/ServerNetworkContentAddressedStore.d.ts +22 -2
- package/dist/appendonlystores/network/ServerNetworkContentAddressedStore.d.ts.map +1 -1
- package/dist/appendonlystores/network/ServerNetworkContentAddressedStore.js +110 -0
- package/dist/appendonlystores/network/ServerNetworkContentAddressedStore.js.map +1 -1
- package/dist/appendonlystores/network/index.d.ts +1 -1
- package/dist/appendonlystores/network/index.d.ts.map +1 -1
- package/dist/appendonlystores/network/index.js.map +1 -1
- package/dist/browser/appendonlystores/IndexedDBContentAddressedStore.d.ts +65 -0
- package/dist/browser/appendonlystores/IndexedDBContentAddressedStore.d.ts.map +1 -0
- package/dist/browser/appendonlystores/IndexedDBContentAddressedStore.js +741 -0
- package/dist/browser/appendonlystores/IndexedDBContentAddressedStore.js.map +1 -0
- package/dist/browser/appendonlystores/IndexedDBContentAddressedStoreFactory.d.ts +25 -0
- package/dist/browser/appendonlystores/IndexedDBContentAddressedStoreFactory.d.ts.map +1 -0
- package/dist/browser/appendonlystores/IndexedDBContentAddressedStoreFactory.js +41 -0
- package/dist/browser/appendonlystores/IndexedDBContentAddressedStoreFactory.js.map +1 -0
- package/dist/browser/cache/IndexedDBLocalCacheStore.d.ts +21 -0
- package/dist/browser/cache/IndexedDBLocalCacheStore.d.ts.map +1 -0
- package/dist/browser/cache/IndexedDBLocalCacheStore.js +106 -0
- package/dist/browser/cache/IndexedDBLocalCacheStore.js.map +1 -0
- package/dist/browser/index.d.ts +8 -0
- package/dist/browser/index.d.ts.map +1 -1
- package/dist/browser/index.js +21 -1
- package/dist/browser/index.js.map +1 -1
- package/dist/core/BaseMindooDB.d.ts +115 -13
- package/dist/core/BaseMindooDB.d.ts.map +1 -1
- package/dist/core/BaseMindooDB.js +1232 -269
- package/dist/core/BaseMindooDB.js.map +1 -1
- package/dist/core/BaseMindooTenant.d.ts +69 -6
- package/dist/core/BaseMindooTenant.d.ts.map +1 -1
- package/dist/core/BaseMindooTenant.js +302 -109
- package/dist/core/BaseMindooTenant.js.map +1 -1
- package/dist/core/BaseMindooTenantDirectory.d.ts +13 -10
- package/dist/core/BaseMindooTenantDirectory.d.ts.map +1 -1
- package/dist/core/BaseMindooTenantDirectory.js +144 -27
- package/dist/core/BaseMindooTenantDirectory.js.map +1 -1
- package/dist/core/BaseMindooTenantFactory.d.ts +27 -29
- package/dist/core/BaseMindooTenantFactory.d.ts.map +1 -1
- package/dist/core/BaseMindooTenantFactory.js +185 -112
- package/dist/core/BaseMindooTenantFactory.js.map +1 -1
- package/dist/core/MindooDBServerAdmin.d.ts +238 -0
- package/dist/core/MindooDBServerAdmin.d.ts.map +1 -0
- package/dist/core/MindooDBServerAdmin.js +345 -0
- package/dist/core/MindooDBServerAdmin.js.map +1 -0
- package/dist/core/appendonlystores/BasicOnDiskContentAddressedStore.d.ts +68 -0
- package/dist/core/appendonlystores/BasicOnDiskContentAddressedStore.d.ts.map +1 -0
- package/dist/core/appendonlystores/BasicOnDiskContentAddressedStore.js +659 -0
- package/dist/core/appendonlystores/BasicOnDiskContentAddressedStore.js.map +1 -0
- package/dist/core/appendonlystores/InMemoryContentAddressedStore.d.ts +45 -3
- package/dist/core/appendonlystores/InMemoryContentAddressedStore.d.ts.map +1 -1
- package/dist/core/appendonlystores/InMemoryContentAddressedStore.js +184 -23
- package/dist/core/appendonlystores/InMemoryContentAddressedStore.js.map +1 -1
- package/dist/core/appendonlystores/MaterializationPlanner.d.ts +49 -0
- package/dist/core/appendonlystores/MaterializationPlanner.d.ts.map +1 -0
- package/dist/core/appendonlystores/MaterializationPlanner.js +325 -0
- package/dist/core/appendonlystores/MaterializationPlanner.js.map +1 -0
- package/dist/core/appendonlystores/bloom.d.ts +85 -0
- package/dist/core/appendonlystores/bloom.d.ts.map +1 -0
- package/dist/core/appendonlystores/bloom.js +228 -0
- package/dist/core/appendonlystores/bloom.js.map +1 -0
- package/dist/core/appendonlystores/network/NetworkTransport.d.ts +37 -2
- package/dist/core/appendonlystores/network/NetworkTransport.d.ts.map +1 -1
- package/dist/core/appendonlystores/network/types.d.ts +12 -0
- package/dist/core/appendonlystores/network/types.d.ts.map +1 -1
- package/dist/core/appendonlystores/network/types.js.map +1 -1
- package/dist/core/appendonlystores/types.d.ts +206 -0
- package/dist/core/appendonlystores/types.d.ts.map +1 -1
- package/dist/core/automerge-adapter.d.ts +15 -0
- package/dist/core/automerge-adapter.d.ts.map +1 -0
- package/dist/core/automerge-adapter.js +73 -0
- package/dist/core/automerge-adapter.js.map +1 -0
- package/dist/core/cache/CacheManager.d.ts +75 -0
- package/dist/core/cache/CacheManager.d.ts.map +1 -0
- package/dist/core/cache/CacheManager.js +101 -0
- package/dist/core/cache/CacheManager.js.map +1 -0
- package/dist/core/cache/EncryptedLocalCacheStore.d.ts +41 -0
- package/dist/core/cache/EncryptedLocalCacheStore.d.ts.map +1 -0
- package/dist/core/cache/EncryptedLocalCacheStore.js +120 -0
- package/dist/core/cache/EncryptedLocalCacheStore.js.map +1 -0
- package/dist/core/cache/LocalCacheStore.d.ts +50 -0
- package/dist/core/cache/LocalCacheStore.d.ts.map +1 -0
- package/dist/core/cache/LocalCacheStore.js +39 -0
- package/dist/core/cache/LocalCacheStore.js.map +1 -0
- package/dist/core/crypto/pbkdf2Iterations.d.ts +12 -0
- package/dist/core/crypto/pbkdf2Iterations.d.ts.map +1 -0
- package/dist/core/crypto/pbkdf2Iterations.js +55 -0
- package/dist/core/crypto/pbkdf2Iterations.js.map +1 -0
- package/dist/core/crypto/privateKeyEncryption.d.ts +5 -0
- package/dist/core/crypto/privateKeyEncryption.d.ts.map +1 -0
- package/dist/core/crypto/privateKeyEncryption.js +87 -0
- package/dist/core/crypto/privateKeyEncryption.js.map +1 -0
- package/dist/core/index.d.ts +18 -6
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +42 -1
- package/dist/core/index.js.map +1 -1
- package/dist/core/indexing/virtualviews/MindooDBVirtualViewDataProvider.d.ts +4 -1
- package/dist/core/indexing/virtualviews/MindooDBVirtualViewDataProvider.d.ts.map +1 -1
- package/dist/core/indexing/virtualviews/MindooDBVirtualViewDataProvider.js +39 -11
- package/dist/core/indexing/virtualviews/MindooDBVirtualViewDataProvider.js.map +1 -1
- package/dist/core/indexing/virtualviews/ViewEntrySortKeyComparator.d.ts +1 -0
- package/dist/core/indexing/virtualviews/ViewEntrySortKeyComparator.d.ts.map +1 -1
- package/dist/core/indexing/virtualviews/ViewEntrySortKeyComparator.js +3 -0
- package/dist/core/indexing/virtualviews/ViewEntrySortKeyComparator.js.map +1 -1
- package/dist/core/indexing/virtualviews/VirtualView.d.ts +43 -0
- package/dist/core/indexing/virtualviews/VirtualView.d.ts.map +1 -1
- package/dist/core/indexing/virtualviews/VirtualView.js +173 -0
- package/dist/core/indexing/virtualviews/VirtualView.js.map +1 -1
- package/dist/core/indexing/virtualviews/VirtualViewEntryData.d.ts +7 -0
- package/dist/core/indexing/virtualviews/VirtualViewEntryData.d.ts.map +1 -1
- package/dist/core/indexing/virtualviews/VirtualViewEntryData.js +28 -0
- package/dist/core/indexing/virtualviews/VirtualViewEntryData.js.map +1 -1
- package/dist/core/keys/KeyBag.d.ts +56 -12
- package/dist/core/keys/KeyBag.d.ts.map +1 -1
- package/dist/core/keys/KeyBag.js +156 -70
- package/dist/core/keys/KeyBag.js.map +1 -1
- package/dist/core/keys/KeyContext.d.ts +4 -0
- package/dist/core/keys/KeyContext.d.ts.map +1 -0
- package/dist/core/keys/KeyContext.js +17 -0
- package/dist/core/keys/KeyContext.js.map +1 -0
- package/dist/core/types.d.ts +512 -60
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/types.js +9 -1
- package/dist/core/types.js.map +1 -1
- package/dist/core/uri/MindooURI.d.ts +58 -0
- package/dist/core/uri/MindooURI.d.ts.map +1 -0
- package/dist/core/uri/MindooURI.js +169 -0
- package/dist/core/uri/MindooURI.js.map +1 -0
- package/dist/core/userid/index.d.ts +0 -10
- package/dist/core/userid/index.d.ts.map +1 -1
- package/dist/core/utils/idGeneration.d.ts.map +1 -1
- package/dist/core/utils/idGeneration.js +37 -3
- package/dist/core/utils/idGeneration.js.map +1 -1
- package/dist/node/appendonlystores/BasicOnDiskContentAddressedStore.d.ts +544 -0
- package/dist/node/appendonlystores/BasicOnDiskContentAddressedStore.d.ts.map +1 -0
- package/dist/node/appendonlystores/BasicOnDiskContentAddressedStore.js +1358 -0
- package/dist/node/appendonlystores/BasicOnDiskContentAddressedStore.js.map +1 -0
- package/dist/node/attachments/writeAttachmentToFile.d.ts +15 -0
- package/dist/node/attachments/writeAttachmentToFile.d.ts.map +1 -0
- package/dist/node/attachments/writeAttachmentToFile.js +73 -0
- package/dist/node/attachments/writeAttachmentToFile.js.map +1 -0
- package/dist/node/cache/FileSystemLocalCacheStore.d.ts +17 -0
- package/dist/node/cache/FileSystemLocalCacheStore.d.ts.map +1 -0
- package/dist/node/cache/FileSystemLocalCacheStore.js +128 -0
- package/dist/node/cache/FileSystemLocalCacheStore.js.map +1 -0
- package/dist/node/cli/change-identity-password.d.ts +7 -0
- package/dist/node/cli/change-identity-password.d.ts.map +1 -0
- package/dist/node/cli/change-identity-password.js +67 -0
- package/dist/node/cli/change-identity-password.js.map +1 -0
- package/dist/node/cli/cli-utils.d.ts +16 -0
- package/dist/node/cli/cli-utils.d.ts.map +1 -0
- package/dist/node/cli/cli-utils.js +113 -0
- package/dist/node/cli/cli-utils.js.map +1 -0
- package/dist/node/cli/identity-export-public.d.ts +4 -0
- package/dist/node/cli/identity-export-public.d.ts.map +1 -0
- package/dist/node/cli/identity-export-public.js +55 -0
- package/dist/node/cli/identity-export-public.js.map +1 -0
- package/dist/node/cli/identity-info.d.ts +4 -0
- package/dist/node/cli/identity-info.d.ts.map +1 -0
- package/dist/node/cli/identity-info.js +57 -0
- package/dist/node/cli/identity-info.js.map +1 -0
- package/dist/node/index.d.ts +2 -0
- package/dist/node/index.d.ts.map +1 -1
- package/dist/node/index.js +8 -1
- package/dist/node/index.js.map +1 -1
- package/dist/node/server/CapabilityMatcher.d.ts +45 -0
- package/dist/node/server/CapabilityMatcher.d.ts.map +1 -0
- package/dist/node/server/CapabilityMatcher.js +117 -0
- package/dist/node/server/CapabilityMatcher.js.map +1 -0
- package/dist/node/server/MindooDBServer.d.ts +87 -0
- package/dist/node/server/MindooDBServer.d.ts.map +1 -0
- package/dist/node/server/MindooDBServer.js +1040 -0
- package/dist/node/server/MindooDBServer.js.map +1 -0
- package/dist/node/server/ServerSync.d.ts +41 -0
- package/dist/node/server/ServerSync.d.ts.map +1 -0
- package/dist/node/server/ServerSync.js +187 -0
- package/dist/node/server/ServerSync.js.map +1 -0
- package/dist/node/server/StoreFactory.d.ts +45 -0
- package/dist/node/server/StoreFactory.d.ts.map +1 -0
- package/dist/node/server/StoreFactory.js +89 -0
- package/dist/node/server/StoreFactory.js.map +1 -0
- package/dist/node/server/SystemAdminAuth.d.ts +65 -0
- package/dist/node/server/SystemAdminAuth.d.ts.map +1 -0
- package/dist/node/server/SystemAdminAuth.js +200 -0
- package/dist/node/server/SystemAdminAuth.js.map +1 -0
- package/dist/node/server/SystemIpAllowlist.d.ts +21 -0
- package/dist/node/server/SystemIpAllowlist.d.ts.map +1 -0
- package/dist/node/server/SystemIpAllowlist.js +210 -0
- package/dist/node/server/SystemIpAllowlist.js.map +1 -0
- package/dist/node/server/TenantManager.d.ts +85 -0
- package/dist/node/server/TenantManager.d.ts.map +1 -0
- package/dist/node/server/TenantManager.js +493 -0
- package/dist/node/server/TenantManager.js.map +1 -0
- package/dist/node/server/add-to-network.d.ts +20 -0
- package/dist/node/server/add-to-network.d.ts.map +1 -0
- package/dist/node/server/add-to-network.js +275 -0
- package/dist/node/server/add-to-network.js.map +1 -0
- package/dist/node/server/config.d.ts +51 -0
- package/dist/node/server/config.d.ts.map +1 -0
- package/dist/node/server/config.js +218 -0
- package/dist/node/server/config.js.map +1 -0
- package/dist/node/server/resolveServerPassword.d.ts +7 -0
- package/dist/node/server/resolveServerPassword.d.ts.map +1 -0
- package/dist/node/server/resolveServerPassword.js +25 -0
- package/dist/node/server/resolveServerPassword.js.map +1 -0
- package/dist/node/server/server.d.ts +22 -0
- package/dist/node/server/server.d.ts.map +1 -0
- package/dist/node/server/server.js +225 -0
- package/dist/node/server/server.js.map +1 -0
- package/dist/node/server/serverinit.d.ts +21 -0
- package/dist/node/server/serverinit.d.ts.map +1 -0
- package/dist/node/server/serverinit.js +317 -0
- package/dist/node/server/serverinit.js.map +1 -0
- package/dist/node/server/types.d.ts +162 -0
- package/dist/node/server/types.d.ts.map +1 -0
- package/dist/node/server/types.js +24 -0
- package/dist/node/server/types.js.map +1 -0
- package/dist/node/server/validation.d.ts +47 -0
- package/dist/node/server/validation.d.ts.map +1 -0
- package/dist/node/server/validation.js +114 -0
- package/dist/node/server/validation.js.map +1 -0
- package/dist/reactnative/cache/MMKVLocalCacheStore.d.ts +48 -0
- package/dist/reactnative/cache/MMKVLocalCacheStore.d.ts.map +1 -0
- package/dist/reactnative/cache/MMKVLocalCacheStore.js +113 -0
- package/dist/reactnative/cache/MMKVLocalCacheStore.js.map +1 -0
- package/dist/reactnative/crypto/AESAdapter.d.ts +18 -0
- package/dist/reactnative/crypto/AESAdapter.d.ts.map +1 -0
- package/dist/reactnative/crypto/AESAdapter.js +112 -0
- package/dist/reactnative/crypto/AESAdapter.js.map +1 -0
- package/dist/reactnative/crypto/Ed25519Adapter.d.ts +34 -0
- package/dist/reactnative/crypto/Ed25519Adapter.d.ts.map +1 -0
- package/dist/reactnative/crypto/Ed25519Adapter.js +386 -0
- package/dist/reactnative/crypto/Ed25519Adapter.js.map +1 -0
- package/dist/reactnative/crypto/ExpoGoCryptoAdapter.d.ts +23 -0
- package/dist/reactnative/crypto/ExpoGoCryptoAdapter.d.ts.map +1 -0
- package/dist/reactnative/crypto/ExpoGoCryptoAdapter.js +51 -0
- package/dist/reactnative/crypto/ExpoGoCryptoAdapter.js.map +1 -0
- package/dist/reactnative/crypto/HMACAdapter.d.ts +13 -0
- package/dist/reactnative/crypto/HMACAdapter.d.ts.map +1 -0
- package/dist/reactnative/crypto/HMACAdapter.js +50 -0
- package/dist/reactnative/crypto/HMACAdapter.js.map +1 -0
- package/dist/reactnative/crypto/KeyFormatConverter.d.ts +21 -0
- package/dist/reactnative/crypto/KeyFormatConverter.d.ts.map +1 -0
- package/dist/reactnative/crypto/KeyFormatConverter.js +72 -0
- package/dist/reactnative/crypto/KeyFormatConverter.js.map +1 -0
- package/dist/reactnative/crypto/PBKDF2Adapter.d.ts +19 -0
- package/dist/reactnative/crypto/PBKDF2Adapter.d.ts.map +1 -0
- package/dist/reactnative/crypto/PBKDF2Adapter.js +67 -0
- package/dist/reactnative/crypto/PBKDF2Adapter.js.map +1 -0
- package/dist/reactnative/crypto/QuickCryptoAdapter.d.ts +37 -0
- package/dist/reactnative/crypto/QuickCryptoAdapter.d.ts.map +1 -0
- package/dist/reactnative/crypto/QuickCryptoAdapter.js +72 -0
- package/dist/reactnative/crypto/QuickCryptoAdapter.js.map +1 -0
- package/dist/reactnative/crypto/RSAAdapter.d.ts +38 -0
- package/dist/reactnative/crypto/RSAAdapter.d.ts.map +1 -0
- package/dist/reactnative/crypto/RSAAdapter.js +184 -0
- package/dist/reactnative/crypto/RSAAdapter.js.map +1 -0
- package/dist/reactnative/crypto/ReactNativeCryptoAdapter.d.ts +33 -0
- package/dist/reactnative/crypto/ReactNativeCryptoAdapter.d.ts.map +1 -0
- package/dist/reactnative/crypto/ReactNativeCryptoAdapter.js +61 -0
- package/dist/reactnative/crypto/ReactNativeCryptoAdapter.js.map +1 -0
- package/dist/reactnative/crypto/SHA256Adapter.d.ts +9 -0
- package/dist/reactnative/crypto/SHA256Adapter.d.ts.map +1 -0
- package/dist/reactnative/crypto/SHA256Adapter.js +29 -0
- package/dist/reactnative/crypto/SHA256Adapter.js.map +1 -0
- package/dist/reactnative/crypto/SubtleCryptoPolyfill.d.ts +63 -0
- package/dist/reactnative/crypto/SubtleCryptoPolyfill.d.ts.map +1 -0
- package/dist/reactnative/crypto/SubtleCryptoPolyfill.js +350 -0
- package/dist/reactnative/crypto/SubtleCryptoPolyfill.js.map +1 -0
- package/dist/reactnative/index.d.ts +9 -0
- package/dist/reactnative/index.d.ts.map +1 -0
- package/dist/reactnative/index.js +41 -0
- package/dist/reactnative/index.js.map +1 -0
- package/package.json +63 -7
- package/patches/PATCHES.md +111 -0
- package/patches/react-native+0.76.9.patch +34 -0
- package/patches/react-native-quick-crypto+1.0.7.patch +42 -0
- package/scripts/cli.js +21 -0
- package/scripts/setup-react-native.js +228 -0
- package/templates/reactnative/App.js +252 -0
- package/templates/reactnative/app.json +29 -0
- package/templates/reactnative/babel.config.js +6 -0
- package/templates/reactnative/index.js +26 -0
- package/templates/reactnative/metro.config.snippet.js +39 -0
- package/templates/reactnative/mindoodb-polyfills.js +116 -0
|
@@ -1,8 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.BaseMindooTenantFactory = void 0;
|
|
4
|
+
const types_1 = require("./types");
|
|
4
5
|
const BaseMindooTenant_1 = require("./BaseMindooTenant");
|
|
6
|
+
const privateKeyEncryption_1 = require("./crypto/privateKeyEncryption");
|
|
7
|
+
const pbkdf2Iterations_1 = require("./crypto/pbkdf2Iterations");
|
|
8
|
+
const KeyBag_1 = require("./keys/KeyBag");
|
|
5
9
|
const logging_1 = require("./logging");
|
|
10
|
+
const MindooURI_1 = require("./uri/MindooURI");
|
|
6
11
|
/**
|
|
7
12
|
* BaseTenantFactory is a platform-agnostic implementation of TenantFactory
|
|
8
13
|
* that creates and manages tenants and users.
|
|
@@ -11,58 +16,52 @@ const logging_1 = require("./logging");
|
|
|
11
16
|
* allowing the same implementation to work in browsers and Node.js.
|
|
12
17
|
*/
|
|
13
18
|
class BaseMindooTenantFactory {
|
|
14
|
-
constructor(storeFactory, cryptoAdapter, logger) {
|
|
19
|
+
constructor(storeFactory, cryptoAdapter, logger, localCacheStore) {
|
|
15
20
|
this.storeFactory = storeFactory;
|
|
16
21
|
this.cryptoAdapter = cryptoAdapter;
|
|
22
|
+
this.localCacheStore = localCacheStore;
|
|
17
23
|
// Create root logger if not provided (for backward compatibility)
|
|
18
24
|
this.logger =
|
|
19
25
|
logger ||
|
|
20
26
|
new logging_1.MindooLogger((0, logging_1.getDefaultLogLevel)(), "MindooTenantFactory", true);
|
|
21
27
|
}
|
|
28
|
+
getLocalCacheStore() {
|
|
29
|
+
return this.localCacheStore;
|
|
30
|
+
}
|
|
22
31
|
getCryptoAdapter() {
|
|
23
32
|
return this.cryptoAdapter;
|
|
24
33
|
}
|
|
25
|
-
|
|
26
|
-
* Create a new tenant from scratch with a new tenant encryption key.
|
|
27
|
-
*
|
|
28
|
-
* The administration public key must be created beforehand using createSigningKeyPair()
|
|
29
|
-
* and passed to this method.
|
|
30
|
-
*
|
|
31
|
-
* The administration encryption public key must be created using createEncryptionKeyPair()
|
|
32
|
-
* and is used to encrypt sensitive data in the directory that only admins can decrypt.
|
|
33
|
-
*
|
|
34
|
-
* @param tenantId The ID of the tenant
|
|
35
|
-
* @param administrationPublicKey The administration public key (Ed25519, PEM format) created using createSigningKeyPair()
|
|
36
|
-
* @param administrationEncryptionPublicKey The administration encryption public key (RSA-OAEP, PEM format) created using createEncryptionKeyPair()
|
|
37
|
-
* @param tenantEncryptionKeyPassword The password to decrypt the tenant encryption private key
|
|
38
|
-
* @param currentUser The current user's private user ID (required for tenant operations)
|
|
39
|
-
* @param currentUserPassword The password to decrypt the current user's private keys
|
|
40
|
-
* @param keyBag The KeyBag instance for storing and loading named encrypted keys
|
|
41
|
-
* @return The new tenant
|
|
42
|
-
*/
|
|
43
|
-
async createTenant(tenantId, administrationPublicKey, administrationEncryptionPublicKey, tenantEncryptionKeyPassword, currentUser, currentUserPassword, keyBag) {
|
|
44
|
-
this.logger.info(`Creating tenant: ${tenantId}`);
|
|
45
|
-
const subtle = this.cryptoAdapter.getSubtle();
|
|
46
|
-
// Generate tenant encryption key (AES-256)
|
|
47
|
-
const tenantEncryptionKey = await subtle.generateKey({
|
|
48
|
-
name: "AES-GCM",
|
|
49
|
-
length: 256,
|
|
50
|
-
}, true, // extractable
|
|
51
|
-
["encrypt", "decrypt"]);
|
|
52
|
-
// Export the tenant encryption key material
|
|
53
|
-
const tenantKeyMaterial = await subtle.exportKey("raw", tenantEncryptionKey);
|
|
54
|
-
const tenantKeyBytes = new Uint8Array(tenantKeyMaterial);
|
|
55
|
-
// Encrypt the tenant encryption key with password
|
|
56
|
-
const encryptedTenantKey = await this.encryptPrivateKey(tenantKeyBytes, tenantEncryptionKeyPassword, "default");
|
|
57
|
-
return this.openTenantWithKeys(tenantId, encryptedTenantKey, tenantEncryptionKeyPassword, administrationPublicKey, administrationEncryptionPublicKey, currentUser, currentUserPassword, keyBag);
|
|
58
|
-
}
|
|
59
|
-
/**
|
|
60
|
-
* Opens an existing tenant with previously created keys.
|
|
61
|
-
*/
|
|
62
|
-
async openTenantWithKeys(tenantId, tenantEncryptionPrivateKey, tenantEncryptionKeyPassword, administrationPublicKey, administrationEncryptionPublicKey, currentUser, currentUserPassword, keyBag) {
|
|
34
|
+
async openTenant(tenantId, arg2, arg3, arg4, arg5, arg6, arg7, arg8) {
|
|
63
35
|
this.logger.info(`Opening tenant: ${tenantId}`);
|
|
36
|
+
let administrationPublicKey;
|
|
37
|
+
let administrationEncryptionPublicKey;
|
|
38
|
+
let currentUser;
|
|
39
|
+
let currentUserPassword;
|
|
40
|
+
let keyBag;
|
|
41
|
+
let options;
|
|
42
|
+
if (typeof arg2 === "string") {
|
|
43
|
+
administrationPublicKey = arg2;
|
|
44
|
+
administrationEncryptionPublicKey = arg3;
|
|
45
|
+
currentUser = arg4;
|
|
46
|
+
currentUserPassword = arg5;
|
|
47
|
+
keyBag = arg6;
|
|
48
|
+
options = arg7;
|
|
49
|
+
}
|
|
50
|
+
else {
|
|
51
|
+
// Backward-compatible short form for internal tests
|
|
52
|
+
currentUser = arg2;
|
|
53
|
+
currentUserPassword = arg3;
|
|
54
|
+
keyBag = arg4;
|
|
55
|
+
administrationPublicKey = currentUser.userSigningKeyPair.publicKey;
|
|
56
|
+
administrationEncryptionPublicKey = currentUser.userEncryptionKeyPair.publicKey;
|
|
57
|
+
}
|
|
58
|
+
if (administrationPublicKey === currentUser.userSigningKeyPair.publicKey) {
|
|
59
|
+
throw new Error("Invalid openTenant configuration: currentUser must not be the administration identity. " +
|
|
60
|
+
"Use a regular user for tenant operations and keep admin credentials for privileged directory operations only.");
|
|
61
|
+
}
|
|
62
|
+
await this.assertRequiredKeysInKeyBag(tenantId, keyBag);
|
|
64
63
|
const tenantLogger = this.logger.createChild(`Tenant:${tenantId}`);
|
|
65
|
-
const tenant = new BaseMindooTenant_1.BaseMindooTenant(this, tenantId,
|
|
64
|
+
const tenant = new BaseMindooTenant_1.BaseMindooTenant(this, tenantId, administrationPublicKey, administrationEncryptionPublicKey, currentUser, currentUserPassword, keyBag, this.storeFactory, this.cryptoAdapter, tenantLogger, options?.additionalTrustedKeys, this.localCacheStore);
|
|
66
65
|
// Initialize the tenant
|
|
67
66
|
await tenant.initialize();
|
|
68
67
|
return tenant;
|
|
@@ -72,22 +71,40 @@ class BaseMindooTenantFactory {
|
|
|
72
71
|
*/
|
|
73
72
|
async createUserId(username, password) {
|
|
74
73
|
this.logger.debug(`Creating user ID: ${username}`);
|
|
74
|
+
console.log('[createUserId] Starting createUserId for:', username);
|
|
75
|
+
const startTime = Date.now();
|
|
75
76
|
const subtle = this.cryptoAdapter.getSubtle();
|
|
77
|
+
console.log('[createUserId] Got subtle crypto API');
|
|
76
78
|
// Generate signing key pair (Ed25519)
|
|
79
|
+
console.log('[createUserId] Step 1: Generating Ed25519 signing key pair...');
|
|
80
|
+
const signingKeyPairStart = Date.now();
|
|
77
81
|
const signingKeyPair = await subtle.generateKey({
|
|
78
82
|
name: "Ed25519",
|
|
79
83
|
}, true, // extractable
|
|
80
84
|
["sign", "verify"]);
|
|
85
|
+
console.log('[createUserId] Step 1: ✓ Ed25519 signing key pair generated in', Date.now() - signingKeyPairStart, 'ms');
|
|
81
86
|
// Export signing public key (PEM format)
|
|
87
|
+
console.log('[createUserId] Step 2: Exporting signing public key...');
|
|
88
|
+
const exportSigningPublicStart = Date.now();
|
|
82
89
|
const signingPublicKeyBuffer = await subtle.exportKey("spki", signingKeyPair.publicKey);
|
|
83
90
|
const signingPublicKey = this.arrayBufferToPEM(signingPublicKeyBuffer, "PUBLIC KEY");
|
|
91
|
+
console.log('[createUserId] Step 2: ✓ Signing public key exported in', Date.now() - exportSigningPublicStart, 'ms');
|
|
84
92
|
// Export signing private key
|
|
93
|
+
console.log('[createUserId] Step 3: Exporting signing private key...');
|
|
94
|
+
const exportSigningPrivateStart = Date.now();
|
|
85
95
|
const signingPrivateKeyBuffer = await subtle.exportKey("pkcs8", signingKeyPair.privateKey);
|
|
86
96
|
const signingPrivateKeyBytes = new Uint8Array(signingPrivateKeyBuffer);
|
|
97
|
+
console.log('[createUserId] Step 3: ✓ Signing private key exported in', Date.now() - exportSigningPrivateStart, 'ms');
|
|
87
98
|
// Encrypt signing private key with password (salt: "signing")
|
|
99
|
+
const pbkdf2Iterations = (0, pbkdf2Iterations_1.resolvePbkdf2Iterations)(pbkdf2Iterations_1.DEFAULT_PBKDF2_ITERATIONS);
|
|
100
|
+
console.log(`[createUserId] Step 4: Encrypting signing private key (PBKDF2 with ${pbkdf2Iterations} iterations)...`);
|
|
101
|
+
const encryptSigningStart = Date.now();
|
|
88
102
|
const encryptedSigningKey = await this.encryptPrivateKey(signingPrivateKeyBytes, password, "signing");
|
|
103
|
+
console.log('[createUserId] Step 4: ✓ Signing private key encrypted in', Date.now() - encryptSigningStart, 'ms');
|
|
89
104
|
// Generate encryption key pair (RSA-OAEP, 3072 bits for state-of-the-art security)
|
|
90
105
|
// NIST recommends 3072-bit RSA for new applications (security through 2030+)
|
|
106
|
+
console.log('[createUserId] Step 5: Generating RSA-3072 encryption key pair (this may take 10-30 seconds in JS)...');
|
|
107
|
+
const rsaKeyGenStart = Date.now();
|
|
91
108
|
const encryptionKeyPair = await subtle.generateKey({
|
|
92
109
|
name: "RSA-OAEP",
|
|
93
110
|
modulusLength: 3072,
|
|
@@ -95,18 +112,28 @@ class BaseMindooTenantFactory {
|
|
|
95
112
|
hash: "SHA-256",
|
|
96
113
|
}, true, // extractable
|
|
97
114
|
["encrypt", "decrypt"]);
|
|
115
|
+
console.log('[createUserId] Step 5: ✓ RSA-3072 encryption key pair generated in', Date.now() - rsaKeyGenStart, 'ms');
|
|
98
116
|
// Export encryption public key (PEM format)
|
|
117
|
+
console.log('[createUserId] Step 6: Exporting encryption public key...');
|
|
118
|
+
const exportEncryptionPublicStart = Date.now();
|
|
99
119
|
const encryptionPublicKeyBuffer = await subtle.exportKey("spki", encryptionKeyPair.publicKey);
|
|
100
120
|
const encryptionPublicKey = this.arrayBufferToPEM(encryptionPublicKeyBuffer, "PUBLIC KEY");
|
|
121
|
+
console.log('[createUserId] Step 6: ✓ Encryption public key exported in', Date.now() - exportEncryptionPublicStart, 'ms');
|
|
101
122
|
// Export encryption private key
|
|
123
|
+
console.log('[createUserId] Step 7: Exporting encryption private key...');
|
|
124
|
+
const exportEncryptionPrivateStart = Date.now();
|
|
102
125
|
const encryptionPrivateKeyBuffer = await subtle.exportKey("pkcs8", encryptionKeyPair.privateKey);
|
|
103
126
|
const encryptionPrivateKeyBytes = new Uint8Array(encryptionPrivateKeyBuffer);
|
|
127
|
+
console.log('[createUserId] Step 7: ✓ Encryption private key exported in', Date.now() - exportEncryptionPrivateStart, 'ms');
|
|
104
128
|
// Encrypt encryption private key with password (salt: "encryption")
|
|
129
|
+
console.log(`[createUserId] Step 8: Encrypting encryption private key (PBKDF2 with ${pbkdf2Iterations} iterations)...`);
|
|
130
|
+
const encryptEncryptionStart = Date.now();
|
|
105
131
|
const encryptedEncryptionKey = await this.encryptPrivateKey(encryptionPrivateKeyBytes, password, "encryption");
|
|
132
|
+
console.log('[createUserId] Step 8: ✓ Encryption private key encrypted in', Date.now() - encryptEncryptionStart, 'ms');
|
|
106
133
|
// Create PrivateUserId
|
|
134
|
+
console.log('[createUserId] Step 9: Creating PrivateUserId object...');
|
|
107
135
|
const privateUserId = {
|
|
108
136
|
username,
|
|
109
|
-
administrationSignature: "", // Will be set when user is registered by an admin
|
|
110
137
|
userSigningKeyPair: {
|
|
111
138
|
publicKey: signingPublicKey,
|
|
112
139
|
privateKey: encryptedSigningKey,
|
|
@@ -116,6 +143,8 @@ class BaseMindooTenantFactory {
|
|
|
116
143
|
privateKey: encryptedEncryptionKey,
|
|
117
144
|
},
|
|
118
145
|
};
|
|
146
|
+
const totalTime = Date.now() - startTime;
|
|
147
|
+
console.log('[createUserId] ✓ User ID created successfully in', totalTime, 'ms total');
|
|
119
148
|
this.logger.debug(`Created user ID: ${username}`);
|
|
120
149
|
return privateUserId;
|
|
121
150
|
}
|
|
@@ -125,11 +154,28 @@ class BaseMindooTenantFactory {
|
|
|
125
154
|
toPublicUserId(privateUserId) {
|
|
126
155
|
return {
|
|
127
156
|
username: privateUserId.username,
|
|
128
|
-
administrationSignature: privateUserId.administrationSignature,
|
|
129
157
|
userSigningPublicKey: privateUserId.userSigningKeyPair.publicKey,
|
|
130
158
|
userEncryptionPublicKey: privateUserId.userEncryptionKeyPair.publicKey,
|
|
131
159
|
};
|
|
132
160
|
}
|
|
161
|
+
async changeIdentityPassword(identity, oldPassword, newPassword) {
|
|
162
|
+
this.logger.debug(`Changing identity password for: ${identity.username}`);
|
|
163
|
+
const decryptedSigningKey = await (0, privateKeyEncryption_1.decryptPrivateKey)(this.cryptoAdapter, identity.userSigningKeyPair.privateKey, oldPassword, "signing");
|
|
164
|
+
const decryptedEncryptionKey = await (0, privateKeyEncryption_1.decryptPrivateKey)(this.cryptoAdapter, identity.userEncryptionKeyPair.privateKey, oldPassword, "encryption");
|
|
165
|
+
const encryptedSigningKey = await (0, privateKeyEncryption_1.encryptPrivateKey)(this.cryptoAdapter, new Uint8Array(decryptedSigningKey), newPassword, "signing");
|
|
166
|
+
const encryptedEncryptionKey = await (0, privateKeyEncryption_1.encryptPrivateKey)(this.cryptoAdapter, new Uint8Array(decryptedEncryptionKey), newPassword, "encryption");
|
|
167
|
+
return {
|
|
168
|
+
username: identity.username,
|
|
169
|
+
userSigningKeyPair: {
|
|
170
|
+
publicKey: identity.userSigningKeyPair.publicKey,
|
|
171
|
+
privateKey: encryptedSigningKey,
|
|
172
|
+
},
|
|
173
|
+
userEncryptionKeyPair: {
|
|
174
|
+
publicKey: identity.userEncryptionKeyPair.publicKey,
|
|
175
|
+
privateKey: encryptedEncryptionKey,
|
|
176
|
+
},
|
|
177
|
+
};
|
|
178
|
+
}
|
|
133
179
|
/**
|
|
134
180
|
* Creates a new signing key pair for the tenant.
|
|
135
181
|
* Returns both the public and encrypted private key, as the public key is needed
|
|
@@ -157,29 +203,6 @@ class BaseMindooTenantFactory {
|
|
|
157
203
|
privateKey: encryptedKey,
|
|
158
204
|
};
|
|
159
205
|
}
|
|
160
|
-
/**
|
|
161
|
-
* Creates a new encrypted symmetric key (AES-256) for document encryption.
|
|
162
|
-
* Symmetric keys are shared secrets - anyone with the key can both encrypt and decrypt.
|
|
163
|
-
* For user-to-user encryption where only the recipient can decrypt, use createEncryptionKeyPair() instead.
|
|
164
|
-
*/
|
|
165
|
-
async createSymmetricEncryptedPrivateKey(password) {
|
|
166
|
-
this.logger.debug(`Creating encrypted symmetric key`);
|
|
167
|
-
const subtle = this.cryptoAdapter.getSubtle();
|
|
168
|
-
// Generate a new AES-256 key
|
|
169
|
-
const key = await subtle.generateKey({
|
|
170
|
-
name: "AES-GCM",
|
|
171
|
-
length: 256,
|
|
172
|
-
}, true, // extractable
|
|
173
|
-
["encrypt", "decrypt"]);
|
|
174
|
-
// Export the key material
|
|
175
|
-
const keyMaterial = await subtle.exportKey("raw", key);
|
|
176
|
-
const keyBytes = new Uint8Array(keyMaterial);
|
|
177
|
-
// Encrypt the key material using the shared helper
|
|
178
|
-
// Use "default" as the salt string to match how tenant encryption keys are decrypted
|
|
179
|
-
const encryptedKey = await this.encryptPrivateKey(keyBytes, password, "default");
|
|
180
|
-
this.logger.debug(`Created encrypted symmetric key`);
|
|
181
|
-
return encryptedKey;
|
|
182
|
-
}
|
|
183
206
|
/**
|
|
184
207
|
* Creates a new asymmetric encryption key pair (RSA-OAEP) for user-to-user encryption.
|
|
185
208
|
* Returns both the public and encrypted private key.
|
|
@@ -214,6 +237,82 @@ class BaseMindooTenantFactory {
|
|
|
214
237
|
privateKey: encryptedKey,
|
|
215
238
|
};
|
|
216
239
|
}
|
|
240
|
+
// ==================== Convenience Methods ====================
|
|
241
|
+
/**
|
|
242
|
+
* Create a new tenant with a single call.
|
|
243
|
+
*/
|
|
244
|
+
async createTenant(options) {
|
|
245
|
+
this.logger.info(`Creating tenant: ${options.tenantId}`);
|
|
246
|
+
const hasExistingUsers = "adminUser" in options;
|
|
247
|
+
const adminLabel = hasExistingUsers ? options.adminUser.username : options.adminName;
|
|
248
|
+
const userLabel = hasExistingUsers ? options.appUser.username : options.userName;
|
|
249
|
+
console.log(`[createTenant] Creating tenant "${options.tenantId}" with admin "${adminLabel}" and user "${userLabel}"`);
|
|
250
|
+
// 1. Create or reuse admin and app user identities
|
|
251
|
+
const adminUser = hasExistingUsers
|
|
252
|
+
? options.adminUser
|
|
253
|
+
: await this.createUserId(options.adminName, options.adminPassword);
|
|
254
|
+
const appUser = hasExistingUsers
|
|
255
|
+
? options.appUser
|
|
256
|
+
: await this.createUserId(options.userName, options.userPassword);
|
|
257
|
+
// 2. Create KeyBag with required keys
|
|
258
|
+
const keyBag = new KeyBag_1.KeyBag(appUser.userEncryptionKeyPair.privateKey, options.userPassword, this.cryptoAdapter, this.logger.createChild("KeyBag"));
|
|
259
|
+
await keyBag.createDocKey(options.tenantId, types_1.DEFAULT_TENANT_KEY_ID);
|
|
260
|
+
await keyBag.createDocKey(options.tenantId, types_1.PUBLIC_INFOS_KEY_ID);
|
|
261
|
+
// 3. Open tenant
|
|
262
|
+
const tenant = await this.openTenant(options.tenantId, adminUser.userSigningKeyPair.publicKey, adminUser.userEncryptionKeyPair.publicKey, appUser, options.userPassword, keyBag);
|
|
263
|
+
// 4. Register the app user in the directory
|
|
264
|
+
const directory = await tenant.openDirectory();
|
|
265
|
+
await directory.registerUser(this.toPublicUserId(appUser), adminUser.userSigningKeyPair.privateKey, options.adminPassword);
|
|
266
|
+
console.log(`[createTenant] ✓ Tenant "${options.tenantId}" created successfully`);
|
|
267
|
+
this.logger.info(`Tenant "${options.tenantId}" created successfully`);
|
|
268
|
+
return { tenant, adminUser, appUser, keyBag };
|
|
269
|
+
}
|
|
270
|
+
createJoinRequest(user, options) {
|
|
271
|
+
const publicUser = this.toPublicUserId(user);
|
|
272
|
+
const joinRequest = {
|
|
273
|
+
v: 1,
|
|
274
|
+
username: publicUser.username,
|
|
275
|
+
signingPublicKey: publicUser.userSigningPublicKey,
|
|
276
|
+
encryptionPublicKey: publicUser.userEncryptionPublicKey,
|
|
277
|
+
};
|
|
278
|
+
if (options?.format === "uri") {
|
|
279
|
+
return (0, MindooURI_1.encodeMindooURI)("join-request", joinRequest);
|
|
280
|
+
}
|
|
281
|
+
return joinRequest;
|
|
282
|
+
}
|
|
283
|
+
/**
|
|
284
|
+
* Join a tenant using a join response from an admin.
|
|
285
|
+
*/
|
|
286
|
+
async joinTenant(joinResponse, options) {
|
|
287
|
+
// Parse the join response if it's a URI string
|
|
288
|
+
let response;
|
|
289
|
+
if (typeof joinResponse === "string") {
|
|
290
|
+
if (!(0, MindooURI_1.isMindooURI)(joinResponse)) {
|
|
291
|
+
throw new Error("Invalid join response: expected a JoinResponse object or a mdb://join-response/... URI string");
|
|
292
|
+
}
|
|
293
|
+
const decoded = (0, MindooURI_1.decodeMindooURI)(joinResponse);
|
|
294
|
+
if (decoded.type !== "join-response") {
|
|
295
|
+
throw new Error(`Invalid URI type: expected "join-response", got "${decoded.type}"`);
|
|
296
|
+
}
|
|
297
|
+
response = decoded.payload;
|
|
298
|
+
}
|
|
299
|
+
else {
|
|
300
|
+
response = joinResponse;
|
|
301
|
+
}
|
|
302
|
+
console.log(`[joinTenant] Joining tenant "${response.tenantId}"`);
|
|
303
|
+
this.logger.info(`Joining tenant: ${response.tenantId}`);
|
|
304
|
+
// 1. Create a new KeyBag for this user
|
|
305
|
+
const keyBag = new KeyBag_1.KeyBag(options.user.userEncryptionKeyPair.privateKey, options.password, this.cryptoAdapter, this.logger.createChild("KeyBag"));
|
|
306
|
+
// 2. Import the encrypted tenant key
|
|
307
|
+
await keyBag.decryptAndImportKey("doc", response.tenantId, types_1.DEFAULT_TENANT_KEY_ID, response.encryptedTenantKey, options.sharePassword);
|
|
308
|
+
// 3. Import the encrypted $publicinfos key
|
|
309
|
+
await keyBag.decryptAndImportKey("doc", response.tenantId, types_1.PUBLIC_INFOS_KEY_ID, response.encryptedPublicInfosKey, options.sharePassword);
|
|
310
|
+
// 4. Open the tenant
|
|
311
|
+
const tenant = await this.openTenant(response.tenantId, response.adminSigningPublicKey, response.adminEncryptionPublicKey, options.user, options.password, keyBag);
|
|
312
|
+
console.log(`[joinTenant] ✓ Joined tenant "${response.tenantId}" successfully`);
|
|
313
|
+
this.logger.info(`Joined tenant "${response.tenantId}" successfully`);
|
|
314
|
+
return { tenant, keyBag };
|
|
315
|
+
}
|
|
217
316
|
/**
|
|
218
317
|
* Internal method to encrypt a private key using password-based key derivation.
|
|
219
318
|
* This is the reverse of BaseMindooTenant.decryptPrivateKey().
|
|
@@ -224,55 +323,29 @@ class BaseMindooTenantFactory {
|
|
|
224
323
|
* @returns The encrypted private key
|
|
225
324
|
*/
|
|
226
325
|
async encryptPrivateKey(privateKeyBytes, password, saltString) {
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
const
|
|
230
|
-
|
|
231
|
-
const
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
const
|
|
235
|
-
|
|
236
|
-
const iv = new Uint8Array(ivArray);
|
|
237
|
-
// Combine salt with saltString for key derivation (same as decryption)
|
|
238
|
-
const saltStringBytes = new TextEncoder().encode(saltString);
|
|
239
|
-
const combinedSalt = new Uint8Array(salt.length + saltStringBytes.length);
|
|
240
|
-
combinedSalt.set(salt);
|
|
241
|
-
combinedSalt.set(saltStringBytes, salt.length);
|
|
242
|
-
// Derive encryption key from password using PBKDF2
|
|
243
|
-
const passwordKey = await subtle.importKey("raw", new TextEncoder().encode(password), "PBKDF2", false, ["deriveBits", "deriveKey"]);
|
|
244
|
-
const iterations = 310000; // OWASP-recommended PBKDF2 iterations for PBKDF2-SHA256
|
|
245
|
-
const derivedKey = await subtle.deriveKey({
|
|
246
|
-
name: "PBKDF2",
|
|
247
|
-
salt: combinedSalt,
|
|
248
|
-
iterations: iterations,
|
|
249
|
-
hash: "SHA-256",
|
|
250
|
-
}, passwordKey, {
|
|
251
|
-
name: "AES-GCM",
|
|
252
|
-
length: 256,
|
|
253
|
-
}, false, ["encrypt"]);
|
|
254
|
-
// Encrypt the private key
|
|
255
|
-
const encrypted = await subtle.encrypt({
|
|
256
|
-
name: "AES-GCM",
|
|
257
|
-
iv: iv,
|
|
258
|
-
tagLength: 128,
|
|
259
|
-
}, derivedKey, privateKeyBytes.buffer);
|
|
260
|
-
// Extract ciphertext and tag from encrypted data
|
|
261
|
-
// AES-GCM appends the tag at the end
|
|
262
|
-
const encryptedArray = new Uint8Array(encrypted);
|
|
263
|
-
const tagLength = 16; // 128 bits = 16 bytes
|
|
264
|
-
const ciphertext = encryptedArray.slice(0, encryptedArray.length - tagLength);
|
|
265
|
-
const tag = encryptedArray.slice(encryptedArray.length - tagLength);
|
|
266
|
-
// Create encrypted key structure
|
|
267
|
-
const encryptedKey = {
|
|
268
|
-
ciphertext: this.uint8ArrayToBase64(ciphertext),
|
|
269
|
-
iv: this.uint8ArrayToBase64(iv),
|
|
270
|
-
tag: this.uint8ArrayToBase64(tag),
|
|
271
|
-
salt: this.uint8ArrayToBase64(salt),
|
|
272
|
-
iterations: iterations,
|
|
273
|
-
};
|
|
326
|
+
console.log(`[encryptPrivateKey] Starting encryption with salt: "${saltString}", key size: ${privateKeyBytes.length} bytes`);
|
|
327
|
+
const startTime = Date.now();
|
|
328
|
+
const iterations = (0, pbkdf2Iterations_1.resolvePbkdf2Iterations)(pbkdf2Iterations_1.DEFAULT_PBKDF2_ITERATIONS);
|
|
329
|
+
console.log('[encryptPrivateKey] Delegating salt generation, PBKDF2, and AES-GCM encryption to shared helper...');
|
|
330
|
+
const encryptStart = Date.now();
|
|
331
|
+
const encryptedKey = await (0, privateKeyEncryption_1.encryptPrivateKey)(this.cryptoAdapter, privateKeyBytes, password, saltString);
|
|
332
|
+
console.log('[encryptPrivateKey] ✓ Private key encrypted in', Date.now() - encryptStart, 'ms');
|
|
333
|
+
const totalTime = Date.now() - startTime;
|
|
334
|
+
console.log(`[encryptPrivateKey] ✓ Encryption completed in ${totalTime}ms total`);
|
|
274
335
|
return encryptedKey;
|
|
275
336
|
}
|
|
337
|
+
async assertRequiredKeysInKeyBag(tenantId, keyBag) {
|
|
338
|
+
// Note: The default tenant key (type "doc", id DEFAULT_TENANT_KEY_ID) is NOT checked here.
|
|
339
|
+
// It is only needed when decrypting regular database payloads (decryptionKeyId "default").
|
|
340
|
+
// Server-side tenants that only need directory access can operate without it.
|
|
341
|
+
// If it is missing and code tries to decrypt regular data, a clear
|
|
342
|
+
// SymmetricKeyNotFoundError will be thrown at the point of use.
|
|
343
|
+
const publicInfosKey = await keyBag.get("doc", tenantId, types_1.PUBLIC_INFOS_KEY_ID);
|
|
344
|
+
if (!publicInfosKey) {
|
|
345
|
+
throw new Error(`Missing required directory access key in KeyBag: ("doc", "${tenantId}", "${types_1.PUBLIC_INFOS_KEY_ID}"). ` +
|
|
346
|
+
`Create/import it first with keyBag.createDocKey("${tenantId}", "${types_1.PUBLIC_INFOS_KEY_ID}") or keyBag.decryptAndImportKey("doc", "${tenantId}", "${types_1.PUBLIC_INFOS_KEY_ID}", encryptedPublicInfosKey, password).`);
|
|
347
|
+
}
|
|
348
|
+
}
|
|
276
349
|
/**
|
|
277
350
|
* Convert ArrayBuffer to PEM format
|
|
278
351
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseMindooTenantFactory.js","sourceRoot":"","sources":["../../src/core/BaseMindooTenantFactory.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"BaseMindooTenantFactory.js","sourceRoot":"","sources":["../../src/core/BaseMindooTenantFactory.ts"],"names":[],"mappings":"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"}
|