@sphereon/did-provider-oyd 0.28.1-feature.jose.vcdm.52 → 0.28.1-feature.oyd.cmsm.improv.20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +10 -10
- package/dist/index.d.ts +7 -108
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +27 -323
- package/dist/index.js.map +1 -1
- package/dist/oyd-did-provider.d.ts +61 -0
- package/dist/oyd-did-provider.d.ts.map +1 -0
- package/dist/oyd-did-provider.js +330 -0
- package/dist/oyd-did-provider.js.map +1 -0
- package/dist/resolver.d.ts +10 -0
- package/dist/resolver.d.ts.map +1 -0
- package/dist/resolver.js +44 -0
- package/dist/resolver.js.map +1 -0
- package/dist/tsdoc-metadata.json +11 -0
- package/dist/types/oyd-provider-types.d.ts +41 -0
- package/dist/types/oyd-provider-types.d.ts.map +1 -0
- package/dist/types/oyd-provider-types.js +11 -0
- package/dist/types/oyd-provider-types.js.map +1 -0
- package/package.json +17 -26
- package/src/index.ts +2 -2
- package/src/oyd-did-provider.ts +69 -52
- package/src/types/oyd-provider-types.ts +19 -19
- package/dist/index.cjs +0 -356
- package/dist/index.cjs.map +0 -1
- package/dist/index.d.cts +0 -111
package/README.md
CHANGED
|
@@ -24,17 +24,17 @@ const DID_METHOD = 'did:oyd'
|
|
|
24
24
|
const oydDIDProvider = new OydDIDProvider({
|
|
25
25
|
defaultKms: 'mem',
|
|
26
26
|
clientManagedSecretMode: {
|
|
27
|
-
publicKeyCallback: some_function,
|
|
28
|
-
signCallback: some_function
|
|
29
|
-
}
|
|
30
|
-
})
|
|
27
|
+
publicKeyCallback: some_function, // callback to provide public Key
|
|
28
|
+
signCallback: some_function // callback for signing payload
|
|
29
|
+
}
|
|
30
|
+
});
|
|
31
31
|
|
|
32
32
|
const agent = createAgent<IKeyManager, DIDManager>({
|
|
33
33
|
plugins: [
|
|
34
34
|
new SphereonKeyManager({
|
|
35
35
|
store: new MemoryKeyStore(),
|
|
36
36
|
kms: {
|
|
37
|
-
mem: new SphereonKeyManagementSystem(new MemoryPrivateKeyStore())
|
|
37
|
+
mem: new SphereonKeyManagementSystem(new MemoryPrivateKeyStore())
|
|
38
38
|
},
|
|
39
39
|
}),
|
|
40
40
|
new DIDManager({
|
|
@@ -42,14 +42,15 @@ const agent = createAgent<IKeyManager, DIDManager>({
|
|
|
42
42
|
[DID_METHOD]: oydDIDProvider,
|
|
43
43
|
},
|
|
44
44
|
defaultProvider: DID_METHOD,
|
|
45
|
-
store: new MemoryDIDStore()
|
|
45
|
+
store: new MemoryDIDStore()
|
|
46
46
|
}),
|
|
47
47
|
],
|
|
48
|
-
})
|
|
48
|
+
});
|
|
49
49
|
|
|
50
|
-
const identifier: IIdentifier = await agent.didManagerCreate()
|
|
50
|
+
const identifier: IIdentifier = await agent.didManagerCreate();
|
|
51
51
|
```
|
|
52
52
|
|
|
53
|
+
|
|
53
54
|
### Resolving a DID
|
|
54
55
|
|
|
55
56
|
The example below resolves a did:oyd to DIDResolutionResult.
|
|
@@ -71,5 +72,4 @@ yarn build
|
|
|
71
72
|
```
|
|
72
73
|
|
|
73
74
|
## REST API Endpoints for `did:oyd`
|
|
74
|
-
|
|
75
|
-
For managing did:oyd DIDs (create, update, delete), refer to the following page, which provides detailed information on the available REST API endpoints: https://github.com/OwnYourData/oydid/tree/main/uni-registrar-driver-did-oyd
|
|
75
|
+
For managing did:oyd DIDs (create, update, delete), refer to the following page, which provides detailed information on the available REST API endpoints: https://github.com/OwnYourData/oydid/tree/main/uni-registrar-driver-did-oyd
|
package/dist/index.d.ts
CHANGED
|
@@ -1,111 +1,10 @@
|
|
|
1
|
-
import { TKeyType, IKey, IAgentContext, IKeyManager, IIdentifier, IService } from '@veramo/core';
|
|
2
|
-
import { AbstractIdentifierProvider } from '@veramo/did-manager';
|
|
3
|
-
import { KeyManager } from '@veramo/key-manager';
|
|
4
|
-
import { DIDResolver } from 'did-resolver';
|
|
5
|
-
|
|
6
|
-
type OydConstructorOptions = {
|
|
7
|
-
defaultKms?: string;
|
|
8
|
-
clientManagedSecretMode?: CMSMCallbackOpts;
|
|
9
|
-
};
|
|
10
|
-
type OydCreateIdentifierOptions = {
|
|
11
|
-
type?: OydDidSupportedKeyTypes;
|
|
12
|
-
privateKeyHex?: string;
|
|
13
|
-
kid?: string;
|
|
14
|
-
alias?: string;
|
|
15
|
-
keyUse?: KeyUse;
|
|
16
|
-
cmsm?: CmsmOptions;
|
|
17
|
-
key?: IKey;
|
|
18
|
-
};
|
|
19
|
-
type CmsmOptions = {
|
|
20
|
-
enabled: boolean;
|
|
21
|
-
create?: boolean;
|
|
22
|
-
};
|
|
23
|
-
type OydDidHoldKeysArgs = {
|
|
24
|
-
kms?: string;
|
|
25
|
-
options: HoldKeysOpts;
|
|
26
|
-
};
|
|
27
|
-
type HoldKeysOpts = {
|
|
28
|
-
keyType: OydDidSupportedKeyTypes;
|
|
29
|
-
kid: string;
|
|
30
|
-
publicKeyHex?: string;
|
|
31
|
-
privateKeyHex?: string;
|
|
32
|
-
};
|
|
33
|
-
type CMSMCallbackOpts = {
|
|
34
|
-
publicKeyCallback: (kid: string, kms?: string, create?: boolean, createKeyType?: TKeyType) => Promise<IKey>;
|
|
35
|
-
signCallback: (kid: string, value: string) => Promise<string>;
|
|
36
|
-
};
|
|
37
|
-
declare enum SupportedKeyTypes {
|
|
38
|
-
Secp256r1 = "Secp256r1",
|
|
39
|
-
Secp256k1 = "Secp256k1",
|
|
40
|
-
Ed25519 = "Ed25519",
|
|
41
|
-
X25519 = "X25519"
|
|
42
|
-
}
|
|
43
|
-
type OydDidSupportedKeyTypes = keyof typeof SupportedKeyTypes;
|
|
44
|
-
type KeyUse = 'sig' | 'enc';
|
|
45
|
-
|
|
46
|
-
type IContext = IAgentContext<IKeyManager>;
|
|
47
1
|
/**
|
|
48
|
-
* {@link @
|
|
49
|
-
* @
|
|
50
|
-
*/
|
|
51
|
-
declare class OydDIDProvider extends AbstractIdentifierProvider {
|
|
52
|
-
private readonly defaultKms?;
|
|
53
|
-
private readonly cmsmCallbackOpts?;
|
|
54
|
-
constructor(options?: OydConstructorOptions);
|
|
55
|
-
private assertedKms;
|
|
56
|
-
createIdentifier({ kms, alias, options }: {
|
|
57
|
-
kms?: string;
|
|
58
|
-
alias?: string;
|
|
59
|
-
options: OydCreateIdentifierOptions;
|
|
60
|
-
}, context: IContext): Promise<Omit<IIdentifier, 'provider'>>;
|
|
61
|
-
createIdentifierWithCMSM({ kms, options }: {
|
|
62
|
-
kms?: string;
|
|
63
|
-
options: OydCreateIdentifierOptions;
|
|
64
|
-
}, context: IContext): Promise<Omit<IIdentifier, 'provider'>>;
|
|
65
|
-
updateIdentifier(args: {
|
|
66
|
-
did: string;
|
|
67
|
-
kms?: string | undefined;
|
|
68
|
-
alias?: string | undefined;
|
|
69
|
-
options?: any;
|
|
70
|
-
}, context: IAgentContext<IKeyManager>): Promise<IIdentifier>;
|
|
71
|
-
deleteIdentifier(identifier: IIdentifier, context: IContext): Promise<boolean>;
|
|
72
|
-
addKey({ identifier, key, options }: {
|
|
73
|
-
identifier: IIdentifier;
|
|
74
|
-
key: IKey;
|
|
75
|
-
options?: any;
|
|
76
|
-
}, context: IContext): Promise<any>;
|
|
77
|
-
addService({ identifier, service, options }: {
|
|
78
|
-
identifier: IIdentifier;
|
|
79
|
-
service: IService;
|
|
80
|
-
options?: any;
|
|
81
|
-
}, context: IContext): Promise<any>;
|
|
82
|
-
removeKey(args: {
|
|
83
|
-
identifier: IIdentifier;
|
|
84
|
-
kid: string;
|
|
85
|
-
options?: any;
|
|
86
|
-
}, context: IContext): Promise<any>;
|
|
87
|
-
removeService(args: {
|
|
88
|
-
identifier: IIdentifier;
|
|
89
|
-
id: string;
|
|
90
|
-
options?: any;
|
|
91
|
-
}, context: IContext): Promise<any>;
|
|
92
|
-
}
|
|
93
|
-
declare function defaultOydCmsmPublicKeyCallback(keyManager: KeyManager): (kid: string, kms?: string, create?: boolean, createKeyType?: TKeyType) => Promise<IKey>;
|
|
94
|
-
declare function defaultOydCmsmSignCallback(keyManager: KeyManager): (kid: string, data: string) => Promise<string>;
|
|
95
|
-
declare class DefaultOydCmsmCallbacks implements CMSMCallbackOpts {
|
|
96
|
-
private readonly keyManager;
|
|
97
|
-
constructor(keyManager: KeyManager);
|
|
98
|
-
publicKeyCallback(kid: string, kms?: string, create?: boolean, createKeyType?: TKeyType): Promise<IKey>;
|
|
99
|
-
signCallback(kid: string, value: string): Promise<string>;
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
/**
|
|
103
|
-
* Provides a mapping to a did:oyd resolver, usable by {@link did-resolver#Resolver}.
|
|
2
|
+
* Provides `did:oyd` {@link @ownyourdata/did-provider-oyd#OydDIDProvider | identifier provider } for the
|
|
3
|
+
* {@link @veramo/did-manager#DIDManager}
|
|
104
4
|
*
|
|
105
|
-
* @
|
|
5
|
+
* @packageDocumentation
|
|
106
6
|
*/
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
export { type CMSMCallbackOpts, type CmsmOptions, DefaultOydCmsmCallbacks, type KeyUse, type OydConstructorOptions, type OydCreateIdentifierOptions, OydDIDProvider, type OydDidHoldKeysArgs, type OydDidSupportedKeyTypes, defaultOydCmsmPublicKeyCallback, defaultOydCmsmSignCallback, getDidOydResolver };
|
|
7
|
+
export { OydDIDProvider } from './oyd-did-provider';
|
|
8
|
+
export { getDidOydResolver } from './resolver';
|
|
9
|
+
export * from './types/oyd-provider-types';
|
|
10
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAC9C,cAAc,4BAA4B,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -1,325 +1,29 @@
|
|
|
1
|
-
|
|
2
|
-
var
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
var
|
|
14
|
-
var
|
|
15
|
-
static {
|
|
16
|
-
__name(this, "OydDIDProvider");
|
|
17
|
-
}
|
|
18
|
-
defaultKms;
|
|
19
|
-
cmsmCallbackOpts;
|
|
20
|
-
constructor(options) {
|
|
21
|
-
super();
|
|
22
|
-
this.defaultKms = options?.defaultKms;
|
|
23
|
-
this.cmsmCallbackOpts = options?.clientManagedSecretMode;
|
|
24
|
-
}
|
|
25
|
-
async assertedKms(...kms) {
|
|
26
|
-
if (!kms || kms.length === 0) {
|
|
27
|
-
return Promise.reject(Error("KMS must be provided either as a parameter or via defaultKms."));
|
|
28
|
-
}
|
|
29
|
-
const result = kms.find((k) => !!k);
|
|
30
|
-
if (!result) {
|
|
31
|
-
return Promise.reject(Error("KMS must be provided either as a parameter or via defaultKms."));
|
|
32
|
-
}
|
|
33
|
-
return result;
|
|
34
|
-
}
|
|
35
|
-
async createIdentifier({ kms, alias, options }, context) {
|
|
36
|
-
const resolvedKms = await this.assertedKms(kms, this.defaultKms);
|
|
37
|
-
if (this.cmsmCallbackOpts && !options.cmsm || options.cmsm && options.cmsm.enabled !== false) {
|
|
38
|
-
if (!this.cmsmCallbackOpts) {
|
|
39
|
-
return Promise.reject(Error("did:oyd: no cmsm options defined on oyd did provider, but cmsm was enabled on the call!"));
|
|
40
|
-
}
|
|
41
|
-
return await this.createIdentifierWithCMSM({
|
|
42
|
-
kms: resolvedKms,
|
|
43
|
-
options
|
|
44
|
-
}, context);
|
|
45
|
-
}
|
|
46
|
-
const body = {
|
|
47
|
-
options: {
|
|
48
|
-
cmsm: false,
|
|
49
|
-
key_type: options.type ?? "Secp256r1"
|
|
50
|
-
}
|
|
51
|
-
};
|
|
52
|
-
let didDoc;
|
|
53
|
-
try {
|
|
54
|
-
const response = await fetch(OYDID_REGISTRAR_URL, {
|
|
55
|
-
method: "POST",
|
|
56
|
-
headers: {
|
|
57
|
-
"Content-Type": "application/json"
|
|
58
|
-
},
|
|
59
|
-
body: JSON.stringify(body)
|
|
60
|
-
});
|
|
61
|
-
if (!response.ok) {
|
|
62
|
-
debug("Error response from OydDID Registrar: ", response);
|
|
63
|
-
return Promise.reject(Error("Network response was not ok: " + response.statusText));
|
|
64
|
-
}
|
|
65
|
-
didDoc = await response.json();
|
|
66
|
-
} catch (error) {
|
|
67
|
-
debug("Unexpected error from OydDID Registrar: ", error);
|
|
68
|
-
return Promise.reject(Error("There has been a problem with the fetch operation: " + error.toString()));
|
|
69
|
-
}
|
|
70
|
-
const keyType = options?.type ?? "Secp256r1";
|
|
71
|
-
const key = await importProvidedOrGeneratedKey({
|
|
72
|
-
kms: resolvedKms,
|
|
73
|
-
alias: alias ?? options.alias ?? options.kid ?? `${didDoc.did}#key-doc`,
|
|
74
|
-
options: {
|
|
75
|
-
key: {
|
|
76
|
-
kid: `${didDoc.did}#key-doc`,
|
|
77
|
-
type: keyType,
|
|
78
|
-
publicKeyHex: didDoc.keys[0].publicKeyHex,
|
|
79
|
-
privateKeyHex: didDoc.keys[0].privateKeyHex
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
}, context);
|
|
83
|
-
const identifier = {
|
|
84
|
-
did: didDoc.did,
|
|
85
|
-
controllerKeyId: key.kid,
|
|
86
|
-
keys: [
|
|
87
|
-
key
|
|
88
|
-
],
|
|
89
|
-
services: []
|
|
90
|
-
};
|
|
91
|
-
debug("Created", identifier.did);
|
|
92
|
-
return identifier;
|
|
93
|
-
}
|
|
94
|
-
async createIdentifierWithCMSM({ kms, options }, context) {
|
|
95
|
-
const cmsmCallbackOpts = this.cmsmCallbackOpts;
|
|
96
|
-
if (!cmsmCallbackOpts) {
|
|
97
|
-
return Promise.reject(Error("did:oyd: no cmsm options defined!"));
|
|
98
|
-
}
|
|
99
|
-
const assertedKms = await this.assertedKms(kms, this.defaultKms);
|
|
100
|
-
const pubKey = options.key ?? await cmsmCallbackOpts.publicKeyCallback(options.kid ?? "default", assertedKms, options.cmsm?.create !== false, options.type);
|
|
101
|
-
const kid = pubKey.kid;
|
|
102
|
-
const keyType = pubKey.type;
|
|
103
|
-
const key = base58btc({
|
|
104
|
-
publicKeyHex: pubKey.publicKeyHex,
|
|
105
|
-
keyType
|
|
106
|
-
});
|
|
107
|
-
console.log(`Bae58 pubkey key: ${key}`);
|
|
108
|
-
let signValue;
|
|
109
|
-
try {
|
|
110
|
-
const body_create = {
|
|
111
|
-
// specify the Identifier options for the registrar
|
|
112
|
-
key,
|
|
113
|
-
options: {
|
|
114
|
-
cmsm: true,
|
|
115
|
-
key_type: keyType
|
|
116
|
-
}
|
|
117
|
-
};
|
|
118
|
-
console.log(`Create request:
|
|
119
|
-
${JSON.stringify(body_create, null, 2)}
|
|
120
|
-
`);
|
|
121
|
-
const response = await fetch(OYDID_REGISTRAR_URL, {
|
|
122
|
-
method: "POST",
|
|
123
|
-
headers: {
|
|
124
|
-
"Content-Type": "application/json"
|
|
125
|
-
},
|
|
126
|
-
body: JSON.stringify(body_create)
|
|
127
|
-
});
|
|
128
|
-
if (!response.ok) {
|
|
129
|
-
debug("Error response from OydDID Registrar: ", body_create, response);
|
|
130
|
-
return Promise.reject(Error("Network response was not ok: " + response.statusText));
|
|
131
|
-
}
|
|
132
|
-
signValue = await response.json();
|
|
133
|
-
console.log(`Create response:
|
|
134
|
-
${JSON.stringify(signValue, null, 2)}
|
|
135
|
-
`);
|
|
136
|
-
} catch (error) {
|
|
137
|
-
console.log("Unexpected error from OydDID Registrar: ", error);
|
|
138
|
-
return Promise.reject(Error("There has been a problem with the fetch operation: " + error.toString()));
|
|
139
|
-
}
|
|
140
|
-
const { sign } = signValue;
|
|
141
|
-
const signature = await cmsmCallbackOpts.signCallback(kid, sign);
|
|
142
|
-
console.log(`Signature: ${signature}`);
|
|
143
|
-
const body_signed = {
|
|
144
|
-
key,
|
|
145
|
-
options: {
|
|
146
|
-
cmsm: true,
|
|
147
|
-
key_type: keyType,
|
|
148
|
-
sig: signature
|
|
149
|
-
}
|
|
150
|
-
};
|
|
151
|
-
console.log(`Signed request:
|
|
152
|
-
${JSON.stringify(body_signed, null, 2)}
|
|
153
|
-
`);
|
|
154
|
-
let didDoc;
|
|
155
|
-
try {
|
|
156
|
-
const response = await fetch(OYDID_REGISTRAR_URL, {
|
|
157
|
-
method: "POST",
|
|
158
|
-
headers: {
|
|
159
|
-
"Content-Type": "application/json"
|
|
160
|
-
},
|
|
161
|
-
body: JSON.stringify(body_signed)
|
|
162
|
-
});
|
|
163
|
-
if (!response.ok) {
|
|
164
|
-
console.log(`Error response from OydDID Registrar: ${JSON.stringify(response.text)}${response.statusText}`, response);
|
|
165
|
-
debug("Error response from OydDID Registrar: ", response);
|
|
166
|
-
return Promise.reject(Error("Network response was not ok: " + response.statusText));
|
|
167
|
-
}
|
|
168
|
-
didDoc = await response.json();
|
|
169
|
-
} catch (error) {
|
|
170
|
-
debug("Unexpected error from OydDID Registrar: ", error);
|
|
171
|
-
return Promise.reject(Error("There has been a problem with the fetch operation: " + error.toString()));
|
|
172
|
-
}
|
|
173
|
-
const identifier = {
|
|
174
|
-
did: didDoc.did,
|
|
175
|
-
controllerKeyId: pubKey.kid,
|
|
176
|
-
keys: [
|
|
177
|
-
pubKey
|
|
178
|
-
],
|
|
179
|
-
services: []
|
|
180
|
-
};
|
|
181
|
-
debug("Created", identifier.did);
|
|
182
|
-
return identifier;
|
|
183
|
-
}
|
|
184
|
-
async updateIdentifier(args, context) {
|
|
185
|
-
throw new Error("OydDIDProvider updateIdentifier not supported yet.");
|
|
186
|
-
}
|
|
187
|
-
async deleteIdentifier(identifier, context) {
|
|
188
|
-
for (const { kid } of identifier.keys) {
|
|
189
|
-
await context.agent.keyManagerDelete({
|
|
190
|
-
kid
|
|
191
|
-
});
|
|
192
|
-
}
|
|
193
|
-
return true;
|
|
194
|
-
}
|
|
195
|
-
async addKey({ identifier, key, options }, context) {
|
|
196
|
-
return {
|
|
197
|
-
success: true
|
|
198
|
-
};
|
|
199
|
-
}
|
|
200
|
-
async addService({ identifier, service, options }, context) {
|
|
201
|
-
return {
|
|
202
|
-
success: true
|
|
203
|
-
};
|
|
204
|
-
}
|
|
205
|
-
async removeKey(args, context) {
|
|
206
|
-
return {
|
|
207
|
-
success: true
|
|
208
|
-
};
|
|
209
|
-
}
|
|
210
|
-
async removeService(args, context) {
|
|
211
|
-
return {
|
|
212
|
-
success: true
|
|
213
|
-
};
|
|
214
|
-
}
|
|
215
|
-
};
|
|
216
|
-
var keyCodecs = {
|
|
217
|
-
RSA: "rsa-pub",
|
|
218
|
-
Ed25519: "ed25519-pub",
|
|
219
|
-
X25519: "x25519-pub",
|
|
220
|
-
Secp256k1: "secp256k1-pub",
|
|
221
|
-
Secp256r1: "p256-pub",
|
|
222
|
-
Bls12381G1: "bls12_381-g1-pub",
|
|
223
|
-
Bls12381G2: "bls12_381-g2-pub"
|
|
224
|
-
};
|
|
225
|
-
var base58btc = /* @__PURE__ */ __name(({ publicKeyHex, keyType = "Secp256r1" }) => {
|
|
226
|
-
const codecName = keyCodecs[keyType];
|
|
227
|
-
return u8a.toString(Multibase.encode("base58btc", Multicodec.addPrefix(codecName, u8a.fromString(publicKeyHex, "hex")))).toString();
|
|
228
|
-
}, "base58btc");
|
|
229
|
-
function defaultOydCmsmPublicKeyCallback(keyManager) {
|
|
230
|
-
return async (kid, kms, create, createKeyType) => {
|
|
231
|
-
try {
|
|
232
|
-
const existing = await keyManager.keyManagerGet({
|
|
233
|
-
kid
|
|
234
|
-
});
|
|
235
|
-
if (existing) {
|
|
236
|
-
return existing;
|
|
237
|
-
}
|
|
238
|
-
} catch (error) {
|
|
239
|
-
}
|
|
240
|
-
if (create) {
|
|
241
|
-
if (!kms) {
|
|
242
|
-
return Promise.reject(Error("No KMS provided, whilst creating a new key!"));
|
|
243
|
-
}
|
|
244
|
-
const alias = kid ?? `oyd-${(/* @__PURE__ */ new Date()).toISOString()}`;
|
|
245
|
-
const agent = keyManager;
|
|
246
|
-
const key = await importProvidedOrGeneratedKey({
|
|
247
|
-
kms,
|
|
248
|
-
alias,
|
|
249
|
-
options: {
|
|
250
|
-
key: {
|
|
251
|
-
type: createKeyType ?? "Secp256r1"
|
|
252
|
-
}
|
|
253
|
-
}
|
|
254
|
-
}, {
|
|
255
|
-
//@ts-ignore
|
|
256
|
-
agent
|
|
257
|
-
});
|
|
258
|
-
return key;
|
|
259
|
-
}
|
|
260
|
-
return Promise.reject(Error("No existing key found, and create is false!"));
|
|
261
|
-
};
|
|
262
|
-
}
|
|
263
|
-
__name(defaultOydCmsmPublicKeyCallback, "defaultOydCmsmPublicKeyCallback");
|
|
264
|
-
function defaultOydCmsmSignCallback(keyManager) {
|
|
265
|
-
return async (kid, data) => {
|
|
266
|
-
return keyManager.keyManagerSign({
|
|
267
|
-
keyRef: kid,
|
|
268
|
-
data,
|
|
269
|
-
encoding: "utf-8"
|
|
270
|
-
});
|
|
271
|
-
};
|
|
272
|
-
}
|
|
273
|
-
__name(defaultOydCmsmSignCallback, "defaultOydCmsmSignCallback");
|
|
274
|
-
var DefaultOydCmsmCallbacks = class {
|
|
275
|
-
static {
|
|
276
|
-
__name(this, "DefaultOydCmsmCallbacks");
|
|
277
|
-
}
|
|
278
|
-
keyManager;
|
|
279
|
-
constructor(keyManager) {
|
|
280
|
-
this.keyManager = keyManager;
|
|
281
|
-
}
|
|
282
|
-
publicKeyCallback(kid, kms, create, createKeyType) {
|
|
283
|
-
return defaultOydCmsmPublicKeyCallback(this.keyManager)(kid, kms, create, createKeyType);
|
|
284
|
-
}
|
|
285
|
-
signCallback(kid, value) {
|
|
286
|
-
return defaultOydCmsmSignCallback(this.keyManager)(kid, value);
|
|
287
|
-
}
|
|
288
|
-
};
|
|
289
|
-
|
|
290
|
-
// src/resolver.ts
|
|
291
|
-
import fetch2 from "cross-fetch";
|
|
292
|
-
var resolveDidOyd = /* @__PURE__ */ __name(async (didUrl, _parsed, _resolver, options) => {
|
|
293
|
-
try {
|
|
294
|
-
const baseUrl = "https://oydid-resolver.data-container.net";
|
|
295
|
-
const response = await fetch2(`${baseUrl}/1.0/identifiers/${didUrl}`);
|
|
296
|
-
if (!response.ok) {
|
|
297
|
-
throw new Error("Network response was not ok: " + response.statusText);
|
|
298
|
-
}
|
|
299
|
-
const didDoc = await response.json();
|
|
300
|
-
return didDoc;
|
|
301
|
-
} catch (err) {
|
|
302
|
-
return {
|
|
303
|
-
didDocumentMetadata: {},
|
|
304
|
-
didResolutionMetadata: {
|
|
305
|
-
error: "invalidDid",
|
|
306
|
-
message: err.toString()
|
|
307
|
-
},
|
|
308
|
-
didDocument: null
|
|
309
|
-
};
|
|
310
|
-
}
|
|
311
|
-
}, "resolveDidOyd");
|
|
312
|
-
function getDidOydResolver() {
|
|
313
|
-
return {
|
|
314
|
-
oyd: resolveDidOyd
|
|
315
|
-
};
|
|
316
|
-
}
|
|
317
|
-
__name(getDidOydResolver, "getDidOydResolver");
|
|
318
|
-
export {
|
|
319
|
-
DefaultOydCmsmCallbacks,
|
|
320
|
-
OydDIDProvider,
|
|
321
|
-
defaultOydCmsmPublicKeyCallback,
|
|
322
|
-
defaultOydCmsmSignCallback,
|
|
323
|
-
getDidOydResolver
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
324
15
|
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.getDidOydResolver = exports.OydDIDProvider = void 0;
|
|
18
|
+
/**
|
|
19
|
+
* Provides `did:oyd` {@link @ownyourdata/did-provider-oyd#OydDIDProvider | identifier provider } for the
|
|
20
|
+
* {@link @veramo/did-manager#DIDManager}
|
|
21
|
+
*
|
|
22
|
+
* @packageDocumentation
|
|
23
|
+
*/
|
|
24
|
+
var oyd_did_provider_1 = require("./oyd-did-provider");
|
|
25
|
+
Object.defineProperty(exports, "OydDIDProvider", { enumerable: true, get: function () { return oyd_did_provider_1.OydDIDProvider; } });
|
|
26
|
+
var resolver_1 = require("./resolver");
|
|
27
|
+
Object.defineProperty(exports, "getDidOydResolver", { enumerable: true, get: function () { return resolver_1.getDidOydResolver; } });
|
|
28
|
+
__exportStar(require("./types/oyd-provider-types"), exports);
|
|
325
29
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/oyd-did-provider.ts","../src/resolver.ts"],"sourcesContent":["import { importProvidedOrGeneratedKey } from '@sphereon/ssi-sdk-ext.key-utils'\nimport { IAgentContext, IIdentifier, IKey, IKeyManager, IService, TKeyType } from '@veramo/core'\nimport { AbstractIdentifierProvider } from '@veramo/did-manager'\nimport { KeyManager } from '@veramo/key-manager'\nimport fetch from 'cross-fetch'\nimport Multibase from 'multibase'\nimport Multicodec from 'multicodec'\n\n// @ts-ignore\nimport * as u8a from 'uint8arrays'\n\nimport Debug from 'debug'\nimport type {\n CMSMCallbackOpts,\n OydConstructorOptions,\n OydCreateIdentifierOptions,\n // OydDidHoldKeysArgs,\n OydDidSupportedKeyTypes,\n} from './types/oyd-provider-types'\n\nconst debug = Debug('veramo:oyd-did:identifier-provider')\nconst OYDID_REGISTRAR_URL = 'https://oydid-registrar.data-container.net/1.0/createIdentifier'\n\ntype IContext = IAgentContext<IKeyManager>\n\n/**\n * {@link @veramo/did-manager#DIDManager} identifier provider for `did:oyd` identifiers\n * @public\n */\nexport class OydDIDProvider extends AbstractIdentifierProvider {\n private readonly defaultKms?: string\n private readonly cmsmCallbackOpts?: CMSMCallbackOpts\n\n constructor(options?: OydConstructorOptions) {\n super()\n this.defaultKms = options?.defaultKms\n this.cmsmCallbackOpts = options?.clientManagedSecretMode\n }\n\n private async assertedKms(...kms: (string | undefined)[]): Promise<string> {\n if (!kms || kms.length === 0) {\n return Promise.reject(Error('KMS must be provided either as a parameter or via defaultKms.'))\n }\n const result = kms.find((k) => !!k)\n if (!result) {\n return Promise.reject(Error('KMS must be provided either as a parameter or via defaultKms.'))\n }\n return result\n }\n\n async createIdentifier(\n { kms, alias, options }: { kms?: string; alias?: string; options: OydCreateIdentifierOptions },\n context: IContext\n ): Promise<Omit<IIdentifier, 'provider'>> {\n const resolvedKms = await this.assertedKms(kms, this.defaultKms)\n\n if ((this.cmsmCallbackOpts && !options.cmsm) || (options.cmsm && options.cmsm.enabled !== false)) {\n if (!this.cmsmCallbackOpts) {\n return Promise.reject(Error('did:oyd: no cmsm options defined on oyd did provider, but cmsm was enabled on the call!'))\n }\n return await this.createIdentifierWithCMSM({ kms: resolvedKms, options }, context)\n }\n\n const body = {\n options: {\n cmsm: false,\n key_type: options.type ?? 'Secp256r1',\n },\n }\n let didDoc: any | undefined\n try {\n const response = await fetch(OYDID_REGISTRAR_URL, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify(body),\n })\n if (!response.ok) {\n debug('Error response from OydDID Registrar: ', response)\n return Promise.reject(Error('Network response was not ok: ' + response.statusText))\n }\n didDoc = await response.json()\n } catch (error: any) {\n debug('Unexpected error from OydDID Registrar: ', error)\n return Promise.reject(Error('There has been a problem with the fetch operation: ' + error.toString()))\n }\n\n const keyType: OydDidSupportedKeyTypes = options?.type ?? 'Secp256r1'\n const key = await importProvidedOrGeneratedKey(\n {\n kms: resolvedKms,\n alias: alias ?? options.alias ?? options.kid ?? `${didDoc.did}#key-doc`,\n options: {\n key: {\n kid: `${didDoc.did}#key-doc`,\n type: keyType,\n publicKeyHex: didDoc.keys[0].publicKeyHex,\n privateKeyHex: didDoc.keys[0].privateKeyHex,\n },\n },\n },\n context\n )\n\n const identifier: Omit<IIdentifier, 'provider'> = {\n did: didDoc.did,\n controllerKeyId: key.kid,\n keys: [key],\n services: [],\n }\n debug('Created', identifier.did)\n return identifier\n }\n\n async createIdentifierWithCMSM(\n { kms, options }: { kms?: string; options: OydCreateIdentifierOptions },\n context: IContext\n ): Promise<Omit<IIdentifier, 'provider'>> {\n const cmsmCallbackOpts = this.cmsmCallbackOpts\n if (!cmsmCallbackOpts) {\n return Promise.reject(Error('did:oyd: no cmsm options defined!'))\n }\n\n const assertedKms = await this.assertedKms(kms, this.defaultKms)\n const pubKey =\n options.key ?? (await cmsmCallbackOpts.publicKeyCallback(options.kid ?? 'default', assertedKms, options.cmsm?.create !== false, options.type)) // \"default\" is probably not right, TODO!!\n const kid = pubKey.kid\n const keyType = pubKey.type\n const key = base58btc({ publicKeyHex: pubKey.publicKeyHex, keyType })\n\n console.log(`Bae58 pubkey key: ${key}`)\n let signValue: any | undefined // do the request\n try {\n const body_create = {\n // specify the Identifier options for the registrar\n key: key,\n options: {\n cmsm: true,\n key_type: keyType,\n },\n }\n console.log(`Create request:\\n${JSON.stringify(body_create, null, 2)}\\n`)\n const response = await fetch(OYDID_REGISTRAR_URL, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify(body_create),\n })\n if (!response.ok) {\n debug('Error response from OydDID Registrar: ', body_create, response)\n return Promise.reject(Error('Network response was not ok: ' + response.statusText))\n }\n signValue = await response.json()\n console.log(`Create response:\\n${JSON.stringify(signValue, null, 2)}\\n`)\n } catch (error: any) {\n console.log('Unexpected error from OydDID Registrar: ', error)\n return Promise.reject(Error('There has been a problem with the fetch operation: ' + error.toString()))\n }\n\n // we received our value to sign, now we sign it!\n const { sign } = signValue\n const signature = await cmsmCallbackOpts.signCallback(kid, sign)\n\n console.log(`Signature: ${signature}`)\n\n const body_signed = {\n key,\n options: {\n cmsm: true,\n key_type: keyType,\n sig: signature,\n },\n }\n console.log(`Signed request:\\n${JSON.stringify(body_signed, null, 2)}\\n`)\n\n // Object.assign(body_signed.options, options)\n\n let didDoc: any | undefined // do the request\n try {\n const response = await fetch(OYDID_REGISTRAR_URL, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify(body_signed),\n })\n if (!response.ok) {\n console.log(`Error response from OydDID Registrar: ${JSON.stringify(response.text)}${response.statusText}`, response)\n debug('Error response from OydDID Registrar: ', response)\n return Promise.reject(Error('Network response was not ok: ' + response.statusText))\n }\n didDoc = await response.json()\n } catch (error: any) {\n debug('Unexpected error from OydDID Registrar: ', error)\n return Promise.reject(Error('There has been a problem with the fetch operation: ' + error.toString()))\n }\n\n const identifier: Omit<IIdentifier, 'provider'> = {\n did: didDoc.did,\n controllerKeyId: pubKey.kid,\n keys: [pubKey],\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('OydDIDProvider 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 return { success: true }\n }\n\n async addService({ identifier, service, options }: { identifier: IIdentifier; service: IService; options?: any }, context: IContext): Promise<any> {\n return { success: true }\n }\n\n async removeKey(args: { identifier: IIdentifier; kid: string; options?: any }, context: IContext): Promise<any> {\n return { success: true }\n }\n\n async removeService(args: { identifier: IIdentifier; id: string; options?: any }, context: IContext): Promise<any> {\n return { success: true }\n }\n}\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\nconst base58btc = ({ publicKeyHex, keyType = 'Secp256r1' }: { publicKeyHex: string; keyType?: TKeyType }): string => {\n const codecName = keyCodecs[keyType]\n\n // methodSpecificId = bytesToMultibase({bytes: u8a.fromString(key.publicKeyHex, 'hex'), codecName})\n return u8a\n .toString(Multibase.encode('base58btc', Multicodec.addPrefix(codecName as Multicodec.CodecName, u8a.fromString(publicKeyHex, 'hex'))))\n .toString()\n}\n\nexport function defaultOydCmsmPublicKeyCallback(\n keyManager: KeyManager\n): (kid: string, kms?: string, create?: boolean, createKeyType?: TKeyType) => Promise<IKey> {\n return async (kid: string, kms?: string, create?: boolean, createKeyType?: TKeyType): Promise<IKey> => {\n try {\n const existing = await keyManager.keyManagerGet({ kid })\n if (existing) {\n return existing\n }\n } catch (error: any) {}\n if (create) {\n if (!kms) {\n return Promise.reject(Error('No KMS provided, whilst creating a new key!'))\n }\n const alias = kid ?? `oyd-${new Date().toISOString()}`\n\n const agent = keyManager\n const key = await importProvidedOrGeneratedKey(\n {\n kms,\n alias,\n options: {\n key: {\n type: createKeyType ?? 'Secp256r1',\n },\n },\n },\n {\n //@ts-ignore\n agent,\n }\n )\n return key\n\n // return await keyManager.keyManagerCreate({ kms, type: createKeyType ?? 'Secp256r1' })\n }\n return Promise.reject(Error('No existing key found, and create is false!'))\n }\n}\n\nexport function defaultOydCmsmSignCallback(keyManager: KeyManager): (kid: string, data: string) => Promise<string> {\n return async (kid: string, data: string): Promise<string> => {\n return keyManager.keyManagerSign({ keyRef: kid, data, encoding: 'utf-8' })\n }\n}\n\nexport class DefaultOydCmsmCallbacks implements CMSMCallbackOpts {\n private readonly keyManager: KeyManager\n\n constructor(keyManager: KeyManager) {\n this.keyManager = keyManager\n }\n\n publicKeyCallback(kid: string, kms?: string, create?: boolean, createKeyType?: TKeyType): Promise<IKey> {\n return defaultOydCmsmPublicKeyCallback(this.keyManager)(kid, kms, create, createKeyType)\n }\n\n signCallback(kid: string, value: string): Promise<string> {\n return defaultOydCmsmSignCallback(this.keyManager)(kid, value)\n }\n}\n","import { DIDResolutionOptions, DIDResolutionResult, DIDResolver, ParsedDID, Resolvable } from 'did-resolver'\nimport fetch from 'cross-fetch'\n\nconst resolveDidOyd: DIDResolver = async (\n didUrl: string,\n _parsed: ParsedDID,\n _resolver: Resolvable,\n options: DIDResolutionOptions\n): Promise<DIDResolutionResult> => {\n try {\n const baseUrl: string = 'https://oydid-resolver.data-container.net'\n // const didDoc = await axios.get(`${baseUrl}/1.0/identifiers/${didUrl}`);\n const response = await fetch(`${baseUrl}/1.0/identifiers/${didUrl}`)\n if (!response.ok) {\n throw new Error('Network response was not ok: ' + response.statusText)\n }\n const didDoc = await response.json()\n return didDoc as DIDResolutionResult\n } catch (err: any) {\n return {\n didDocumentMetadata: {},\n didResolutionMetadata: { error: 'invalidDid', message: err.toString() },\n didDocument: null,\n }\n }\n}\n\n/**\n * Provides a mapping to a did:oyd resolver, usable by {@link did-resolver#Resolver}.\n *\n * @public\n */\nexport function getDidOydResolver() {\n return { oyd: resolveDidOyd }\n}\n"],"mappings":"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","names":["importProvidedOrGeneratedKey","AbstractIdentifierProvider","fetch","Multibase","Multicodec","u8a","Debug","debug","Debug","OYDID_REGISTRAR_URL","OydDIDProvider","AbstractIdentifierProvider","defaultKms","cmsmCallbackOpts","constructor","options","clientManagedSecretMode","assertedKms","kms","length","Promise","reject","Error","result","find","k","createIdentifier","alias","context","resolvedKms","cmsm","enabled","createIdentifierWithCMSM","body","key_type","type","didDoc","response","fetch","method","headers","JSON","stringify","ok","statusText","json","error","toString","keyType","key","importProvidedOrGeneratedKey","kid","did","publicKeyHex","keys","privateKeyHex","identifier","controllerKeyId","services","pubKey","publicKeyCallback","create","base58btc","console","log","signValue","body_create","sign","signature","signCallback","body_signed","sig","text","updateIdentifier","args","deleteIdentifier","agent","keyManagerDelete","addKey","success","addService","service","removeKey","removeService","keyCodecs","RSA","Ed25519","X25519","Secp256k1","Secp256r1","Bls12381G1","Bls12381G2","codecName","Multibase","encode","Multicodec","addPrefix","fromString","defaultOydCmsmPublicKeyCallback","keyManager","createKeyType","existing","keyManagerGet","Date","toISOString","defaultOydCmsmSignCallback","data","keyManagerSign","keyRef","encoding","DefaultOydCmsmCallbacks","value","fetch","resolveDidOyd","didUrl","_parsed","_resolver","options","baseUrl","response","fetch","ok","Error","statusText","didDoc","json","err","didDocumentMetadata","didResolutionMetadata","error","message","toString","didDocument","getDidOydResolver","oyd"]}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA;;;;;GAKG;AACH,uDAAmD;AAA1C,kHAAA,cAAc,OAAA;AACvB,uCAA8C;AAArC,6GAAA,iBAAiB,OAAA;AAC1B,6DAA0C"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { IAgentContext, IIdentifier, IKey, IKeyManager, IService, TKeyType } from '@veramo/core';
|
|
2
|
+
import { AbstractIdentifierProvider } from '@veramo/did-manager';
|
|
3
|
+
import { KeyManager } from '@veramo/key-manager';
|
|
4
|
+
import type { CMSMCallbackOpts, OydConstructorOptions, OydCreateIdentifierOptions } from './types/oyd-provider-types.js';
|
|
5
|
+
type IContext = IAgentContext<IKeyManager>;
|
|
6
|
+
/**
|
|
7
|
+
* {@link @veramo/did-manager#DIDManager} identifier provider for `did:oyd` identifiers
|
|
8
|
+
* @public
|
|
9
|
+
*/
|
|
10
|
+
export declare class OydDIDProvider extends AbstractIdentifierProvider {
|
|
11
|
+
private readonly defaultKms?;
|
|
12
|
+
private readonly cmsmCallbackOpts?;
|
|
13
|
+
constructor(options?: OydConstructorOptions);
|
|
14
|
+
private assertedKms;
|
|
15
|
+
createIdentifier({ kms, options }: {
|
|
16
|
+
kms?: string;
|
|
17
|
+
options: OydCreateIdentifierOptions;
|
|
18
|
+
}, context: IContext): Promise<Omit<IIdentifier, 'provider'>>;
|
|
19
|
+
createIdentifierWithCMSM({ kms, options }: {
|
|
20
|
+
kms?: string;
|
|
21
|
+
options: OydCreateIdentifierOptions;
|
|
22
|
+
}, context: IContext): Promise<Omit<IIdentifier, 'provider'>>;
|
|
23
|
+
updateIdentifier(args: {
|
|
24
|
+
did: string;
|
|
25
|
+
kms?: string | undefined;
|
|
26
|
+
alias?: string | undefined;
|
|
27
|
+
options?: any;
|
|
28
|
+
}, context: IAgentContext<IKeyManager>): Promise<IIdentifier>;
|
|
29
|
+
deleteIdentifier(identifier: IIdentifier, context: IContext): Promise<boolean>;
|
|
30
|
+
addKey({ identifier, key, options }: {
|
|
31
|
+
identifier: IIdentifier;
|
|
32
|
+
key: IKey;
|
|
33
|
+
options?: any;
|
|
34
|
+
}, context: IContext): Promise<any>;
|
|
35
|
+
addService({ identifier, service, options }: {
|
|
36
|
+
identifier: IIdentifier;
|
|
37
|
+
service: IService;
|
|
38
|
+
options?: any;
|
|
39
|
+
}, context: IContext): Promise<any>;
|
|
40
|
+
removeKey(args: {
|
|
41
|
+
identifier: IIdentifier;
|
|
42
|
+
kid: string;
|
|
43
|
+
options?: any;
|
|
44
|
+
}, context: IContext): Promise<any>;
|
|
45
|
+
removeService(args: {
|
|
46
|
+
identifier: IIdentifier;
|
|
47
|
+
id: string;
|
|
48
|
+
options?: any;
|
|
49
|
+
}, context: IContext): Promise<any>;
|
|
50
|
+
private importOrCreateKey;
|
|
51
|
+
}
|
|
52
|
+
export declare function defaultOydCmsmPublicKeyCallback(keyManager: KeyManager): (kid: string, kms?: string, create?: boolean, createKeyType?: TKeyType) => Promise<IKey>;
|
|
53
|
+
export declare function defaultOydCmsmSignCallback(keyManager: KeyManager): (kid: string, data: string) => Promise<string>;
|
|
54
|
+
export declare class DefaultOydCmsmCallbacks implements CMSMCallbackOpts {
|
|
55
|
+
private keyManager;
|
|
56
|
+
constructor(keyManager: KeyManager);
|
|
57
|
+
publicKeyCallback: (kid: string, kms?: string, create?: boolean, createKeyType?: TKeyType) => Promise<IKey>;
|
|
58
|
+
signCallback: (kid: string, value: string) => Promise<string>;
|
|
59
|
+
}
|
|
60
|
+
export {};
|
|
61
|
+
//# sourceMappingURL=oyd-did-provider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"oyd-did-provider.d.ts","sourceRoot":"","sources":["../src/oyd-did-provider.ts"],"names":[],"mappings":"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"}
|