@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,103 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
-
|
|
5
|
-
var bs58 = require('base58-universal');
|
|
6
|
-
var crypto = require('@docknetwork/credential-sdk/vc/crypto');
|
|
7
|
-
var utils = require('@docknetwork/credential-sdk/utils');
|
|
8
|
-
var x25519KeyAgreementKey2020 = require('@digitalbazaar/x25519-key-agreement-key-2020');
|
|
9
|
-
var x25519KeyAgreementKey2019 = require('@digitalbazaar/x25519-key-agreement-key-2019');
|
|
10
|
-
var ed25519VerificationKey2018 = require('@digitalbazaar/ed25519-verification-key-2018');
|
|
11
|
-
var ed25519VerificationKey2020 = require('@digitalbazaar/ed25519-verification-key-2020');
|
|
12
|
-
var keypairs = require('@docknetwork/credential-sdk/keypairs');
|
|
13
|
-
|
|
14
|
-
function _interopNamespace(e) {
|
|
15
|
-
if (e && e.__esModule) return e;
|
|
16
|
-
var n = Object.create(null);
|
|
17
|
-
if (e) {
|
|
18
|
-
Object.keys(e).forEach(function (k) {
|
|
19
|
-
if (k !== 'default') {
|
|
20
|
-
var d = Object.getOwnPropertyDescriptor(e, k);
|
|
21
|
-
Object.defineProperty(n, k, d.get ? d : {
|
|
22
|
-
enumerable: true,
|
|
23
|
-
get: function () { return e[k]; }
|
|
24
|
-
});
|
|
25
|
-
}
|
|
26
|
-
});
|
|
27
|
-
}
|
|
28
|
-
n["default"] = e;
|
|
29
|
-
return Object.freeze(n);
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
var bs58__namespace = /*#__PURE__*/_interopNamespace(bs58);
|
|
33
|
-
|
|
34
|
-
async function keyDocToKeypair(keyDoc) {
|
|
35
|
-
if (keyDoc.keypair) {
|
|
36
|
-
return keyDoc;
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
const {
|
|
40
|
-
type,
|
|
41
|
-
privateKeyBase58,
|
|
42
|
-
publicKeyBase58,
|
|
43
|
-
privateKeyMultibase,
|
|
44
|
-
publicKeyMultibase,
|
|
45
|
-
} = keyDoc;
|
|
46
|
-
|
|
47
|
-
const publicKeyEncoded = publicKeyBase58 || publicKeyMultibase.substr(1);
|
|
48
|
-
const privateKeyEncoded =
|
|
49
|
-
privateKeyBase58 || (privateKeyMultibase && privateKeyMultibase.substr(1));
|
|
50
|
-
if (!privateKeyEncoded) {
|
|
51
|
-
throw new Error(
|
|
52
|
-
`No private key in document found, this should not happen. Got: ${JSON.stringify(
|
|
53
|
-
keyDoc,
|
|
54
|
-
null,
|
|
55
|
-
2,
|
|
56
|
-
)}`,
|
|
57
|
-
);
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
const privateKeyBytes = bs58__namespace.decode(privateKeyEncoded);
|
|
61
|
-
const publicKeyBytes = bs58__namespace.decode(publicKeyEncoded);
|
|
62
|
-
|
|
63
|
-
if (type === 'Bls12381G2VerificationKeyDock2022') {
|
|
64
|
-
return new crypto.Bls12381G2KeyPairDock2022(keyDoc);
|
|
65
|
-
} else if (type === 'Bls12381BBSVerificationKeyDock2023') {
|
|
66
|
-
return new crypto.Bls12381BBSKeyPairDock2023(keyDoc);
|
|
67
|
-
} else if (type === 'Bls12381BBDT16VerificationKeyDock2024') {
|
|
68
|
-
return new crypto.Bls12381BBDT16KeyPairDock2024(keyDoc);
|
|
69
|
-
} else if (
|
|
70
|
-
type === 'Ed25519VerificationKey2020' ||
|
|
71
|
-
type === 'Ed25519VerificationKey2018'
|
|
72
|
-
) {
|
|
73
|
-
const key = new keypairs.Ed25519Keypair(utils.randomAsHex(32));
|
|
74
|
-
key.keyPair.publicKey = publicKeyBytes;
|
|
75
|
-
key.keyPair.secretKey = privateKeyBytes;
|
|
76
|
-
return key;
|
|
77
|
-
} else {
|
|
78
|
-
throw new Error(`Unsupported key type: ${type}`);
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
const keyConstructors = {
|
|
83
|
-
Ed25519VerificationKey2018: keypairOptions =>
|
|
84
|
-
new ed25519VerificationKey2018.Ed25519VerificationKey2018(keypairOptions),
|
|
85
|
-
Ed25519VerificationKey2020: keypairOptions =>
|
|
86
|
-
new ed25519VerificationKey2020.Ed25519VerificationKey2020(keypairOptions),
|
|
87
|
-
X25519KeyAgreementKey2019: keypairOptions =>
|
|
88
|
-
new x25519KeyAgreementKey2019.X25519KeyAgreementKey2019(keypairOptions),
|
|
89
|
-
X25519KeyAgreementKey2020: keypairOptions =>
|
|
90
|
-
new x25519KeyAgreementKey2020.X25519KeyAgreementKey2020(keypairOptions),
|
|
91
|
-
};
|
|
92
|
-
|
|
93
|
-
function getKeypairFromDoc(keypairOptions) {
|
|
94
|
-
const {type} = keypairOptions;
|
|
95
|
-
const keyConstructor = keyConstructors[type];
|
|
96
|
-
if (!keyConstructor) {
|
|
97
|
-
throw new Error(`Unrecognized keypair type to construct: ${type}`);
|
|
98
|
-
}
|
|
99
|
-
return keyConstructor(keypairOptions);
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
exports.getKeypairFromDoc = getKeypairFromDoc;
|
|
103
|
-
exports.keyDocToKeypair = keyDocToKeypair;
|
|
@@ -1,78 +0,0 @@
|
|
|
1
|
-
import * as bs58 from 'base58-universal';
|
|
2
|
-
import { Bls12381G2KeyPairDock2022, Bls12381BBSKeyPairDock2023, Bls12381BBDT16KeyPairDock2024 } from '@docknetwork/credential-sdk/vc/crypto';
|
|
3
|
-
import { randomAsHex } from '@docknetwork/credential-sdk/utils';
|
|
4
|
-
import { X25519KeyAgreementKey2020 } from '@digitalbazaar/x25519-key-agreement-key-2020';
|
|
5
|
-
import { X25519KeyAgreementKey2019 } from '@digitalbazaar/x25519-key-agreement-key-2019';
|
|
6
|
-
import { Ed25519VerificationKey2018 } from '@digitalbazaar/ed25519-verification-key-2018';
|
|
7
|
-
import { Ed25519VerificationKey2020 } from '@digitalbazaar/ed25519-verification-key-2020';
|
|
8
|
-
import { Ed25519Keypair } from '@docknetwork/credential-sdk/keypairs';
|
|
9
|
-
|
|
10
|
-
async function keyDocToKeypair(keyDoc) {
|
|
11
|
-
if (keyDoc.keypair) {
|
|
12
|
-
return keyDoc;
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
const {
|
|
16
|
-
type,
|
|
17
|
-
privateKeyBase58,
|
|
18
|
-
publicKeyBase58,
|
|
19
|
-
privateKeyMultibase,
|
|
20
|
-
publicKeyMultibase,
|
|
21
|
-
} = keyDoc;
|
|
22
|
-
|
|
23
|
-
const publicKeyEncoded = publicKeyBase58 || publicKeyMultibase.substr(1);
|
|
24
|
-
const privateKeyEncoded =
|
|
25
|
-
privateKeyBase58 || (privateKeyMultibase && privateKeyMultibase.substr(1));
|
|
26
|
-
if (!privateKeyEncoded) {
|
|
27
|
-
throw new Error(
|
|
28
|
-
`No private key in document found, this should not happen. Got: ${JSON.stringify(
|
|
29
|
-
keyDoc,
|
|
30
|
-
null,
|
|
31
|
-
2,
|
|
32
|
-
)}`,
|
|
33
|
-
);
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
const privateKeyBytes = bs58.decode(privateKeyEncoded);
|
|
37
|
-
const publicKeyBytes = bs58.decode(publicKeyEncoded);
|
|
38
|
-
|
|
39
|
-
if (type === 'Bls12381G2VerificationKeyDock2022') {
|
|
40
|
-
return new Bls12381G2KeyPairDock2022(keyDoc);
|
|
41
|
-
} else if (type === 'Bls12381BBSVerificationKeyDock2023') {
|
|
42
|
-
return new Bls12381BBSKeyPairDock2023(keyDoc);
|
|
43
|
-
} else if (type === 'Bls12381BBDT16VerificationKeyDock2024') {
|
|
44
|
-
return new Bls12381BBDT16KeyPairDock2024(keyDoc);
|
|
45
|
-
} else if (
|
|
46
|
-
type === 'Ed25519VerificationKey2020' ||
|
|
47
|
-
type === 'Ed25519VerificationKey2018'
|
|
48
|
-
) {
|
|
49
|
-
const key = new Ed25519Keypair(randomAsHex(32));
|
|
50
|
-
key.keyPair.publicKey = publicKeyBytes;
|
|
51
|
-
key.keyPair.secretKey = privateKeyBytes;
|
|
52
|
-
return key;
|
|
53
|
-
} else {
|
|
54
|
-
throw new Error(`Unsupported key type: ${type}`);
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
const keyConstructors = {
|
|
59
|
-
Ed25519VerificationKey2018: keypairOptions =>
|
|
60
|
-
new Ed25519VerificationKey2018(keypairOptions),
|
|
61
|
-
Ed25519VerificationKey2020: keypairOptions =>
|
|
62
|
-
new Ed25519VerificationKey2020(keypairOptions),
|
|
63
|
-
X25519KeyAgreementKey2019: keypairOptions =>
|
|
64
|
-
new X25519KeyAgreementKey2019(keypairOptions),
|
|
65
|
-
X25519KeyAgreementKey2020: keypairOptions =>
|
|
66
|
-
new X25519KeyAgreementKey2020(keypairOptions),
|
|
67
|
-
};
|
|
68
|
-
|
|
69
|
-
function getKeypairFromDoc(keypairOptions) {
|
|
70
|
-
const {type} = keypairOptions;
|
|
71
|
-
const keyConstructor = keyConstructors[type];
|
|
72
|
-
if (!keyConstructor) {
|
|
73
|
-
throw new Error(`Unrecognized keypair type to construct: ${type}`);
|
|
74
|
-
}
|
|
75
|
-
return keyConstructor(keypairOptions);
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
export { getKeypairFromDoc, keyDocToKeypair };
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
-
|
|
5
|
-
var assert = require('assert');
|
|
6
|
-
|
|
7
|
-
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
8
|
-
|
|
9
|
-
var assert__default = /*#__PURE__*/_interopDefaultLegacy(assert);
|
|
10
|
-
|
|
11
|
-
const serviceName = 'didManager';
|
|
12
|
-
const validation = {
|
|
13
|
-
keypairToDIDKeyDocument: ({ keypairDoc }) => {
|
|
14
|
-
assert__default["default"](typeof keypairDoc === 'object', 'invalid keypairDoc');
|
|
15
|
-
assert__default["default"](keypairDoc.type === 'Ed25519VerificationKey2018', 'invalid type');
|
|
16
|
-
assert__default["default"](typeof keypairDoc.publicKeyBase58 === 'string', 'publicKeyBase58 is not present');
|
|
17
|
-
},
|
|
18
|
-
getDIDResolution: ({ didDocument }) => {
|
|
19
|
-
assert__default["default"](typeof didDocument.id === 'string', 'invalid didDocument');
|
|
20
|
-
},
|
|
21
|
-
generateKeyDoc: ({ derivePath, type }) => {
|
|
22
|
-
if (derivePath) {
|
|
23
|
-
assert__default["default"](typeof derivePath === 'string', 'invalid derivePath');
|
|
24
|
-
}
|
|
25
|
-
if (type) {
|
|
26
|
-
assert__default["default"](typeof type === 'string', 'invalid type');
|
|
27
|
-
}
|
|
28
|
-
},
|
|
29
|
-
deriveKeyDoc: ({ pair, type }) => {
|
|
30
|
-
assert__default["default"](typeof pair === 'object', 'invalid pair');
|
|
31
|
-
assert__default["default"](pair.publicKey instanceof Uint8Array, 'invalid publicKey');
|
|
32
|
-
assert__default["default"](pair.secretKey instanceof Uint8Array, 'invalid secretKey');
|
|
33
|
-
if (type) {
|
|
34
|
-
assert__default["default"](typeof type === 'string', 'invalid type');
|
|
35
|
-
}
|
|
36
|
-
},
|
|
37
|
-
};
|
|
38
|
-
|
|
39
|
-
exports.serviceName = serviceName;
|
|
40
|
-
exports.validation = validation;
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import assert from 'assert';
|
|
2
|
-
|
|
3
|
-
const serviceName = 'didManager';
|
|
4
|
-
const validation = {
|
|
5
|
-
keypairToDIDKeyDocument: ({ keypairDoc }) => {
|
|
6
|
-
assert(typeof keypairDoc === 'object', 'invalid keypairDoc');
|
|
7
|
-
assert(keypairDoc.type === 'Ed25519VerificationKey2018', 'invalid type');
|
|
8
|
-
assert(typeof keypairDoc.publicKeyBase58 === 'string', 'publicKeyBase58 is not present');
|
|
9
|
-
},
|
|
10
|
-
getDIDResolution: ({ didDocument }) => {
|
|
11
|
-
assert(typeof didDocument.id === 'string', 'invalid didDocument');
|
|
12
|
-
},
|
|
13
|
-
generateKeyDoc: ({ derivePath, type }) => {
|
|
14
|
-
if (derivePath) {
|
|
15
|
-
assert(typeof derivePath === 'string', 'invalid derivePath');
|
|
16
|
-
}
|
|
17
|
-
if (type) {
|
|
18
|
-
assert(typeof type === 'string', 'invalid type');
|
|
19
|
-
}
|
|
20
|
-
},
|
|
21
|
-
deriveKeyDoc: ({ pair, type }) => {
|
|
22
|
-
assert(typeof pair === 'object', 'invalid pair');
|
|
23
|
-
assert(pair.publicKey instanceof Uint8Array, 'invalid publicKey');
|
|
24
|
-
assert(pair.secretKey instanceof Uint8Array, 'invalid secretKey');
|
|
25
|
-
if (type) {
|
|
26
|
-
assert(typeof type === 'string', 'invalid type');
|
|
27
|
-
}
|
|
28
|
-
},
|
|
29
|
-
};
|
|
30
|
-
|
|
31
|
-
export { serviceName, validation };
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
-
|
|
5
|
-
var services_dids_serviceRpc = require('./service-rpc.js');
|
|
6
|
-
require('../rpc-service-client.js');
|
|
7
|
-
require('assert');
|
|
8
|
-
require('../../rpc-client.js');
|
|
9
|
-
require('json-rpc-2.0');
|
|
10
|
-
require('../../core/crypto.js');
|
|
11
|
-
require('crypto');
|
|
12
|
-
require('../../core/logger.js');
|
|
13
|
-
require('../../logger.js');
|
|
14
|
-
require('../../rpc-util.js');
|
|
15
|
-
require('./config.js');
|
|
16
|
-
|
|
17
|
-
const didServiceRPC = new services_dids_serviceRpc.DIDServiceRPC();
|
|
18
|
-
|
|
19
|
-
exports.didServiceRPC = didServiceRPC;
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { DIDServiceRPC } from './service-rpc.mjs';
|
|
2
|
-
import '../rpc-service-client.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
|
-
import './config.mjs';
|
|
12
|
-
|
|
13
|
-
const didServiceRPC = new DIDServiceRPC();
|
|
14
|
-
|
|
15
|
-
export { didServiceRPC };
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
-
|
|
5
|
-
var services_dids_serviceRpc = require('./service-rpc.js');
|
|
6
|
-
require('../rpc-service-client.js');
|
|
7
|
-
require('assert');
|
|
8
|
-
require('../../rpc-client.js');
|
|
9
|
-
require('json-rpc-2.0');
|
|
10
|
-
require('../../core/crypto.js');
|
|
11
|
-
require('crypto');
|
|
12
|
-
require('../../core/logger.js');
|
|
13
|
-
require('../../logger.js');
|
|
14
|
-
require('../../rpc-util.js');
|
|
15
|
-
require('./config.js');
|
|
16
|
-
|
|
17
|
-
const didServiceRPC = new services_dids_serviceRpc.DIDServiceRPC();
|
|
18
|
-
|
|
19
|
-
exports.didServiceRPC = didServiceRPC;
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { DIDServiceRPC } from './service-rpc.mjs';
|
|
2
|
-
import '../rpc-service-client.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
|
-
import './config.mjs';
|
|
12
|
-
|
|
13
|
-
const didServiceRPC = new DIDServiceRPC();
|
|
14
|
-
|
|
15
|
-
export { didServiceRPC };
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
-
|
|
5
|
-
var services_dids_service = require('./service.js');
|
|
6
|
-
require('@docknetwork/wallet-sdk-dids/lib');
|
|
7
|
-
require('./config.js');
|
|
8
|
-
require('assert');
|
|
9
|
-
require('@docknetwork/credential-sdk/keypairs');
|
|
10
|
-
require('base64url');
|
|
11
|
-
require('../credential/utils.js');
|
|
12
|
-
require('base58-universal');
|
|
13
|
-
require('@docknetwork/credential-sdk/vc/crypto');
|
|
14
|
-
require('@docknetwork/credential-sdk/utils');
|
|
15
|
-
require('@digitalbazaar/x25519-key-agreement-key-2020');
|
|
16
|
-
require('@digitalbazaar/x25519-key-agreement-key-2019');
|
|
17
|
-
require('@digitalbazaar/ed25519-verification-key-2018');
|
|
18
|
-
require('@digitalbazaar/ed25519-verification-key-2020');
|
|
19
|
-
require('./keypair-utils.js');
|
|
20
|
-
|
|
21
|
-
const didServiceRPC = services_dids_service.didService;
|
|
22
|
-
|
|
23
|
-
exports.didServiceRPC = didServiceRPC;
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { didService } from './service.mjs';
|
|
2
|
-
import '@docknetwork/wallet-sdk-dids/lib';
|
|
3
|
-
import './config.mjs';
|
|
4
|
-
import 'assert';
|
|
5
|
-
import '@docknetwork/credential-sdk/keypairs';
|
|
6
|
-
import 'base64url';
|
|
7
|
-
import '../credential/utils.mjs';
|
|
8
|
-
import 'base58-universal';
|
|
9
|
-
import '@docknetwork/credential-sdk/vc/crypto';
|
|
10
|
-
import '@docknetwork/credential-sdk/utils';
|
|
11
|
-
import '@digitalbazaar/x25519-key-agreement-key-2020';
|
|
12
|
-
import '@digitalbazaar/x25519-key-agreement-key-2019';
|
|
13
|
-
import '@digitalbazaar/ed25519-verification-key-2018';
|
|
14
|
-
import '@digitalbazaar/ed25519-verification-key-2020';
|
|
15
|
-
import './keypair-utils.mjs';
|
|
16
|
-
|
|
17
|
-
const didServiceRPC = didService;
|
|
18
|
-
|
|
19
|
-
export { didServiceRPC };
|
|
@@ -1,142 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
-
|
|
5
|
-
var keypairs = require('@docknetwork/credential-sdk/keypairs');
|
|
6
|
-
var utils = require('@docknetwork/credential-sdk/utils');
|
|
7
|
-
var bs58 = require('base58-universal');
|
|
8
|
-
|
|
9
|
-
function _interopNamespace(e) {
|
|
10
|
-
if (e && e.__esModule) return e;
|
|
11
|
-
var n = Object.create(null);
|
|
12
|
-
if (e) {
|
|
13
|
-
Object.keys(e).forEach(function (k) {
|
|
14
|
-
if (k !== 'default') {
|
|
15
|
-
var d = Object.getOwnPropertyDescriptor(e, k);
|
|
16
|
-
Object.defineProperty(n, k, d.get ? d : {
|
|
17
|
-
enumerable: true,
|
|
18
|
-
get: function () { return e[k]; }
|
|
19
|
-
});
|
|
20
|
-
}
|
|
21
|
-
});
|
|
22
|
-
}
|
|
23
|
-
n["default"] = e;
|
|
24
|
-
return Object.freeze(n);
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
var bs58__namespace = /*#__PURE__*/_interopNamespace(bs58);
|
|
28
|
-
|
|
29
|
-
/**
|
|
30
|
-
* This code is based on the implementation from truvera api
|
|
31
|
-
* https://github.com/docknetwork/web/blob/3c706c5dc5de4ae63f548c76ec6edeb17533a0c9/apps/api/src/utils/key-manager.js
|
|
32
|
-
*/
|
|
33
|
-
|
|
34
|
-
function getKeyPairType(key) {
|
|
35
|
-
const keyType = key.type || key.constructor.VerKeyType;
|
|
36
|
-
if (keyType) {
|
|
37
|
-
return keyType;
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
if (key instanceof keypairs.Ed25519Keypair) {
|
|
41
|
-
return 'Ed25519VerificationKey2018';
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
throw new Error(`Unknown key type for ${key.constructor.name}`);
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
const MULTIBASE_BASE58BTC_HEADER = 'z';
|
|
48
|
-
const MULTICODEC_ED25519_PUB_HEADER = new Uint8Array([0xed, 0x01]);
|
|
49
|
-
const MULTICODEC_ED25519_PRIV_HEADER = new Uint8Array([0x80, 0x26]);
|
|
50
|
-
|
|
51
|
-
function encodeMbKey(header, key) {
|
|
52
|
-
const mbKey = new Uint8Array(header.length + key.length);
|
|
53
|
-
mbKey.set(header);
|
|
54
|
-
mbKey.set(key, header.length);
|
|
55
|
-
return MULTIBASE_BASE58BTC_HEADER + bs58__namespace.encode(mbKey);
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
function getKeyFingerprint(keyType, publicKey) {
|
|
59
|
-
if (keyType.startsWith('Ed25519')) {
|
|
60
|
-
return encodeMbKey(MULTICODEC_ED25519_PUB_HEADER, publicKey);
|
|
61
|
-
} else {
|
|
62
|
-
throw new Error(`Cannot detect key type for fingerprint: ${keyType}`);
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
const keyTypeToDocType = {
|
|
67
|
-
bjj: 'BJJVerificationKey2021',
|
|
68
|
-
secp256k1: 'EcdsaSecp256k1VerificationKey2019',
|
|
69
|
-
};
|
|
70
|
-
|
|
71
|
-
function keypairToKeydoc(key, controller, id = undefined) {
|
|
72
|
-
const keyType = getKeyPairType(key);
|
|
73
|
-
let keyDoc;
|
|
74
|
-
if (
|
|
75
|
-
keyType === 'Ed25519VerificationKey2020' ||
|
|
76
|
-
keyType === 'Ed25519VerificationKey2018'
|
|
77
|
-
) {
|
|
78
|
-
const publicKey = utils.u8aToU8a(
|
|
79
|
-
(key.keyPair &&
|
|
80
|
-
key.keyPair.publicKey &&
|
|
81
|
-
utils.u8aToU8a(key.keyPair.publicKey)) ||
|
|
82
|
-
key.publicKeyBuffer ||
|
|
83
|
-
(key.pk && key.pk.value),
|
|
84
|
-
);
|
|
85
|
-
|
|
86
|
-
if (!publicKey) {
|
|
87
|
-
throw new Error('Cannot find public key');
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
const pk = utils.u8aToU8a(
|
|
91
|
-
(key.keyPair && key.keyPair.secretKey) ||
|
|
92
|
-
key.privateKeyBuffer ||
|
|
93
|
-
(key.sk &&
|
|
94
|
-
(typeof key.sk === 'string'
|
|
95
|
-
? utils.hexToU8a(key.sk)
|
|
96
|
-
: key.sk.value || key.sk)) ||
|
|
97
|
-
utils.hexToU8a(key.pk),
|
|
98
|
-
);
|
|
99
|
-
|
|
100
|
-
const publicKeyBase58 = bs58__namespace.encode(publicKey);
|
|
101
|
-
const privateKeyBase58 = bs58__namespace.encode(pk);
|
|
102
|
-
|
|
103
|
-
const fingerprint =
|
|
104
|
-
(key.fingerprint && key.fingerprint()) ||
|
|
105
|
-
getKeyFingerprint(keyType, publicKey);
|
|
106
|
-
|
|
107
|
-
// auto create controller
|
|
108
|
-
if (!controller) {
|
|
109
|
-
controller = `did:key:${fingerprint}`;
|
|
110
|
-
id = id || key.id || `${controller}#${fingerprint}`;
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
const keyId = id || key.id || `${controller}#${fingerprint}`;
|
|
114
|
-
const type = keyTypeToDocType[keyType] || keyType;
|
|
115
|
-
keyDoc = {
|
|
116
|
-
controller,
|
|
117
|
-
type,
|
|
118
|
-
id: keyId,
|
|
119
|
-
publicKeyMultibase: encodeMbKey(MULTICODEC_ED25519_PUB_HEADER, publicKey),
|
|
120
|
-
privateKeyMultibase: encodeMbKey(MULTICODEC_ED25519_PRIV_HEADER, pk),
|
|
121
|
-
privateKeyBase58,
|
|
122
|
-
publicKeyBase58,
|
|
123
|
-
};
|
|
124
|
-
|
|
125
|
-
if (key.seed) {
|
|
126
|
-
keyDoc.seed = utils.u8aToHex(key.seed);
|
|
127
|
-
}
|
|
128
|
-
} else {
|
|
129
|
-
throw new Error(`Unknown keypairToKeydoc type: ${keyType}`);
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
keyDoc['@context'] = ['https://w3id.org/wallet/v1'];
|
|
133
|
-
|
|
134
|
-
return keyDoc;
|
|
135
|
-
}
|
|
136
|
-
|
|
137
|
-
exports.MULTIBASE_BASE58BTC_HEADER = MULTIBASE_BASE58BTC_HEADER;
|
|
138
|
-
exports.MULTICODEC_ED25519_PRIV_HEADER = MULTICODEC_ED25519_PRIV_HEADER;
|
|
139
|
-
exports.MULTICODEC_ED25519_PUB_HEADER = MULTICODEC_ED25519_PUB_HEADER;
|
|
140
|
-
exports.encodeMbKey = encodeMbKey;
|
|
141
|
-
exports.getKeyPairType = getKeyPairType;
|
|
142
|
-
exports.keypairToKeydoc = keypairToKeydoc;
|
|
@@ -1,113 +0,0 @@
|
|
|
1
|
-
import { Ed25519Keypair } from '@docknetwork/credential-sdk/keypairs';
|
|
2
|
-
import { u8aToU8a, hexToU8a, u8aToHex } from '@docknetwork/credential-sdk/utils';
|
|
3
|
-
import * as bs58 from 'base58-universal';
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* This code is based on the implementation from truvera api
|
|
7
|
-
* https://github.com/docknetwork/web/blob/3c706c5dc5de4ae63f548c76ec6edeb17533a0c9/apps/api/src/utils/key-manager.js
|
|
8
|
-
*/
|
|
9
|
-
|
|
10
|
-
function getKeyPairType(key) {
|
|
11
|
-
const keyType = key.type || key.constructor.VerKeyType;
|
|
12
|
-
if (keyType) {
|
|
13
|
-
return keyType;
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
if (key instanceof Ed25519Keypair) {
|
|
17
|
-
return 'Ed25519VerificationKey2018';
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
throw new Error(`Unknown key type for ${key.constructor.name}`);
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
const MULTIBASE_BASE58BTC_HEADER = 'z';
|
|
24
|
-
const MULTICODEC_ED25519_PUB_HEADER = new Uint8Array([0xed, 0x01]);
|
|
25
|
-
const MULTICODEC_ED25519_PRIV_HEADER = new Uint8Array([0x80, 0x26]);
|
|
26
|
-
|
|
27
|
-
function encodeMbKey(header, key) {
|
|
28
|
-
const mbKey = new Uint8Array(header.length + key.length);
|
|
29
|
-
mbKey.set(header);
|
|
30
|
-
mbKey.set(key, header.length);
|
|
31
|
-
return MULTIBASE_BASE58BTC_HEADER + bs58.encode(mbKey);
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
function getKeyFingerprint(keyType, publicKey) {
|
|
35
|
-
if (keyType.startsWith('Ed25519')) {
|
|
36
|
-
return encodeMbKey(MULTICODEC_ED25519_PUB_HEADER, publicKey);
|
|
37
|
-
} else {
|
|
38
|
-
throw new Error(`Cannot detect key type for fingerprint: ${keyType}`);
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
const keyTypeToDocType = {
|
|
43
|
-
bjj: 'BJJVerificationKey2021',
|
|
44
|
-
secp256k1: 'EcdsaSecp256k1VerificationKey2019',
|
|
45
|
-
};
|
|
46
|
-
|
|
47
|
-
function keypairToKeydoc(key, controller, id = undefined) {
|
|
48
|
-
const keyType = getKeyPairType(key);
|
|
49
|
-
let keyDoc;
|
|
50
|
-
if (
|
|
51
|
-
keyType === 'Ed25519VerificationKey2020' ||
|
|
52
|
-
keyType === 'Ed25519VerificationKey2018'
|
|
53
|
-
) {
|
|
54
|
-
const publicKey = u8aToU8a(
|
|
55
|
-
(key.keyPair &&
|
|
56
|
-
key.keyPair.publicKey &&
|
|
57
|
-
u8aToU8a(key.keyPair.publicKey)) ||
|
|
58
|
-
key.publicKeyBuffer ||
|
|
59
|
-
(key.pk && key.pk.value),
|
|
60
|
-
);
|
|
61
|
-
|
|
62
|
-
if (!publicKey) {
|
|
63
|
-
throw new Error('Cannot find public key');
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
const pk = u8aToU8a(
|
|
67
|
-
(key.keyPair && key.keyPair.secretKey) ||
|
|
68
|
-
key.privateKeyBuffer ||
|
|
69
|
-
(key.sk &&
|
|
70
|
-
(typeof key.sk === 'string'
|
|
71
|
-
? hexToU8a(key.sk)
|
|
72
|
-
: key.sk.value || key.sk)) ||
|
|
73
|
-
hexToU8a(key.pk),
|
|
74
|
-
);
|
|
75
|
-
|
|
76
|
-
const publicKeyBase58 = bs58.encode(publicKey);
|
|
77
|
-
const privateKeyBase58 = bs58.encode(pk);
|
|
78
|
-
|
|
79
|
-
const fingerprint =
|
|
80
|
-
(key.fingerprint && key.fingerprint()) ||
|
|
81
|
-
getKeyFingerprint(keyType, publicKey);
|
|
82
|
-
|
|
83
|
-
// auto create controller
|
|
84
|
-
if (!controller) {
|
|
85
|
-
controller = `did:key:${fingerprint}`;
|
|
86
|
-
id = id || key.id || `${controller}#${fingerprint}`;
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
const keyId = id || key.id || `${controller}#${fingerprint}`;
|
|
90
|
-
const type = keyTypeToDocType[keyType] || keyType;
|
|
91
|
-
keyDoc = {
|
|
92
|
-
controller,
|
|
93
|
-
type,
|
|
94
|
-
id: keyId,
|
|
95
|
-
publicKeyMultibase: encodeMbKey(MULTICODEC_ED25519_PUB_HEADER, publicKey),
|
|
96
|
-
privateKeyMultibase: encodeMbKey(MULTICODEC_ED25519_PRIV_HEADER, pk),
|
|
97
|
-
privateKeyBase58,
|
|
98
|
-
publicKeyBase58,
|
|
99
|
-
};
|
|
100
|
-
|
|
101
|
-
if (key.seed) {
|
|
102
|
-
keyDoc.seed = u8aToHex(key.seed);
|
|
103
|
-
}
|
|
104
|
-
} else {
|
|
105
|
-
throw new Error(`Unknown keypairToKeydoc type: ${keyType}`);
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
keyDoc['@context'] = ['https://w3id.org/wallet/v1'];
|
|
109
|
-
|
|
110
|
-
return keyDoc;
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
export { MULTIBASE_BASE58BTC_HEADER, MULTICODEC_ED25519_PRIV_HEADER, MULTICODEC_ED25519_PUB_HEADER, encodeMbKey, getKeyPairType, keypairToKeydoc };
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
-
|
|
5
|
-
var services_rpcServiceClient = require('../rpc-service-client.js');
|
|
6
|
-
var services_dids_config = require('./config.js');
|
|
7
|
-
require('assert');
|
|
8
|
-
require('../../rpc-client.js');
|
|
9
|
-
require('json-rpc-2.0');
|
|
10
|
-
require('../../core/crypto.js');
|
|
11
|
-
require('crypto');
|
|
12
|
-
require('../../core/logger.js');
|
|
13
|
-
require('../../logger.js');
|
|
14
|
-
require('../../rpc-util.js');
|
|
15
|
-
|
|
16
|
-
class DIDServiceRPC extends services_rpcServiceClient.RpcService {
|
|
17
|
-
constructor() {
|
|
18
|
-
super(services_dids_config.serviceName);
|
|
19
|
-
}
|
|
20
|
-
keypairToDIDKeyDocument(params) {
|
|
21
|
-
return this.call('keypairToDIDKeyDocument', params);
|
|
22
|
-
}
|
|
23
|
-
getDIDResolution(params) {
|
|
24
|
-
return this.call('getDIDResolution', params);
|
|
25
|
-
}
|
|
26
|
-
generateKeyDoc(params) {
|
|
27
|
-
return this.call('generateKeyDoc', params);
|
|
28
|
-
}
|
|
29
|
-
deriveKeyDoc(params) {
|
|
30
|
-
return this.call('deriveKeyDoc', params);
|
|
31
|
-
}
|
|
32
|
-
createSignedJWT(params) {
|
|
33
|
-
return this.call('createSignedJWT', params);
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
exports.DIDServiceRPC = DIDServiceRPC;
|