@sphereon/ssi-sdk-ext.did-provider-key 0.28.1-feature.esm.cjs.8 → 0.28.1-feature.esm.cjs.9
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/dist/index.cjs +30 -61
- package/dist/index.cjs.map +1 -1
- package/package.json +6 -6
package/dist/index.cjs
CHANGED
|
@@ -1,50 +1,15 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __create = Object.create;
|
|
3
|
-
var __defProp = Object.defineProperty;
|
|
4
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
-
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }var __defProp = Object.defineProperty;
|
|
8
2
|
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
9
|
-
var __export = (target, all) => {
|
|
10
|
-
for (var name in all)
|
|
11
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
12
|
-
};
|
|
13
|
-
var __copyProps = (to, from, except, desc) => {
|
|
14
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
15
|
-
for (let key of __getOwnPropNames(from))
|
|
16
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
17
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
18
|
-
}
|
|
19
|
-
return to;
|
|
20
|
-
};
|
|
21
|
-
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
22
|
-
// If the importer is in node compatibility mode or this is not an ESM
|
|
23
|
-
// file that has been converted to a CommonJS file using a Babel-
|
|
24
|
-
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
25
|
-
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
26
|
-
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
27
|
-
mod
|
|
28
|
-
));
|
|
29
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
30
|
-
|
|
31
|
-
// src/index.ts
|
|
32
|
-
var index_exports = {};
|
|
33
|
-
__export(index_exports, {
|
|
34
|
-
SphereonKeyDidProvider: () => SphereonKeyDidProvider,
|
|
35
|
-
getDidKeyResolver: () => getDidKeyResolver
|
|
36
|
-
});
|
|
37
|
-
module.exports = __toCommonJS(index_exports);
|
|
38
3
|
|
|
39
4
|
// src/SphereonKeyDidProvider.ts
|
|
40
|
-
var
|
|
41
|
-
var
|
|
42
|
-
var
|
|
43
|
-
var
|
|
44
|
-
var
|
|
45
|
-
var
|
|
46
|
-
var
|
|
47
|
-
var debug = (0,
|
|
5
|
+
var _ssisdkextkeyutils = require('@sphereon/ssi-sdk-ext.key-utils');
|
|
6
|
+
var _didmanager = require('@veramo/did-manager');
|
|
7
|
+
var _debug = require('debug'); var _debug2 = _interopRequireDefault(_debug);
|
|
8
|
+
var _multibase = require('multibase'); var _multibase2 = _interopRequireDefault(_multibase);
|
|
9
|
+
var _multicodec = require('multicodec'); var _multicodec2 = _interopRequireDefault(_multicodec);
|
|
10
|
+
var _fromstring = require('uint8arrays/from-string');
|
|
11
|
+
var _tostring = require('uint8arrays/to-string');
|
|
12
|
+
var debug = _debug2.default.call(void 0, "did-provider-key");
|
|
48
13
|
var keyCodecs = {
|
|
49
14
|
RSA: "rsa-pub",
|
|
50
15
|
Ed25519: "ed25519-pub",
|
|
@@ -54,21 +19,21 @@ var keyCodecs = {
|
|
|
54
19
|
Bls12381G1: "bls12_381-g1-pub",
|
|
55
20
|
Bls12381G2: "bls12_381-g2-pub"
|
|
56
21
|
};
|
|
57
|
-
var SphereonKeyDidProvider = class extends
|
|
22
|
+
var SphereonKeyDidProvider = class extends _didmanager.AbstractIdentifierProvider {
|
|
58
23
|
static {
|
|
59
24
|
__name(this, "SphereonKeyDidProvider");
|
|
60
25
|
}
|
|
61
|
-
|
|
26
|
+
|
|
62
27
|
constructor(options) {
|
|
63
28
|
super();
|
|
64
29
|
this.kms = options.defaultKms;
|
|
65
30
|
}
|
|
66
31
|
async createIdentifier({ kms, alias, options }, context) {
|
|
67
|
-
let codecName = options
|
|
68
|
-
const keyType = options
|
|
69
|
-
const key = await (0,
|
|
32
|
+
let codecName = _optionalChain([options, 'optionalAccess', _ => _.codecName, 'optionalAccess', _2 => _2.toUpperCase, 'call', _3 => _3()]) === "EBSI" ? _ssisdkextkeyutils.JWK_JCS_PUB_NAME : _optionalChain([options, 'optionalAccess', _4 => _4.codecName]);
|
|
33
|
+
const keyType = _nullishCoalesce(_nullishCoalesce(_optionalChain([options, 'optionalAccess', _5 => _5.type]), () => ( _optionalChain([options, 'optionalAccess', _6 => _6.key, 'optionalAccess', _7 => _7.type]))), () => ( (codecName === _ssisdkextkeyutils.JWK_JCS_PUB_NAME ? "Secp256r1" : "Secp256k1")));
|
|
34
|
+
const key = await _ssisdkextkeyutils.importProvidedOrGeneratedKey.call(void 0, {
|
|
70
35
|
// @ts-ignore
|
|
71
|
-
kms: kms
|
|
36
|
+
kms: _nullishCoalesce(kms, () => ( this.kms)),
|
|
72
37
|
alias,
|
|
73
38
|
options: {
|
|
74
39
|
...options,
|
|
@@ -76,20 +41,20 @@ var SphereonKeyDidProvider = class extends import_did_manager.AbstractIdentifier
|
|
|
76
41
|
}
|
|
77
42
|
}, context);
|
|
78
43
|
let methodSpecificId;
|
|
79
|
-
const compressedPublicKeyHex = (0,
|
|
80
|
-
if (codecName ===
|
|
81
|
-
const jwk = (0,
|
|
82
|
-
use:
|
|
44
|
+
const compressedPublicKeyHex = _ssisdkextkeyutils.toRawCompressedHexPublicKey.call(void 0, _fromstring.fromString.call(void 0, key.publicKeyHex, "hex"), key.type);
|
|
45
|
+
if (codecName === _ssisdkextkeyutils.JWK_JCS_PUB_NAME) {
|
|
46
|
+
const jwk = _ssisdkextkeyutils.toJwk.call(void 0, key.publicKeyHex, keyType, {
|
|
47
|
+
use: _ssisdkextkeyutils.JwkKeyUse.Signature,
|
|
83
48
|
key,
|
|
84
49
|
noKidThumbprint: true
|
|
85
50
|
});
|
|
86
|
-
methodSpecificId = (0,
|
|
51
|
+
methodSpecificId = _tostring.toString.call(void 0, _multibase2.default.encode("base58btc", _multicodec2.default.addPrefix(_fromstring.fromString.call(void 0, _ssisdkextkeyutils.JWK_JCS_PUB_PREFIX.valueOf().toString(16), "hex"), _ssisdkextkeyutils.jwkJcsEncode.call(void 0, jwk))));
|
|
87
52
|
} else if (codecName) {
|
|
88
|
-
methodSpecificId = (0,
|
|
53
|
+
methodSpecificId = _tostring.toString.call(void 0, _multibase2.default.encode("base58btc", _multicodec2.default.addPrefix(codecName, _fromstring.fromString.call(void 0, compressedPublicKeyHex, "hex"))));
|
|
89
54
|
} else {
|
|
90
55
|
codecName = keyCodecs[keyType];
|
|
91
56
|
if (codecName) {
|
|
92
|
-
methodSpecificId = (0,
|
|
57
|
+
methodSpecificId = _tostring.toString.call(void 0, _multibase2.default.encode("base58btc", _multicodec2.default.addPrefix(codecName, _fromstring.fromString.call(void 0, compressedPublicKeyHex, "hex")))).toString();
|
|
93
58
|
}
|
|
94
59
|
}
|
|
95
60
|
if (!methodSpecificId) {
|
|
@@ -132,11 +97,11 @@ var SphereonKeyDidProvider = class extends import_did_manager.AbstractIdentifier
|
|
|
132
97
|
};
|
|
133
98
|
|
|
134
99
|
// src/KeyDidResolver.ts
|
|
135
|
-
var
|
|
136
|
-
var
|
|
100
|
+
var _didresolver = require('did-resolver');
|
|
101
|
+
var _ssisdkextdidresolverkey = require('@sphereon/ssi-sdk-ext.did-resolver-key');
|
|
137
102
|
var resolveDidKey = /* @__PURE__ */ __name(async (didUrl, _parsed, _resolver, options) => {
|
|
138
|
-
const resolver = new
|
|
139
|
-
...(0,
|
|
103
|
+
const resolver = new (0, _didresolver.Resolver)({
|
|
104
|
+
..._ssisdkextdidresolverkey.getResolver.call(void 0, )
|
|
140
105
|
});
|
|
141
106
|
return resolver.resolve(didUrl, options);
|
|
142
107
|
}, "resolveDidKey");
|
|
@@ -146,4 +111,8 @@ function getDidKeyResolver() {
|
|
|
146
111
|
};
|
|
147
112
|
}
|
|
148
113
|
__name(getDidKeyResolver, "getDidKeyResolver");
|
|
114
|
+
|
|
115
|
+
|
|
116
|
+
|
|
117
|
+
exports.SphereonKeyDidProvider = SphereonKeyDidProvider; exports.getDidKeyResolver = getDidKeyResolver;
|
|
149
118
|
//# sourceMappingURL=index.cjs.map
|
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts","../src/SphereonKeyDidProvider.ts","../src/KeyDidResolver.ts"],"sourcesContent":["export { SphereonKeyDidProvider } from './SphereonKeyDidProvider'\nexport { getDidKeyResolver } from './KeyDidResolver'\n","import {\n importProvidedOrGeneratedKey,\n JWK_JCS_PUB_NAME,\n JWK_JCS_PUB_PREFIX,\n jwkJcsEncode,\n JwkKeyUse,\n TKeyType,\n toJwk,\n toRawCompressedHexPublicKey,\n} from '@sphereon/ssi-sdk-ext.key-utils'\nimport { IAgentContext, IIdentifier, IKey, IKeyManager, IService } from '@veramo/core'\nimport { AbstractIdentifierProvider } from '@veramo/did-manager'\nimport Debug from 'debug'\nimport Multibase from 'multibase'\nimport Multicodec from 'multicodec'\n// @ts-ignore\nimport { fromString } from 'uint8arrays/from-string'\n// @ts-ignore\nimport { toString } from 'uint8arrays/to-string'\n\nconst debug = Debug('did-provider-key')\n\ntype IContext = IAgentContext<IKeyManager>\n\nconst keyCodecs = {\n RSA: 'rsa-pub',\n Ed25519: 'ed25519-pub',\n X25519: 'x25519-pub',\n Secp256k1: 'secp256k1-pub',\n Secp256r1: 'p256-pub',\n Bls12381G1: 'bls12_381-g1-pub',\n Bls12381G2: 'bls12_381-g2-pub',\n} as const\n\nexport class SphereonKeyDidProvider extends AbstractIdentifierProvider {\n private readonly kms?: string\n\n constructor(options: { defaultKms?: string }) {\n super()\n this.kms = options.defaultKms\n }\n\n async createIdentifier(\n {\n kms,\n alias,\n options,\n }: {\n kms?: string\n alias?: string\n options?: {\n type?: TKeyType\n codecName?: 'EBSI' | 'jwk_jcs-pub' | Multicodec.CodecName\n key?: {\n type?: Exclude<TKeyType, 'Secp384r1' | 'Secp521r1'>\n privateKeyHex: string\n }\n }\n },\n context: IContext\n ): Promise<Omit<IIdentifier, 'provider'>> {\n let codecName = (options?.codecName?.toUpperCase() === 'EBSI' ? (JWK_JCS_PUB_NAME as Multicodec.CodecName) : options?.codecName) as\n | CodeNameType\n | undefined\n const keyType = (options?.type ?? options?.key?.type ?? (codecName === JWK_JCS_PUB_NAME ? 'Secp256r1' : 'Secp256k1')) as Exclude<\n TKeyType,\n 'Secp384r1' | 'Secp521r1'\n >\n // console.log(`keytype: ${keyType}, codecName: ${codecName}`)\n\n const key = await importProvidedOrGeneratedKey(\n {\n // @ts-ignore\n kms: kms ?? this.kms,\n alias: alias,\n options: { ...options, type: keyType },\n },\n context\n )\n\n let methodSpecificId: string | undefined\n\n // did:key uses compressed pub keys\n const compressedPublicKeyHex = toRawCompressedHexPublicKey(fromString(key.publicKeyHex, 'hex'), key.type)\n if (codecName === JWK_JCS_PUB_NAME) {\n const jwk = toJwk(key.publicKeyHex, keyType, { use: JwkKeyUse.Signature, key, noKidThumbprint: true })\n // console.log(`FIXME JWK: ${JSON.stringify(toJwk(privateKeyHex, keyType, { use: JwkKeyUse.Signature, key, isPrivateKey: true }), null, 2)}`)\n methodSpecificId = toString(\n Multibase.encode('base58btc', Multicodec.addPrefix(fromString(JWK_JCS_PUB_PREFIX.valueOf().toString(16), 'hex'), jwkJcsEncode(jwk)))\n )\n } else if (codecName) {\n methodSpecificId = toString(\n Multibase.encode('base58btc', Multicodec.addPrefix(codecName as Multicodec.CodecName, fromString(compressedPublicKeyHex, 'hex')))\n )\n } else {\n codecName = keyCodecs[keyType]\n\n if (codecName) {\n // methodSpecificId = bytesToMultibase({bytes: u8a.fromString(key.publicKeyHex, 'hex'), codecName})\n methodSpecificId = toString(\n Multibase.encode('base58btc', Multicodec.addPrefix(codecName as Multicodec.CodecName, fromString(compressedPublicKeyHex, 'hex')))\n ).toString()\n }\n }\n if (!methodSpecificId) {\n throw Error(`Key type ${keyType}, codec ${codecName} is not supported currently for did:key`)\n }\n const identifier: Omit<IIdentifier, 'provider'> = {\n did: `did:key:${methodSpecificId}`,\n controllerKeyId: key.kid,\n keys: [key],\n services: [],\n }\n debug('Created', identifier.did)\n return identifier\n }\n\n async updateIdentifier(\n args: { did: string; kms?: string | undefined; alias?: string | undefined; options?: any },\n context: IAgentContext<IKeyManager>\n ): Promise<IIdentifier> {\n throw new Error('KeyDIDProvider updateIdentifier not supported yet.')\n }\n\n async deleteIdentifier(identifier: IIdentifier, context: IContext): Promise<boolean> {\n for (const { kid } of identifier.keys) {\n await context.agent.keyManagerDelete({ kid })\n }\n return true\n }\n\n async addKey({ identifier, key, options }: { identifier: IIdentifier; key: IKey; options?: any }, context: IContext): Promise<any> {\n throw Error('KeyDIDProvider addKey not supported')\n }\n\n async addService({ identifier, service, options }: { identifier: IIdentifier; service: IService; options?: any }, context: IContext): Promise<any> {\n throw Error('KeyDIDProvider addService not supported')\n }\n\n async removeKey(args: { identifier: IIdentifier; kid: string; options?: any }, context: IContext): Promise<any> {\n throw Error('KeyDIDProvider removeKey not supported')\n }\n\n async removeService(args: { identifier: IIdentifier; id: string; options?: any }, context: IContext): Promise<any> {\n throw Error('KeyDIDProvider removeService not supported')\n }\n}\n\ntype CodeNameType = Multicodec.CodecName | 'rsa-pub' | 'jwk_jcs-pub'\n","import { DIDResolutionOptions, DIDResolutionResult, DIDResolver, ParsedDID, Resolvable, Resolver } from 'did-resolver'\nimport { getResolver } from '@sphereon/ssi-sdk-ext.did-resolver-key'\n\nconst resolveDidKey: DIDResolver = async (\n didUrl: string,\n _parsed: ParsedDID,\n _resolver: Resolvable,\n options: DIDResolutionOptions\n): Promise<DIDResolutionResult> => {\n const resolver = new Resolver({ ...getResolver() })\n return resolver.resolve(didUrl, options)\n}\n\nexport function getDidKeyResolver() {\n return { key: resolveDidKey }\n}\n"],"mappings":"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","names":["debug","Debug","keyCodecs","RSA","Ed25519","X25519","Secp256k1","Secp256r1","Bls12381G1","Bls12381G2","SphereonKeyDidProvider","AbstractIdentifierProvider","kms","constructor","options","defaultKms","createIdentifier","alias","context","codecName","toUpperCase","JWK_JCS_PUB_NAME","keyType","type","key","importProvidedOrGeneratedKey","methodSpecificId","compressedPublicKeyHex","toRawCompressedHexPublicKey","fromString","publicKeyHex","jwk","toJwk","use","JwkKeyUse","Signature","noKidThumbprint","toString","Multibase","encode","Multicodec","addPrefix","JWK_JCS_PUB_PREFIX","valueOf","jwkJcsEncode","Error","identifier","did","controllerKeyId","kid","keys","services","updateIdentifier","args","deleteIdentifier","agent","keyManagerDelete","addKey","addService","service","removeKey","removeService","import_ssi_sdk_ext","resolveDidKey","didUrl","_parsed","_resolver","options","resolver","Resolver","getResolver","resolve","getDidKeyResolver","key"]}
|
|
1
|
+
{"version":3,"sources":["/home/runner/work/SSI-SDK-crypto-extensions/SSI-SDK-crypto-extensions/packages/did-provider-key/dist/index.cjs","../src/SphereonKeyDidProvider.ts","../src/KeyDidResolver.ts"],"names":["debug","Debug","keyCodecs","RSA","Ed25519","X25519","Secp256k1","Secp256r1","Bls12381G1","Bls12381G2","SphereonKeyDidProvider","AbstractIdentifierProvider","kms","constructor","options","defaultKms","createIdentifier","alias","context","codecName","toUpperCase","JWK_JCS_PUB_NAME","keyType","type","key","importProvidedOrGeneratedKey","methodSpecificId","compressedPublicKeyHex","toRawCompressedHexPublicKey","fromString","publicKeyHex","jwk","toJwk","use","JwkKeyUse","Signature","noKidThumbprint","toString","Multibase","encode","Multicodec","addPrefix","JWK_JCS_PUB_PREFIX","valueOf","jwkJcsEncode","Error","identifier","did","kid","keys","keyManagerDelete","service","getResolver","getDidKeyResolver","resolveDidKey"],"mappings":"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","file":"/home/runner/work/SSI-SDK-crypto-extensions/SSI-SDK-crypto-extensions/packages/did-provider-key/dist/index.cjs","sourcesContent":[null,"import {\n importProvidedOrGeneratedKey,\n JWK_JCS_PUB_NAME,\n JWK_JCS_PUB_PREFIX,\n jwkJcsEncode,\n JwkKeyUse,\n TKeyType,\n toJwk,\n toRawCompressedHexPublicKey,\n} from '@sphereon/ssi-sdk-ext.key-utils'\nimport { IAgentContext, IIdentifier, IKey, IKeyManager, IService } from '@veramo/core'\nimport { AbstractIdentifierProvider } from '@veramo/did-manager'\nimport Debug from 'debug'\nimport Multibase from 'multibase'\nimport Multicodec from 'multicodec'\n// @ts-ignore\nimport { fromString } from 'uint8arrays/from-string'\n// @ts-ignore\nimport { toString } from 'uint8arrays/to-string'\n\nconst debug = Debug('did-provider-key')\n\ntype IContext = IAgentContext<IKeyManager>\n\nconst keyCodecs = {\n RSA: 'rsa-pub',\n Ed25519: 'ed25519-pub',\n X25519: 'x25519-pub',\n Secp256k1: 'secp256k1-pub',\n Secp256r1: 'p256-pub',\n Bls12381G1: 'bls12_381-g1-pub',\n Bls12381G2: 'bls12_381-g2-pub',\n} as const\n\nexport class SphereonKeyDidProvider extends AbstractIdentifierProvider {\n private readonly kms?: string\n\n constructor(options: { defaultKms?: string }) {\n super()\n this.kms = options.defaultKms\n }\n\n async createIdentifier(\n {\n kms,\n alias,\n options,\n }: {\n kms?: string\n alias?: string\n options?: {\n type?: TKeyType\n codecName?: 'EBSI' | 'jwk_jcs-pub' | Multicodec.CodecName\n key?: {\n type?: Exclude<TKeyType, 'Secp384r1' | 'Secp521r1'>\n privateKeyHex: string\n }\n }\n },\n context: IContext\n ): Promise<Omit<IIdentifier, 'provider'>> {\n let codecName = (options?.codecName?.toUpperCase() === 'EBSI' ? (JWK_JCS_PUB_NAME as Multicodec.CodecName) : options?.codecName) as\n | CodeNameType\n | undefined\n const keyType = (options?.type ?? options?.key?.type ?? (codecName === JWK_JCS_PUB_NAME ? 'Secp256r1' : 'Secp256k1')) as Exclude<\n TKeyType,\n 'Secp384r1' | 'Secp521r1'\n >\n // console.log(`keytype: ${keyType}, codecName: ${codecName}`)\n\n const key = await importProvidedOrGeneratedKey(\n {\n // @ts-ignore\n kms: kms ?? this.kms,\n alias: alias,\n options: { ...options, type: keyType },\n },\n context\n )\n\n let methodSpecificId: string | undefined\n\n // did:key uses compressed pub keys\n const compressedPublicKeyHex = toRawCompressedHexPublicKey(fromString(key.publicKeyHex, 'hex'), key.type)\n if (codecName === JWK_JCS_PUB_NAME) {\n const jwk = toJwk(key.publicKeyHex, keyType, { use: JwkKeyUse.Signature, key, noKidThumbprint: true })\n // console.log(`FIXME JWK: ${JSON.stringify(toJwk(privateKeyHex, keyType, { use: JwkKeyUse.Signature, key, isPrivateKey: true }), null, 2)}`)\n methodSpecificId = toString(\n Multibase.encode('base58btc', Multicodec.addPrefix(fromString(JWK_JCS_PUB_PREFIX.valueOf().toString(16), 'hex'), jwkJcsEncode(jwk)))\n )\n } else if (codecName) {\n methodSpecificId = toString(\n Multibase.encode('base58btc', Multicodec.addPrefix(codecName as Multicodec.CodecName, fromString(compressedPublicKeyHex, 'hex')))\n )\n } else {\n codecName = keyCodecs[keyType]\n\n if (codecName) {\n // methodSpecificId = bytesToMultibase({bytes: u8a.fromString(key.publicKeyHex, 'hex'), codecName})\n methodSpecificId = toString(\n Multibase.encode('base58btc', Multicodec.addPrefix(codecName as Multicodec.CodecName, fromString(compressedPublicKeyHex, 'hex')))\n ).toString()\n }\n }\n if (!methodSpecificId) {\n throw Error(`Key type ${keyType}, codec ${codecName} is not supported currently for did:key`)\n }\n const identifier: Omit<IIdentifier, 'provider'> = {\n did: `did:key:${methodSpecificId}`,\n controllerKeyId: key.kid,\n keys: [key],\n services: [],\n }\n debug('Created', identifier.did)\n return identifier\n }\n\n async updateIdentifier(\n args: { did: string; kms?: string | undefined; alias?: string | undefined; options?: any },\n context: IAgentContext<IKeyManager>\n ): Promise<IIdentifier> {\n throw new Error('KeyDIDProvider updateIdentifier not supported yet.')\n }\n\n async deleteIdentifier(identifier: IIdentifier, context: IContext): Promise<boolean> {\n for (const { kid } of identifier.keys) {\n await context.agent.keyManagerDelete({ kid })\n }\n return true\n }\n\n async addKey({ identifier, key, options }: { identifier: IIdentifier; key: IKey; options?: any }, context: IContext): Promise<any> {\n throw Error('KeyDIDProvider addKey not supported')\n }\n\n async addService({ identifier, service, options }: { identifier: IIdentifier; service: IService; options?: any }, context: IContext): Promise<any> {\n throw Error('KeyDIDProvider addService not supported')\n }\n\n async removeKey(args: { identifier: IIdentifier; kid: string; options?: any }, context: IContext): Promise<any> {\n throw Error('KeyDIDProvider removeKey not supported')\n }\n\n async removeService(args: { identifier: IIdentifier; id: string; options?: any }, context: IContext): Promise<any> {\n throw Error('KeyDIDProvider removeService not supported')\n }\n}\n\ntype CodeNameType = Multicodec.CodecName | 'rsa-pub' | 'jwk_jcs-pub'\n","import { DIDResolutionOptions, DIDResolutionResult, DIDResolver, ParsedDID, Resolvable, Resolver } from 'did-resolver'\nimport { getResolver } from '@sphereon/ssi-sdk-ext.did-resolver-key'\n\nconst resolveDidKey: DIDResolver = async (\n didUrl: string,\n _parsed: ParsedDID,\n _resolver: Resolvable,\n options: DIDResolutionOptions\n): Promise<DIDResolutionResult> => {\n const resolver = new Resolver({ ...getResolver() })\n return resolver.resolve(didUrl, options)\n}\n\nexport function getDidKeyResolver() {\n return { key: resolveDidKey }\n}\n"]}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sphereon/ssi-sdk-ext.did-provider-key",
|
|
3
3
|
"description": "Sphereon SSI-SDK plugin for management of did:key identifiers.",
|
|
4
|
-
"version": "0.28.1-feature.esm.cjs.
|
|
4
|
+
"version": "0.28.1-feature.esm.cjs.9+71682ea",
|
|
5
5
|
"source": "./src/index.ts",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"main": "./dist/index.cjs",
|
|
@@ -22,8 +22,8 @@
|
|
|
22
22
|
"extract-api": "sphereon dev extract-api"
|
|
23
23
|
},
|
|
24
24
|
"dependencies": {
|
|
25
|
-
"@sphereon/ssi-sdk-ext.did-resolver-key": "^0.28.1-feature.esm.cjs.
|
|
26
|
-
"@sphereon/ssi-sdk-ext.key-utils": "^0.28.1-feature.esm.cjs.
|
|
25
|
+
"@sphereon/ssi-sdk-ext.did-resolver-key": "^0.28.1-feature.esm.cjs.9+71682ea",
|
|
26
|
+
"@sphereon/ssi-sdk-ext.key-utils": "^0.28.1-feature.esm.cjs.9+71682ea",
|
|
27
27
|
"@transmute/did-key-bls12381": "0.3.0-unstable.10",
|
|
28
28
|
"@veramo/core": "4.2.0",
|
|
29
29
|
"@veramo/did-manager": "4.2.0",
|
|
@@ -35,8 +35,8 @@
|
|
|
35
35
|
"uint8arrays": " 3.1.1"
|
|
36
36
|
},
|
|
37
37
|
"devDependencies": {
|
|
38
|
-
"@sphereon/ssi-sdk-ext.key-manager": "^0.28.1-feature.esm.cjs.
|
|
39
|
-
"@sphereon/ssi-sdk-ext.kms-local": "^0.28.1-feature.esm.cjs.
|
|
38
|
+
"@sphereon/ssi-sdk-ext.key-manager": "^0.28.1-feature.esm.cjs.9+71682ea",
|
|
39
|
+
"@sphereon/ssi-sdk-ext.kms-local": "^0.28.1-feature.esm.cjs.9+71682ea",
|
|
40
40
|
"@sphereon/ssi-sdk.dev": " ^0.33",
|
|
41
41
|
"@veramo/did-resolver": "4.2.0",
|
|
42
42
|
"@veramo/key-manager": "4.2.0"
|
|
@@ -71,5 +71,5 @@
|
|
|
71
71
|
"secp256r1",
|
|
72
72
|
"RSA"
|
|
73
73
|
],
|
|
74
|
-
"gitHead": "
|
|
74
|
+
"gitHead": "71682ea0c528f5b32c421245c253b3bc9d6296a0"
|
|
75
75
|
}
|