@docknetwork/wallet-sdk-wasm 1.7.7-alpha.0 → 1.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +7 -20
- package/rollup.config.mjs +1 -0
- package/src/globals.d.ts +4 -1
- package/src/services/blockchain/cached-did-resolver.ts +4 -3
- package/src/services/blockchain/normalize-did-document.ts +73 -0
- package/src/services/blockchain/service.ts +0 -2
- package/src/services/credential/bbs-revocation.test.js +147 -0
- package/src/services/credential/bbs-revocation.ts +65 -18
- package/src/services/credential/config.ts +7 -0
- package/src/services/credential/index.test.js +261 -17
- package/src/services/credential/oid4vci.js +44 -0
- package/src/services/credential/oid4vci.test.js +162 -0
- package/src/services/credential/pex-helpers.js +77 -31
- package/src/services/credential/pex-helpers.test.js +4 -4
- package/src/services/credential/sd-jwt.ts +41 -5
- package/src/services/credential/service-rpc.js +6 -0
- package/src/services/credential/service.ts +171 -16
- package/src/services/credential/utils.js +3 -5
- package/src/services/delegation/index.android.js +3 -0
- package/src/services/delegation/index.ios.js +3 -0
- package/src/services/delegation/index.ts +1 -0
- package/src/services/delegation/service-rpc.ts +21 -0
- package/src/services/delegation/service.ts +59 -0
- package/src/services/edv/service-rpc.js +18 -2
- package/src/services/edv/service.test.js +327 -0
- package/src/services/edv/service.ts +103 -13
- package/src/services/index.js +2 -0
- package/src/wallet/rpc-storage-interface.js +9 -4
- package/lib/core/crypto.js +0 -45
- package/lib/core/crypto.mjs +0 -33
- package/lib/core/format-utils.js +0 -51
- package/lib/core/format-utils.mjs +0 -42
- package/lib/core/keychain.js +0 -61
- package/lib/core/keychain.mjs +0 -37
- package/lib/core/logger.js +0 -13
- package/lib/core/logger.mjs +0 -9
- package/lib/core/storage.js +0 -14
- package/lib/core/storage.mjs +0 -9
- package/lib/core/validation.js +0 -29
- package/lib/core/validation.mjs +0 -16
- package/lib/core/webview-logger.js +0 -49
- package/lib/core/webview-logger.mjs +0 -41
- package/lib/errors.js +0 -17
- package/lib/errors.mjs +0 -12
- package/lib/events.js +0 -18
- package/lib/events.mjs +0 -13
- package/lib/index.js +0 -146
- package/lib/index.mjs +0 -144
- package/lib/logger.js +0 -22
- package/lib/logger.mjs +0 -17
- package/lib/modules/event-manager.js +0 -46
- package/lib/modules/event-manager.mjs +0 -37
- package/lib/modules/network-manager.js +0 -80
- package/lib/modules/network-manager.mjs +0 -71
- package/lib/mrklt.js +0 -2
- package/lib/mrklt.mjs +0 -1
- package/lib/rpc-client.js +0 -83
- package/lib/rpc-client.mjs +0 -73
- package/lib/rpc-server.js +0 -97
- package/lib/rpc-server.mjs +0 -95
- package/lib/rpc-util.js +0 -113
- package/lib/rpc-util.mjs +0 -103
- package/lib/sandbox-rpc-server.js +0 -28
- package/lib/sandbox-rpc-server.mjs +0 -26
- package/lib/sandbox.js +0 -102
- package/lib/sandbox.mjs +0 -100
- package/lib/services/blockchain/cached-did-resolver.js +0 -113
- package/lib/services/blockchain/cached-did-resolver.mjs +0 -109
- package/lib/services/blockchain/configs.js +0 -7
- package/lib/services/blockchain/configs.mjs +0 -3
- package/lib/services/blockchain/index.android.js +0 -18
- package/lib/services/blockchain/index.android.mjs +0 -14
- package/lib/services/blockchain/index.ios.js +0 -18
- package/lib/services/blockchain/index.ios.mjs +0 -14
- package/lib/services/blockchain/index.js +0 -36
- package/lib/services/blockchain/index.mjs +0 -28
- package/lib/services/blockchain/service-rpc.js +0 -72
- package/lib/services/blockchain/service-rpc.mjs +0 -68
- package/lib/services/blockchain/service.js +0 -312
- package/lib/services/blockchain/service.mjs +0 -306
- package/lib/services/credential/bbs-revocation.js +0 -92
- package/lib/services/credential/bbs-revocation.mjs +0 -87
- package/lib/services/credential/bound-check.js +0 -77
- package/lib/services/credential/bound-check.mjs +0 -64
- package/lib/services/credential/config.js +0 -56
- package/lib/services/credential/config.mjs +0 -47
- package/lib/services/credential/delegatable-credentials.js +0 -300
- package/lib/services/credential/delegatable-credentials.mjs +0 -263
- package/lib/services/credential/index.android.js +0 -19
- package/lib/services/credential/index.android.mjs +0 -15
- package/lib/services/credential/index.ios.js +0 -19
- package/lib/services/credential/index.ios.mjs +0 -15
- package/lib/services/credential/index.js +0 -106
- package/lib/services/credential/index.mjs +0 -67
- package/lib/services/credential/pex-helpers.js +0 -333
- package/lib/services/credential/pex-helpers.mjs +0 -319
- package/lib/services/credential/range-proofs-example.js +0 -107
- package/lib/services/credential/range-proofs-example.mjs +0 -103
- package/lib/services/credential/sd-jwt.js +0 -214
- package/lib/services/credential/sd-jwt.mjs +0 -200
- package/lib/services/credential/service-rpc.js +0 -61
- package/lib/services/credential/service-rpc.mjs +0 -57
- package/lib/services/credential/service.js +0 -683
- package/lib/services/credential/service.mjs +0 -672
- package/lib/services/credential/utils.js +0 -103
- package/lib/services/credential/utils.mjs +0 -78
- package/lib/services/dids/config.js +0 -40
- package/lib/services/dids/config.mjs +0 -31
- package/lib/services/dids/index.android.js +0 -19
- package/lib/services/dids/index.android.mjs +0 -15
- package/lib/services/dids/index.ios.js +0 -19
- package/lib/services/dids/index.ios.mjs +0 -15
- package/lib/services/dids/index.js +0 -23
- package/lib/services/dids/index.mjs +0 -19
- package/lib/services/dids/keypair-utils.js +0 -142
- package/lib/services/dids/keypair-utils.mjs +0 -113
- package/lib/services/dids/service-rpc.js +0 -37
- package/lib/services/dids/service-rpc.mjs +0 -33
- package/lib/services/dids/service.js +0 -100
- package/lib/services/dids/service.mjs +0 -92
- package/lib/services/edv/configs.js +0 -25
- package/lib/services/edv/configs.mjs +0 -16
- package/lib/services/edv/hmac.js +0 -88
- package/lib/services/edv/hmac.mjs +0 -63
- package/lib/services/edv/index.android.js +0 -19
- package/lib/services/edv/index.android.mjs +0 -15
- package/lib/services/edv/index.ios.js +0 -19
- package/lib/services/edv/index.ios.mjs +0 -15
- package/lib/services/edv/index.js +0 -32
- package/lib/services/edv/index.mjs +0 -24
- package/lib/services/edv/service-rpc.js +0 -78
- package/lib/services/edv/service-rpc.mjs +0 -74
- package/lib/services/edv/service.js +0 -370
- package/lib/services/edv/service.mjs +0 -357
- package/lib/services/index.js +0 -94
- package/lib/services/index.mjs +0 -92
- package/lib/services/pex/config.js +0 -29
- package/lib/services/pex/config.mjs +0 -20
- package/lib/services/pex/index.android.js +0 -19
- package/lib/services/pex/index.android.mjs +0 -15
- package/lib/services/pex/index.ios.js +0 -19
- package/lib/services/pex/index.ios.mjs +0 -15
- package/lib/services/pex/index.js +0 -12
- package/lib/services/pex/index.mjs +0 -4
- package/lib/services/pex/service-rpc.js +0 -39
- package/lib/services/pex/service-rpc.mjs +0 -35
- package/lib/services/pex/service.js +0 -91
- package/lib/services/pex/service.mjs +0 -86
- package/lib/services/pex/tests/jest.config.js +0 -25
- package/lib/services/pex/tests/jest.config.mjs +0 -23
- package/lib/services/relay-service/configs.js +0 -45
- package/lib/services/relay-service/configs.mjs +0 -36
- package/lib/services/relay-service/index.android.js +0 -21
- package/lib/services/relay-service/index.android.mjs +0 -17
- package/lib/services/relay-service/index.ios.js +0 -21
- package/lib/services/relay-service/index.ios.mjs +0 -17
- package/lib/services/relay-service/index.js +0 -14
- package/lib/services/relay-service/index.mjs +0 -6
- package/lib/services/relay-service/service-rpc.js +0 -47
- package/lib/services/relay-service/service-rpc.mjs +0 -43
- package/lib/services/relay-service/service.js +0 -181
- package/lib/services/relay-service/service.mjs +0 -173
- package/lib/services/rpc-service-client.js +0 -36
- package/lib/services/rpc-service-client.mjs +0 -28
- package/lib/services/sandbox.js +0 -10
- package/lib/services/sandbox.mjs +0 -8
- package/lib/services/storage/configs.js +0 -7
- package/lib/services/storage/configs.mjs +0 -3
- package/lib/services/storage/index.android.js +0 -18
- package/lib/services/storage/index.android.mjs +0 -14
- package/lib/services/storage/index.ios.js +0 -18
- package/lib/services/storage/index.ios.mjs +0 -14
- package/lib/services/storage/index.js +0 -26
- package/lib/services/storage/index.mjs +0 -24
- package/lib/services/storage/service-rpc.js +0 -37
- package/lib/services/storage/service-rpc.mjs +0 -33
- package/lib/services/storage/service.js +0 -32
- package/lib/services/storage/service.mjs +0 -27
- package/lib/services/test-utils.js +0 -98
- package/lib/services/test-utils.mjs +0 -84
- package/lib/services/util-crypto/configs.js +0 -23
- package/lib/services/util-crypto/configs.mjs +0 -15
- package/lib/services/util-crypto/index.android.js +0 -19
- package/lib/services/util-crypto/index.android.mjs +0 -15
- package/lib/services/util-crypto/index.ios.js +0 -19
- package/lib/services/util-crypto/index.ios.mjs +0 -15
- package/lib/services/util-crypto/index.js +0 -14
- package/lib/services/util-crypto/index.mjs +0 -6
- package/lib/services/util-crypto/service-rpc.js +0 -42
- package/lib/services/util-crypto/service-rpc.mjs +0 -38
- package/lib/services/util-crypto/service.js +0 -108
- package/lib/services/util-crypto/service.mjs +0 -83
- package/lib/services/wallet/configs.js +0 -32
- package/lib/services/wallet/configs.mjs +0 -23
- package/lib/services/wallet/index.android.js +0 -21
- package/lib/services/wallet/index.android.mjs +0 -17
- package/lib/services/wallet/index.ios.js +0 -21
- package/lib/services/wallet/index.ios.mjs +0 -17
- package/lib/services/wallet/index.js +0 -17
- package/lib/services/wallet/index.mjs +0 -9
- package/lib/services/wallet/service-rpc.js +0 -33
- package/lib/services/wallet/service-rpc.mjs +0 -29
- package/lib/services/wallet/service.js +0 -62
- package/lib/services/wallet/service.mjs +0 -57
- package/lib/setup-nodejs.js +0 -93
- package/lib/setup-nodejs.mjs +0 -91
- package/lib/setup-tests.js +0 -92
- package/lib/setup-tests.mjs +0 -90
- package/lib/src/core/crypto.d.ts +0 -8
- package/lib/src/core/crypto.d.ts.map +0 -1
- package/lib/src/core/format-utils.d.ts +0 -26
- package/lib/src/core/format-utils.d.ts.map +0 -1
- package/lib/src/core/logger.d.ts +0 -3
- package/lib/src/core/logger.d.ts.map +0 -1
- package/lib/src/core/storage.d.ts +0 -8
- package/lib/src/core/storage.d.ts.map +0 -1
- package/lib/src/core/validation.d.ts +0 -6
- package/lib/src/core/validation.d.ts.map +0 -1
- package/lib/src/errors.d.ts +0 -7
- package/lib/src/errors.d.ts.map +0 -1
- package/lib/src/logger.d.ts +0 -5
- package/lib/src/logger.d.ts.map +0 -1
- package/lib/src/modules/event-manager.d.ts +0 -12
- package/lib/src/modules/event-manager.d.ts.map +0 -1
- package/lib/src/modules/network-manager.d.ts +0 -32
- package/lib/src/modules/network-manager.d.ts.map +0 -1
- package/lib/src/rpc-client.d.ts +0 -4
- package/lib/src/rpc-client.d.ts.map +0 -1
- package/lib/src/rpc-util.d.ts +0 -11
- package/lib/src/rpc-util.d.ts.map +0 -1
- package/lib/src/services/blockchain/cached-did-resolver.d.ts +0 -28
- package/lib/src/services/blockchain/cached-did-resolver.d.ts.map +0 -1
- package/lib/src/services/blockchain/cached-did-resolver.test.d.ts +0 -2
- package/lib/src/services/blockchain/cached-did-resolver.test.d.ts.map +0 -1
- package/lib/src/services/blockchain/configs.d.ts +0 -7
- package/lib/src/services/blockchain/configs.d.ts.map +0 -1
- package/lib/src/services/blockchain/service.d.ts +0 -155
- package/lib/src/services/blockchain/service.d.ts.map +0 -1
- package/lib/src/services/credential/bbs-revocation.d.ts +0 -10
- package/lib/src/services/credential/bbs-revocation.d.ts.map +0 -1
- package/lib/src/services/credential/bound-check.d.ts +0 -61
- package/lib/src/services/credential/bound-check.d.ts.map +0 -1
- package/lib/src/services/credential/bound-check.test.d.ts +0 -2
- package/lib/src/services/credential/bound-check.test.d.ts.map +0 -1
- package/lib/src/services/credential/config.d.ts +0 -10
- package/lib/src/services/credential/config.d.ts.map +0 -1
- package/lib/src/services/credential/delegatable-credentials.d.ts +0 -272
- package/lib/src/services/credential/delegatable-credentials.d.ts.map +0 -1
- package/lib/src/services/credential/index.d.ts +0 -35
- package/lib/src/services/credential/index.d.ts.map +0 -1
- package/lib/src/services/credential/pex-helpers.d.ts +0 -23
- package/lib/src/services/credential/pex-helpers.d.ts.map +0 -1
- package/lib/src/services/credential/range-proofs-example.d.ts +0 -2
- package/lib/src/services/credential/range-proofs-example.d.ts.map +0 -1
- package/lib/src/services/credential/sd-jwt.test.d.ts +0 -2
- package/lib/src/services/credential/sd-jwt.test.d.ts.map +0 -1
- package/lib/src/services/credential/service.d.ts +0 -313
- package/lib/src/services/credential/service.d.ts.map +0 -1
- package/lib/src/services/credential/utils.d.ts +0 -3
- package/lib/src/services/credential/utils.d.ts.map +0 -1
- package/lib/src/services/dids/config.d.ts +0 -24
- package/lib/src/services/dids/config.d.ts.map +0 -1
- package/lib/src/services/dids/keypair-utils.d.ts +0 -15
- package/lib/src/services/dids/keypair-utils.d.ts.map +0 -1
- package/lib/src/services/dids/service-rpc.d.ts +0 -11
- package/lib/src/services/dids/service-rpc.d.ts.map +0 -1
- package/lib/src/services/dids/service.d.ts +0 -70
- package/lib/src/services/dids/service.d.ts.map +0 -1
- package/lib/src/services/edv/configs.d.ts +0 -12
- package/lib/src/services/edv/configs.d.ts.map +0 -1
- package/lib/src/services/edv/hmac.d.ts +0 -29
- package/lib/src/services/edv/hmac.d.ts.map +0 -1
- package/lib/src/services/edv/service.d.ts +0 -229
- package/lib/src/services/edv/service.d.ts.map +0 -1
- package/lib/src/services/pex/config.d.ts +0 -21
- package/lib/src/services/pex/config.d.ts.map +0 -1
- package/lib/src/services/pex/service.d.ts +0 -21
- package/lib/src/services/pex/service.d.ts.map +0 -1
- package/lib/src/services/relay-service/configs.d.ts +0 -35
- package/lib/src/services/relay-service/configs.d.ts.map +0 -1
- package/lib/src/services/relay-service/service-rpc.d.ts +0 -12
- package/lib/src/services/relay-service/service-rpc.d.ts.map +0 -1
- package/lib/src/services/relay-service/service.d.ts +0 -159
- package/lib/src/services/relay-service/service.d.ts.map +0 -1
- package/lib/src/services/rpc-service-client.d.ts +0 -7
- package/lib/src/services/rpc-service-client.d.ts.map +0 -1
- package/lib/src/services/storage/configs.d.ts +0 -2
- package/lib/src/services/storage/configs.d.ts.map +0 -1
- package/lib/src/services/storage/index.d.ts +0 -2
- package/lib/src/services/storage/index.d.ts.map +0 -1
- package/lib/src/services/storage/service-rpc.d.ts +0 -9
- package/lib/src/services/storage/service-rpc.d.ts.map +0 -1
- package/lib/src/services/storage/service.d.ts +0 -10
- package/lib/src/services/storage/service.d.ts.map +0 -1
- package/lib/src/services/util-crypto/configs.d.ts +0 -5
- package/lib/src/services/util-crypto/configs.d.ts.map +0 -1
- package/lib/src/services/util-crypto/index.d.ts +0 -2
- package/lib/src/services/util-crypto/index.d.ts.map +0 -1
- package/lib/src/services/util-crypto/service.d.ts +0 -10
- package/lib/src/services/util-crypto/service.d.ts.map +0 -1
- package/lib/src/services/wallet/configs.d.ts +0 -13
- package/lib/src/services/wallet/configs.d.ts.map +0 -1
- package/lib/src/services/wallet/service.d.ts +0 -13
- package/lib/src/services/wallet/service.d.ts.map +0 -1
- package/lib/src/types.d.ts +0 -12
- package/lib/src/types.d.ts.map +0 -1
- package/lib/src/wallet/memory-storage-interface.d.ts +0 -31
- package/lib/src/wallet/memory-storage-interface.d.ts.map +0 -1
- package/lib/src/wallet/memory-storage-wallet.d.ts +0 -6
- package/lib/src/wallet/memory-storage-wallet.d.ts.map +0 -1
- package/lib/src/wallet/rpc-storage-interface.d.ts +0 -32
- package/lib/src/wallet/rpc-storage-interface.d.ts.map +0 -1
- package/lib/src/wallet/rpc-storage-wallet.d.ts +0 -6
- package/lib/src/wallet/rpc-storage-wallet.d.ts.map +0 -1
- package/lib/test-utils.js +0 -46
- package/lib/test-utils.mjs +0 -38
- package/lib/tsconfig.tsbuildinfo +0 -1
- package/lib/types.js +0 -7
- package/lib/types.mjs +0 -3
- package/lib/wallet/memory-storage-interface.js +0 -101
- package/lib/wallet/memory-storage-interface.mjs +0 -95
- package/lib/wallet/memory-storage-wallet.js +0 -30
- package/lib/wallet/memory-storage-wallet.mjs +0 -24
- package/lib/wallet/rpc-storage-interface.js +0 -134
- package/lib/wallet/rpc-storage-interface.mjs +0 -128
- package/lib/wallet/rpc-storage-wallet.js +0 -46
- package/lib/wallet/rpc-storage-wallet.mjs +0 -40
|
@@ -1,74 +0,0 @@
|
|
|
1
|
-
import { RpcService } from '../rpc-service-client.mjs';
|
|
2
|
-
import { serviceName, validation } from './configs.mjs';
|
|
3
|
-
import 'assert';
|
|
4
|
-
import '../../rpc-client.mjs';
|
|
5
|
-
import 'json-rpc-2.0';
|
|
6
|
-
import '../../core/crypto.mjs';
|
|
7
|
-
import 'crypto';
|
|
8
|
-
import '../../core/logger.mjs';
|
|
9
|
-
import '../../logger.mjs';
|
|
10
|
-
import '../../rpc-util.mjs';
|
|
11
|
-
|
|
12
|
-
class EDVServiceRpc extends RpcService {
|
|
13
|
-
constructor() {
|
|
14
|
-
super(serviceName);
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
initialize(params ) {
|
|
18
|
-
validation.initialize(params);
|
|
19
|
-
return this.call('initialize', params);
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
generateKeys() {
|
|
23
|
-
return this.call('generateKeys');
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
deriveKeys() {
|
|
27
|
-
return this.call('deriveKeys');
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
getController() {
|
|
31
|
-
return this.call('getController');
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
find(params ) {
|
|
35
|
-
return this.call('find', params);
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
update(params ) {
|
|
39
|
-
return this.call('update', params);
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
insert(params ) {
|
|
43
|
-
return this.call('insert', params);
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
delete(params ) {
|
|
47
|
-
return this.call('delete', params);
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
deriveBiometricKey(biometricData , identifier ) {
|
|
51
|
-
return this.call('deriveBiometricKey', {biometricData, identifier});
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
deriveBiometricEncryptionKey(biometricData , identifier ) {
|
|
55
|
-
return this.call('deriveBiometricEncryptionKey', {
|
|
56
|
-
biometricData,
|
|
57
|
-
identifier,
|
|
58
|
-
});
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
encryptMasterKey(masterKey , encryptionKey , iv ) {
|
|
62
|
-
return this.call('encryptMasterKey', {masterKey, encryptionKey, iv});
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
decryptMasterKey(
|
|
66
|
-
encryptedKey ,
|
|
67
|
-
decryptionKey ,
|
|
68
|
-
iv ,
|
|
69
|
-
) {
|
|
70
|
-
return this.call('decryptMasterKey', {encryptedKey, decryptionKey, iv});
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
export { EDVServiceRpc };
|
|
@@ -1,370 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
-
|
|
5
|
-
var services_edv_configs = require('./configs.js');
|
|
6
|
-
var EDVHTTPStorageInterface = require('@docknetwork/universal-wallet/storage/edv-http-storage');
|
|
7
|
-
var services_edv_hmac = require('./hmac.js');
|
|
8
|
-
var ed25519VerificationKey2018 = require('@digitalbazaar/ed25519-verification-key-2018');
|
|
9
|
-
var ed25519VerificationKey2020 = require('@digitalbazaar/ed25519-verification-key-2020');
|
|
10
|
-
var x25519KeyAgreementKey2020 = require('@digitalbazaar/x25519-key-agreement-key-2020');
|
|
11
|
-
var keypairs = require('@docknetwork/universal-wallet/methods/keypairs');
|
|
12
|
-
var logger = require('@docknetwork/wallet-sdk-data-store/lib/logger');
|
|
13
|
-
var services_dids_service = require('../dids/service.js');
|
|
14
|
-
var keypairs$1 = require('@docknetwork/credential-sdk/keypairs');
|
|
15
|
-
var hkdf = require('futoin-hkdf');
|
|
16
|
-
var crypto = require('@docknetwork/universal-wallet/crypto');
|
|
17
|
-
require('assert');
|
|
18
|
-
require('base64url-universal');
|
|
19
|
-
require('@docknetwork/wallet-sdk-dids/lib');
|
|
20
|
-
require('../dids/config.js');
|
|
21
|
-
require('base64url');
|
|
22
|
-
require('../credential/utils.js');
|
|
23
|
-
require('base58-universal');
|
|
24
|
-
require('@docknetwork/credential-sdk/vc/crypto');
|
|
25
|
-
require('@docknetwork/credential-sdk/utils');
|
|
26
|
-
require('@digitalbazaar/x25519-key-agreement-key-2019');
|
|
27
|
-
require('../dids/keypair-utils.js');
|
|
28
|
-
|
|
29
|
-
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
30
|
-
|
|
31
|
-
var EDVHTTPStorageInterface__default = /*#__PURE__*/_interopDefaultLegacy(EDVHTTPStorageInterface);
|
|
32
|
-
var hkdf__default = /*#__PURE__*/_interopDefaultLegacy(hkdf);
|
|
33
|
-
var crypto__default = /*#__PURE__*/_interopDefaultLegacy(crypto);
|
|
34
|
-
|
|
35
|
-
// @ts-nocheck
|
|
36
|
-
const HKDF_LENGTH = 32;
|
|
37
|
-
const HKDF_HASH = 'SHA-256';
|
|
38
|
-
/**
|
|
39
|
-
* Service class for managing Encrypted Data Vaults
|
|
40
|
-
* @class
|
|
41
|
-
* @description Provides methods for creating, managing, and interacting with
|
|
42
|
-
* encrypted data vaults for secure storage of sensitive wallet data
|
|
43
|
-
*/
|
|
44
|
-
class EDVService {
|
|
45
|
-
storageInterface;
|
|
46
|
-
insertQueue = Promise.resolve();
|
|
47
|
-
controller;
|
|
48
|
-
rpcMethods = [
|
|
49
|
-
EDVService.prototype.generateKeys,
|
|
50
|
-
EDVService.prototype.deriveKeys,
|
|
51
|
-
EDVService.prototype.getController,
|
|
52
|
-
EDVService.prototype.initialize,
|
|
53
|
-
EDVService.prototype.find,
|
|
54
|
-
EDVService.prototype.update,
|
|
55
|
-
EDVService.prototype.insert,
|
|
56
|
-
EDVService.prototype.delete,
|
|
57
|
-
EDVService.prototype.deriveBiometricKey,
|
|
58
|
-
EDVService.prototype.deriveBiometricEncryptionKey,
|
|
59
|
-
EDVService.prototype.encryptMasterKey,
|
|
60
|
-
EDVService.prototype.decryptMasterKey,
|
|
61
|
-
];
|
|
62
|
-
/**
|
|
63
|
-
* Creates a new EDVService instance
|
|
64
|
-
* @constructor
|
|
65
|
-
*/
|
|
66
|
-
constructor() {
|
|
67
|
-
this.name = services_edv_configs.serviceName;
|
|
68
|
-
}
|
|
69
|
-
/**
|
|
70
|
-
* Initializes the EDV service with encryption keys and connection parameters
|
|
71
|
-
* @param {InitializeEDVParams} params - Initialization parameters
|
|
72
|
-
* @param {Object} params.hmacKey - HMAC key for document indexing
|
|
73
|
-
* @param {Object} params.agreementKey - Key agreement key for encryption
|
|
74
|
-
* @param {Object} params.verificationKey - Verification key for authentication
|
|
75
|
-
* @param {string} params.edvUrl - URL of the EDV server
|
|
76
|
-
* @param {string} params.authKey - Authentication key for the EDV server
|
|
77
|
-
* @returns {Promise<void>}
|
|
78
|
-
* @throws {Error} If unable to create or connect to EDV
|
|
79
|
-
* @example
|
|
80
|
-
* await edvService.initialize({
|
|
81
|
-
* hmacKey: hmacKeyData,
|
|
82
|
-
* agreementKey: agreementKeyData,
|
|
83
|
-
* verificationKey: verificationKeyData,
|
|
84
|
-
* edvUrl: 'https://edv.example.com',
|
|
85
|
-
* authKey: 'auth-token-123'
|
|
86
|
-
* });
|
|
87
|
-
*/
|
|
88
|
-
async initialize({ hmacKey, agreementKey, verificationKey, edvUrl, authKey, }) {
|
|
89
|
-
const hmac = await services_edv_hmac.create({
|
|
90
|
-
key: hmacKey,
|
|
91
|
-
});
|
|
92
|
-
const keyAgreementKey = await x25519KeyAgreementKey2020.X25519KeyAgreementKey2020.from(agreementKey);
|
|
93
|
-
const keys = {
|
|
94
|
-
keyAgreementKey,
|
|
95
|
-
hmac,
|
|
96
|
-
};
|
|
97
|
-
const { controller } = verificationKey;
|
|
98
|
-
this.controller = controller;
|
|
99
|
-
const invocationSigner = keypairs.getKeypairFromDoc(verificationKey);
|
|
100
|
-
invocationSigner.sign = invocationSigner.signer().sign;
|
|
101
|
-
this.storageInterface = new EDVHTTPStorageInterface__default["default"]({
|
|
102
|
-
url: edvUrl,
|
|
103
|
-
keys,
|
|
104
|
-
invocationSigner,
|
|
105
|
-
defaultHeaders: {
|
|
106
|
-
DockAuth: authKey,
|
|
107
|
-
},
|
|
108
|
-
});
|
|
109
|
-
let edvId;
|
|
110
|
-
try {
|
|
111
|
-
console.log('Creating EDV with controller:', controller);
|
|
112
|
-
edvId = await this.storageInterface.createEdv({
|
|
113
|
-
sequence: 0,
|
|
114
|
-
controller,
|
|
115
|
-
});
|
|
116
|
-
}
|
|
117
|
-
catch (e) {
|
|
118
|
-
const existingConfig = await this.storageInterface.findConfigFor(controller);
|
|
119
|
-
edvId = existingConfig && existingConfig.id;
|
|
120
|
-
if (!edvId) {
|
|
121
|
-
logger.logger.error('Unable to create or find primary EDV:');
|
|
122
|
-
throw e;
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
logger.logger.log(`EDV found/created: ${edvId} - connecting to it`);
|
|
126
|
-
this.storageInterface.connectTo(edvId);
|
|
127
|
-
await this.storageInterface.client.ensureIndex({
|
|
128
|
-
attribute: 'content.id',
|
|
129
|
-
unique: true,
|
|
130
|
-
});
|
|
131
|
-
await this.storageInterface.client.ensureIndex({
|
|
132
|
-
attribute: 'content.type',
|
|
133
|
-
});
|
|
134
|
-
}
|
|
135
|
-
/**
|
|
136
|
-
* Generates new cryptographic keys for EDV operations
|
|
137
|
-
* @returns {Promise<Object>} Generated keys
|
|
138
|
-
* @returns {Object} returns.verificationKey - Ed25519 verification key for authentication
|
|
139
|
-
* @returns {Object} returns.agreementKey - X25519 key agreement key for encryption
|
|
140
|
-
* @returns {Object} returns.hmacKey - HMAC key for indexing
|
|
141
|
-
* @example
|
|
142
|
-
* const keys = await edvService.generateKeys();
|
|
143
|
-
* // Use keys for EDV initialization
|
|
144
|
-
* await edvService.initialize({
|
|
145
|
-
* ...keys,
|
|
146
|
-
* edvUrl: 'https://edv.example.com',
|
|
147
|
-
* authKey: 'auth-token'
|
|
148
|
-
* });
|
|
149
|
-
*/
|
|
150
|
-
async generateKeys() {
|
|
151
|
-
const keyPair = await services_dids_service.didService.generateKeyDoc({});
|
|
152
|
-
const verificationKey = await ed25519VerificationKey2018.Ed25519VerificationKey2018.generate({
|
|
153
|
-
controller: keyPair.controller,
|
|
154
|
-
id: keyPair.id,
|
|
155
|
-
});
|
|
156
|
-
const agreementKey = await x25519KeyAgreementKey2020.X25519KeyAgreementKey2020.generate({
|
|
157
|
-
controller: keyPair.controller,
|
|
158
|
-
});
|
|
159
|
-
const hmacKey = await services_edv_hmac.exportKey(await services_edv_hmac.generateKey());
|
|
160
|
-
return { verificationKey, agreementKey, hmacKey };
|
|
161
|
-
}
|
|
162
|
-
/**
|
|
163
|
-
* Derives cryptographic keys from a master key
|
|
164
|
-
* @param {Uint8Array} masterKey - Master key for derivation
|
|
165
|
-
* @returns {Promise<Object>} Derived keys
|
|
166
|
-
* @returns {Object} returns.verificationKey - Derived Ed25519 verification key
|
|
167
|
-
* @returns {Object} returns.agreementKey - Derived X25519 key agreement key
|
|
168
|
-
* @returns {Object} returns.hmacKey - Derived HMAC key
|
|
169
|
-
* @example
|
|
170
|
-
* const masterKey = new Uint8Array(32); // Your master key
|
|
171
|
-
* const keys = await edvService.deriveKeys(masterKey);
|
|
172
|
-
*/
|
|
173
|
-
async deriveKeys(masterKey) {
|
|
174
|
-
const { keyPair: pair } = new keypairs$1.Ed25519Keypair(masterKey, 'seed');
|
|
175
|
-
const keyPair = await services_dids_service.didService.deriveKeyDoc({ pair });
|
|
176
|
-
const verificationKey = await ed25519VerificationKey2018.Ed25519VerificationKey2018.from(keyPair);
|
|
177
|
-
const verificationKey2020 = await ed25519VerificationKey2020.Ed25519VerificationKey2020.fromEd25519VerificationKey2018({ keyPair });
|
|
178
|
-
const agreementKey = await x25519KeyAgreementKey2020.X25519KeyAgreementKey2020.fromEd25519VerificationKey2020({ keyPair: verificationKey2020 });
|
|
179
|
-
const hmacKey = await services_edv_hmac.exportKey(await services_edv_hmac.deriveKey(masterKey));
|
|
180
|
-
return { verificationKey, agreementKey, hmacKey };
|
|
181
|
-
}
|
|
182
|
-
/**
|
|
183
|
-
* Gets the controller identifier for the current EDV
|
|
184
|
-
* @returns {Promise<string>} The controller DID or identifier
|
|
185
|
-
* @example
|
|
186
|
-
* const controller = await edvService.getController();
|
|
187
|
-
* console.log('EDV Controller:', controller);
|
|
188
|
-
*/
|
|
189
|
-
async getController() {
|
|
190
|
-
return this.controller;
|
|
191
|
-
}
|
|
192
|
-
/**
|
|
193
|
-
* Finds documents in the EDV based on query parameters
|
|
194
|
-
* @param {Object} params - Query parameters
|
|
195
|
-
* @param {Object} [params.equals] - Equality-based query conditions
|
|
196
|
-
* @param {boolean} [params.has] - Existence-based query conditions
|
|
197
|
-
* @param {number} [params.limit] - Maximum number of results
|
|
198
|
-
* @returns {Promise<Array>} Array of matching documents
|
|
199
|
-
* @example
|
|
200
|
-
* const documents = await edvService.find({
|
|
201
|
-
* equals: { 'content.type': 'VerifiableCredential' },
|
|
202
|
-
* limit: 10
|
|
203
|
-
* });
|
|
204
|
-
*/
|
|
205
|
-
find(params) {
|
|
206
|
-
return this.storageInterface.find(params);
|
|
207
|
-
}
|
|
208
|
-
/**
|
|
209
|
-
* Updates a document in the EDV
|
|
210
|
-
* @param {Object} params - Update parameters
|
|
211
|
-
* @param {string} params.id - Document ID to update
|
|
212
|
-
* @param {Object} params.content - New document content
|
|
213
|
-
* @returns {Promise<Object>} Updated document
|
|
214
|
-
* @example
|
|
215
|
-
* const updated = await edvService.update({
|
|
216
|
-
* id: 'doc-123',
|
|
217
|
-
* content: { ...existingContent, updated: true }
|
|
218
|
-
* });
|
|
219
|
-
*/
|
|
220
|
-
update(params) {
|
|
221
|
-
return this.storageInterface.update(params);
|
|
222
|
-
}
|
|
223
|
-
/**
|
|
224
|
-
* Inserts a new document into the EDV
|
|
225
|
-
* @param {Object} params - Insert parameters
|
|
226
|
-
* @param {string} params.id - Document ID
|
|
227
|
-
* @param {Object} params.content - Document content to store
|
|
228
|
-
* @returns {Promise<Object>} The inserted document
|
|
229
|
-
* @throws {Error} If insertion fails
|
|
230
|
-
* @example
|
|
231
|
-
* const document = await edvService.insert({
|
|
232
|
-
* id: 'doc-456',
|
|
233
|
-
* content: {
|
|
234
|
-
* type: 'VerifiableCredential',
|
|
235
|
-
* data: credentialData
|
|
236
|
-
* }
|
|
237
|
-
* });
|
|
238
|
-
*/
|
|
239
|
-
insert(params) {
|
|
240
|
-
this.insertQueue = this.insertQueue.then(() => {
|
|
241
|
-
return this.storageInterface.insert(params).catch(error => {
|
|
242
|
-
logger.logger.error('Insert failed:', error);
|
|
243
|
-
throw error;
|
|
244
|
-
});
|
|
245
|
-
});
|
|
246
|
-
return this.insertQueue;
|
|
247
|
-
}
|
|
248
|
-
/**
|
|
249
|
-
* Deletes a document from the EDV
|
|
250
|
-
* @param {Object} params - Deletion parameters
|
|
251
|
-
* @param {string} params.id - Document ID to delete
|
|
252
|
-
* @returns {Promise<boolean>} True if deletion successful
|
|
253
|
-
* @example
|
|
254
|
-
* const deleted = await edvService.delete({
|
|
255
|
-
* id: 'doc-123'
|
|
256
|
-
* });
|
|
257
|
-
*/
|
|
258
|
-
delete(params) {
|
|
259
|
-
return this.storageInterface.delete(params);
|
|
260
|
-
}
|
|
261
|
-
/**
|
|
262
|
-
* Derives a key from biometric data using HKDF
|
|
263
|
-
* @param {Buffer} biometricData - Biometric data from provider
|
|
264
|
-
* @param {string} identifier - User's identifier as salt (email, phone number, etc.)
|
|
265
|
-
* @returns {Buffer} Derived key
|
|
266
|
-
* @example
|
|
267
|
-
* const key = edvService.deriveBiometricKey(biometricData, 'user@example.com');
|
|
268
|
-
*/
|
|
269
|
-
deriveBiometricKey(biometricData, identifier) {
|
|
270
|
-
const salt = identifier;
|
|
271
|
-
return hkdf__default["default"](biometricData, HKDF_LENGTH, { salt, hash: HKDF_HASH });
|
|
272
|
-
}
|
|
273
|
-
/**
|
|
274
|
-
* Generates a key for encrypting/decrypting the master key
|
|
275
|
-
* @param {Buffer} biometricData - Biometric data from provider
|
|
276
|
-
* @param {string} identifier - User's identifier as salt (email, phone number, etc.)
|
|
277
|
-
* @returns {Promise<Object>} Encryption key and IV for AES encryption
|
|
278
|
-
* @returns {Buffer} returns.key - Encryption key
|
|
279
|
-
* @returns {Buffer} returns.iv - Initialization vector
|
|
280
|
-
* @example
|
|
281
|
-
* const { key, iv } = await edvService.deriveBiometricEncryptionKey(biometricData, 'user@example.com');
|
|
282
|
-
*/
|
|
283
|
-
async deriveBiometricEncryptionKey(biometricData, identifier) {
|
|
284
|
-
const key = this.deriveBiometricKey(biometricData, identifier);
|
|
285
|
-
const randomBytes = crypto__default["default"].getRandomValues(new Uint8Array(16));
|
|
286
|
-
const iv = Buffer.from(randomBytes);
|
|
287
|
-
return {
|
|
288
|
-
key,
|
|
289
|
-
iv
|
|
290
|
-
};
|
|
291
|
-
}
|
|
292
|
-
/**
|
|
293
|
-
* Encrypts the master key using a key derived from biometric data
|
|
294
|
-
* @param {Uint8Array} masterKey - The CloudWalletVault master key to encrypt
|
|
295
|
-
* @param {Buffer} encryptionKey - Key derived from biometric data
|
|
296
|
-
* @param {Buffer} iv - Initialization vector
|
|
297
|
-
* @returns {Promise<Uint8Array>} Encrypted master key
|
|
298
|
-
* @example
|
|
299
|
-
* const encrypted = await edvService.encryptMasterKey(masterKey, encryptionKey, iv);
|
|
300
|
-
*/
|
|
301
|
-
async encryptMasterKey(masterKey, encryptionKey, iv) {
|
|
302
|
-
const keyData = new Uint8Array(encryptionKey);
|
|
303
|
-
const ivData = new Uint8Array(iv);
|
|
304
|
-
const key = await crypto__default["default"].subtle.importKey('raw', keyData, { name: 'AES-GCM' }, false, ['encrypt']);
|
|
305
|
-
const encryptedBuffer = await crypto__default["default"].subtle.encrypt({ name: 'AES-GCM', iv: ivData }, key, masterKey);
|
|
306
|
-
return new Uint8Array(encryptedBuffer);
|
|
307
|
-
}
|
|
308
|
-
/**
|
|
309
|
-
* Decrypts the master key using biometric-derived key
|
|
310
|
-
* @param {Uint8Array} encryptedKey - The encrypted master key
|
|
311
|
-
* @param {Buffer} decryptionKey - Key derived from biometric data
|
|
312
|
-
* @param {Buffer} iv - Initialization vector
|
|
313
|
-
* @returns {Promise<Uint8Array>} The decrypted master key
|
|
314
|
-
* @throws {Error} If decryption fails
|
|
315
|
-
* @example
|
|
316
|
-
* const masterKey = await edvService.decryptMasterKey(encryptedKey, decryptionKey, iv);
|
|
317
|
-
*/
|
|
318
|
-
async decryptMasterKey(encryptedKey, decryptionKey, iv) {
|
|
319
|
-
try {
|
|
320
|
-
const keyData = new Uint8Array(decryptionKey);
|
|
321
|
-
const ivData = new Uint8Array(iv);
|
|
322
|
-
const key = await crypto__default["default"].subtle.importKey('raw', keyData, { name: 'AES-GCM' }, false, ['decrypt']);
|
|
323
|
-
const decryptedBuffer = await crypto__default["default"].subtle.decrypt({ name: 'AES-GCM', iv: ivData }, key, encryptedKey);
|
|
324
|
-
return new Uint8Array(decryptedBuffer);
|
|
325
|
-
}
|
|
326
|
-
catch (error) {
|
|
327
|
-
throw new Error('Decryption failed: Invalid key or corrupted data');
|
|
328
|
-
}
|
|
329
|
-
}
|
|
330
|
-
}
|
|
331
|
-
/**
|
|
332
|
-
* Singleton instance of the EDV service
|
|
333
|
-
* @type {EDVService}
|
|
334
|
-
* @example
|
|
335
|
-
* import { edvService } from '@docknetwork/wallet-sdk-wasm/services/edv';
|
|
336
|
-
*
|
|
337
|
-
* // Generate keys and initialize
|
|
338
|
-
* const keys = await edvService.generateKeys();
|
|
339
|
-
* await edvService.initialize({
|
|
340
|
-
* ...keys,
|
|
341
|
-
* edvUrl: 'https://edv.example.com',
|
|
342
|
-
* authKey: 'auth-token'
|
|
343
|
-
* });
|
|
344
|
-
*
|
|
345
|
-
* // Store encrypted data
|
|
346
|
-
* await edvService.insert({
|
|
347
|
-
* id: 'credential-1',
|
|
348
|
-
* content: {
|
|
349
|
-
* type: 'VerifiableCredential',
|
|
350
|
-
* data: credentialData
|
|
351
|
-
* }
|
|
352
|
-
* });
|
|
353
|
-
*
|
|
354
|
-
* // Query encrypted data
|
|
355
|
-
* const credentials = await edvService.find({
|
|
356
|
-
* equals: { 'content.type': 'VerifiableCredential' }
|
|
357
|
-
* });
|
|
358
|
-
*
|
|
359
|
-
* // Update encrypted data
|
|
360
|
-
* await edvService.update({
|
|
361
|
-
* id: 'credential-1',
|
|
362
|
-
* content: updatedData
|
|
363
|
-
* });
|
|
364
|
-
*/
|
|
365
|
-
const edvService = new EDVService();
|
|
366
|
-
|
|
367
|
-
exports.EDVService = EDVService;
|
|
368
|
-
exports.HKDF_HASH = HKDF_HASH;
|
|
369
|
-
exports.HKDF_LENGTH = HKDF_LENGTH;
|
|
370
|
-
exports.edvService = edvService;
|