@sphereon/ssi-sdk.sd-jwt 0.33.1-feature.vcdm2.4 → 0.33.1-feature.vcdm2.tsup.18
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 +606 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +334 -0
- package/dist/index.d.ts +334 -4
- package/dist/index.js +563 -3
- package/dist/index.js.map +1 -1
- package/package.json +34 -24
- package/src/__tests__/sd-jwt-integrity.test.ts +1 -1
- package/src/__tests__/sd-jwt.test.ts +2 -1
- package/src/action-handler.ts +2 -2
- package/src/defaultCallbacks.ts +4 -3
- package/src/types.ts +1 -1
- package/src/utils.ts +4 -4
- package/dist/action-handler.d.ts +0 -89
- package/dist/action-handler.d.ts.map +0 -1
- package/dist/action-handler.js +0 -365
- package/dist/action-handler.js.map +0 -1
- package/dist/defaultCallbacks.d.ts +0 -6
- package/dist/defaultCallbacks.d.ts.map +0 -1
- package/dist/defaultCallbacks.js +0 -17
- package/dist/defaultCallbacks.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/trustAnchors.d.ts +0 -3
- package/dist/trustAnchors.d.ts.map +0 -1
- package/dist/trustAnchors.js +0 -17
- package/dist/trustAnchors.js.map +0 -1
- package/dist/types.d.ts +0 -234
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js +0 -6
- package/dist/types.js.map +0 -1
- package/dist/utils.d.ts +0 -18
- package/dist/utils.d.ts.map +0 -1
- package/dist/utils.js +0 -40
- package/dist/utils.js.map +0 -1
package/dist/action-handler.js
DELETED
|
@@ -1,365 +0,0 @@
|
|
|
1
|
-
import { SDJwt } from '@sd-jwt/core';
|
|
2
|
-
import { SDJwtVcInstance } from '@sd-jwt/sd-jwt-vc';
|
|
3
|
-
import { calculateJwkThumbprint, signatureAlgorithmFromKey } from '@sphereon/ssi-sdk-ext.key-utils';
|
|
4
|
-
import { decodeBase64url } from '@veramo/utils';
|
|
5
|
-
import Debug from 'debug';
|
|
6
|
-
import { defaultGenerateDigest, defaultGenerateSalt, defaultVerifySignature } from './defaultCallbacks';
|
|
7
|
-
import { funkeTestCA, sphereonCA } from './trustAnchors';
|
|
8
|
-
import { assertValidTypeMetadata, fetchUrlWithErrorHandling, validateIntegrity } from './utils';
|
|
9
|
-
const debug = Debug('@sphereon/ssi-sdk.sd-jwt');
|
|
10
|
-
/**
|
|
11
|
-
* @beta
|
|
12
|
-
* SD-JWT plugin
|
|
13
|
-
*/
|
|
14
|
-
export class SDJwtPlugin {
|
|
15
|
-
// @ts-ignore
|
|
16
|
-
trustAnchorsInPEM;
|
|
17
|
-
registeredImplementations;
|
|
18
|
-
_signers;
|
|
19
|
-
_defaultSigner;
|
|
20
|
-
constructor(registeredImplementations, trustAnchorsInPEM) {
|
|
21
|
-
this.trustAnchorsInPEM = trustAnchorsInPEM ?? [];
|
|
22
|
-
if (!registeredImplementations) {
|
|
23
|
-
registeredImplementations = {};
|
|
24
|
-
}
|
|
25
|
-
if (typeof registeredImplementations?.hasher !== 'function') {
|
|
26
|
-
registeredImplementations.hasher = defaultGenerateDigest;
|
|
27
|
-
}
|
|
28
|
-
if (typeof registeredImplementations?.saltGenerator !== 'function') {
|
|
29
|
-
registeredImplementations.saltGenerator = defaultGenerateSalt;
|
|
30
|
-
}
|
|
31
|
-
this.registeredImplementations = registeredImplementations;
|
|
32
|
-
this._signers = registeredImplementations?.signers ?? {};
|
|
33
|
-
this._defaultSigner = registeredImplementations?.defaultSigner;
|
|
34
|
-
// Verify signature default is used below in the methods if not provided here, as it needs the context of the agent
|
|
35
|
-
}
|
|
36
|
-
// map the methods your plugin is declaring to their implementation
|
|
37
|
-
methods = {
|
|
38
|
-
createSdJwtVc: this.createSdJwtVc.bind(this),
|
|
39
|
-
createSdJwtPresentation: this.createSdJwtPresentation.bind(this),
|
|
40
|
-
verifySdJwtVc: this.verifySdJwtVc.bind(this),
|
|
41
|
-
verifySdJwtPresentation: this.verifySdJwtPresentation.bind(this),
|
|
42
|
-
fetchSdJwtTypeMetadataFromVctUrl: this.fetchSdJwtTypeMetadataFromVctUrl.bind(this),
|
|
43
|
-
};
|
|
44
|
-
async getSignerForIdentifier(args, context) {
|
|
45
|
-
const { identifier, resolution } = args;
|
|
46
|
-
if (Object.keys(this._signers).includes(identifier) && typeof this._signers[identifier] === 'function') {
|
|
47
|
-
return { signer: this._signers[identifier] };
|
|
48
|
-
}
|
|
49
|
-
else if (typeof this._defaultSigner === 'function') {
|
|
50
|
-
return { signer: this._defaultSigner };
|
|
51
|
-
}
|
|
52
|
-
const signingKey = await this.getSignKey({ identifier, vmRelationship: 'assertionMethod', resolution }, context);
|
|
53
|
-
const { key, alg } = signingKey;
|
|
54
|
-
const signer = async (data) => {
|
|
55
|
-
return context.agent.keyManagerSign({ keyRef: key.kmsKeyRef, data });
|
|
56
|
-
};
|
|
57
|
-
return { signer, alg, signingKey };
|
|
58
|
-
}
|
|
59
|
-
/**
|
|
60
|
-
* Create a signed SD-JWT credential.
|
|
61
|
-
* @param args - Arguments necessary for the creation of a SD-JWT credential.
|
|
62
|
-
* @param context - This reserved param is automatically added and handled by the framework, *do not override*
|
|
63
|
-
* @returns A signed SD-JWT credential.
|
|
64
|
-
*/
|
|
65
|
-
async createSdJwtVc(args, context) {
|
|
66
|
-
const issuer = args.credentialPayload.iss;
|
|
67
|
-
if (!issuer) {
|
|
68
|
-
throw new Error('credential.issuer must not be empty');
|
|
69
|
-
}
|
|
70
|
-
const { alg, signer, signingKey } = await this.getSignerForIdentifier({ identifier: issuer, resolution: args.resolution }, context);
|
|
71
|
-
const sdjwt = new SDJwtVcInstance({
|
|
72
|
-
signer,
|
|
73
|
-
hasher: this.registeredImplementations.hasher,
|
|
74
|
-
saltGenerator: this.registeredImplementations.saltGenerator,
|
|
75
|
-
signAlg: alg ?? 'ES256',
|
|
76
|
-
hashAlg: 'sha-256',
|
|
77
|
-
});
|
|
78
|
-
const credential = await sdjwt.issue(args.credentialPayload, args.disclosureFrame, {
|
|
79
|
-
header: {
|
|
80
|
-
...(signingKey?.key.kid !== undefined && { kid: signingKey.key.kid }),
|
|
81
|
-
...(signingKey?.key.x5c !== undefined && { x5c: signingKey.key.x5c }),
|
|
82
|
-
},
|
|
83
|
-
});
|
|
84
|
-
return { credential };
|
|
85
|
-
}
|
|
86
|
-
/**
|
|
87
|
-
* Get the key to sign the SD-JWT
|
|
88
|
-
* @param args - consists of twp arguments: identifier like a did and other forms of identifiers and vmRelationship which represents the purpose of the key
|
|
89
|
-
* @param context - agent instance
|
|
90
|
-
* @returns the key to sign the SD-JWT
|
|
91
|
-
*/
|
|
92
|
-
async getSignKey(args, context) {
|
|
93
|
-
// TODO Using identifierManagedGetByDid now (new managed identifier resolution). Evaluate of we need to implement more identifier types here
|
|
94
|
-
const { identifier, resolution } = { ...args };
|
|
95
|
-
if (resolution) {
|
|
96
|
-
const key = resolution.key;
|
|
97
|
-
const alg = await signatureAlgorithmFromKey({ key });
|
|
98
|
-
switch (resolution.method) {
|
|
99
|
-
case 'did':
|
|
100
|
-
debug(`Signing key ${key.publicKeyHex} found for identifier ${identifier}`);
|
|
101
|
-
return { alg, key: { ...key, kmsKeyRef: resolution.kmsKeyRef, kid: resolution.kid } };
|
|
102
|
-
default:
|
|
103
|
-
if (key.meta?.x509 && key.meta.x509.x5c) {
|
|
104
|
-
return { alg, key: { kid: resolution.kid, kmsKeyRef: resolution.kmsKeyRef, x5c: key.meta.x509.x5c } };
|
|
105
|
-
}
|
|
106
|
-
else if (key.meta?.jwkThumbprint) {
|
|
107
|
-
return { alg, key: { kid: resolution.kid, kmsKeyRef: resolution.kmsKeyRef, jwkThumbprint: key.meta.jwkThumbprint } };
|
|
108
|
-
}
|
|
109
|
-
else {
|
|
110
|
-
return { alg, key: { kid: resolution.kid, kmsKeyRef: resolution.kmsKeyRef } };
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
else if (identifier.startsWith('did:')) {
|
|
115
|
-
const didIdentifier = await context.agent.identifierManagedGetByDid({ identifier });
|
|
116
|
-
if (!didIdentifier) {
|
|
117
|
-
throw new Error(`No identifier found with the given did: ${identifier}`);
|
|
118
|
-
}
|
|
119
|
-
const key = didIdentifier.key;
|
|
120
|
-
const alg = await signatureAlgorithmFromKey({ key });
|
|
121
|
-
debug(`Signing key ${key.publicKeyHex} found for identifier ${identifier}`);
|
|
122
|
-
return { alg, key: { ...key, kmsKeyRef: didIdentifier.kmsKeyRef, kid: didIdentifier.kid } };
|
|
123
|
-
}
|
|
124
|
-
else {
|
|
125
|
-
const kidIdentifier = await context.agent.identifierManagedGetByKid({ identifier });
|
|
126
|
-
if (!kidIdentifier) {
|
|
127
|
-
throw new Error(`No identifier found with the given kid: ${identifier}`);
|
|
128
|
-
}
|
|
129
|
-
const key = kidIdentifier.key;
|
|
130
|
-
const alg = await signatureAlgorithmFromKey({ key });
|
|
131
|
-
if (key.meta?.x509 && key.meta.x509.x5c) {
|
|
132
|
-
return { alg, key: { kid: kidIdentifier.kid, kmsKeyRef: kidIdentifier.kmsKeyRef, x5c: key.meta.x509.x5c } };
|
|
133
|
-
}
|
|
134
|
-
else if (key.meta?.jwkThumbprint) {
|
|
135
|
-
return { alg, key: { kid: kidIdentifier.kid, kmsKeyRef: kidIdentifier.kmsKeyRef, jwkThumbprint: key.meta.jwkThumbprint } };
|
|
136
|
-
}
|
|
137
|
-
else {
|
|
138
|
-
return { alg, key: { kid: kidIdentifier.kid, kmsKeyRef: kidIdentifier.kmsKeyRef } };
|
|
139
|
-
}
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
|
-
/**
|
|
143
|
-
* Create a signed SD-JWT presentation.
|
|
144
|
-
* @param args - Arguments necessary for the creation of a SD-JWT presentation.
|
|
145
|
-
* @param context - This reserved param is automatically added and handled by the framework, *do not override*
|
|
146
|
-
* @returns A signed SD-JWT presentation.
|
|
147
|
-
*/
|
|
148
|
-
async createSdJwtPresentation(args, context) {
|
|
149
|
-
const cred = await SDJwt.fromEncode(args.presentation, this.registeredImplementations.hasher);
|
|
150
|
-
const claims = await cred.getClaims(this.registeredImplementations.hasher);
|
|
151
|
-
let holder;
|
|
152
|
-
// we primarly look for a cnf field, if it's not there we look for a sub field. If this is also not given, we throw an error since we can not sign it.
|
|
153
|
-
if (args.holder) {
|
|
154
|
-
holder = args.holder;
|
|
155
|
-
}
|
|
156
|
-
else if (claims.cnf?.jwk) {
|
|
157
|
-
const jwk = claims.cnf.jwk;
|
|
158
|
-
holder = calculateJwkThumbprint({ jwk: jwk });
|
|
159
|
-
}
|
|
160
|
-
else if (claims.cnf?.kid) {
|
|
161
|
-
holder = claims.cnf?.kid;
|
|
162
|
-
}
|
|
163
|
-
else if (claims.sub) {
|
|
164
|
-
holder = claims.sub;
|
|
165
|
-
}
|
|
166
|
-
else {
|
|
167
|
-
throw new Error('invalid_argument: credential does not include a holder reference');
|
|
168
|
-
}
|
|
169
|
-
const { alg, signer } = await this.getSignerForIdentifier({ identifier: holder }, context);
|
|
170
|
-
const sdjwt = new SDJwtVcInstance({
|
|
171
|
-
hasher: this.registeredImplementations.hasher ?? defaultGenerateDigest,
|
|
172
|
-
saltGenerator: this.registeredImplementations.saltGenerator,
|
|
173
|
-
kbSigner: signer,
|
|
174
|
-
kbSignAlg: alg ?? 'ES256',
|
|
175
|
-
});
|
|
176
|
-
const presentation = await sdjwt.present(args.presentation, args.presentationFrame, { kb: args.kb });
|
|
177
|
-
return { presentation };
|
|
178
|
-
}
|
|
179
|
-
/**
|
|
180
|
-
* Verify a signed SD-JWT credential.
|
|
181
|
-
* @param args - Arguments necessary for the verify a SD-JWT credential.
|
|
182
|
-
* @param context - This reserved param is automatically added and handled by the framework, *do not override*
|
|
183
|
-
* @returns
|
|
184
|
-
*/
|
|
185
|
-
async verifySdJwtVc(args, context) {
|
|
186
|
-
// callback
|
|
187
|
-
const verifier = async (data, signature) => this.verify(sdjwt, context, data, signature);
|
|
188
|
-
const sdjwt = new SDJwtVcInstance({ verifier, hasher: this.registeredImplementations.hasher ?? defaultGenerateDigest });
|
|
189
|
-
const { header = {}, payload, kb } = await sdjwt.verify(args.credential);
|
|
190
|
-
return { header, payload: payload, kb };
|
|
191
|
-
}
|
|
192
|
-
/**
|
|
193
|
-
* Verify the key binding of a SD-JWT by validating the signature of the key bound to the SD-JWT
|
|
194
|
-
* @param sdjwt - SD-JWT instance
|
|
195
|
-
* @param context - This reserved param is automatically added and handled by the framework, *do not override*
|
|
196
|
-
* @param data - signed data
|
|
197
|
-
* @param signature - The signature
|
|
198
|
-
* @param payload - The payload of the SD-JWT
|
|
199
|
-
* @returns
|
|
200
|
-
*/
|
|
201
|
-
verifyKb(sdjwt, context, data, signature, payload) {
|
|
202
|
-
if (!payload.cnf) {
|
|
203
|
-
throw Error('other method than cnf is not supported yet');
|
|
204
|
-
}
|
|
205
|
-
return this.verifySignatureCallback(context)(data, signature, this.getJwk(payload));
|
|
206
|
-
}
|
|
207
|
-
/**
|
|
208
|
-
* Validates the signature of a SD-JWT
|
|
209
|
-
* @param sdjwt - SD-JWT instance
|
|
210
|
-
* @param context - This reserved param is automatically added and handled by the framework, *do not override*
|
|
211
|
-
* @param data - signed data
|
|
212
|
-
* @param signature - The signature
|
|
213
|
-
* @returns
|
|
214
|
-
*/
|
|
215
|
-
async verify(sdjwt, context, data, signature, opts) {
|
|
216
|
-
const decodedVC = await sdjwt.decode(`${data}.${signature}`);
|
|
217
|
-
const issuer = decodedVC.jwt.payload.iss;
|
|
218
|
-
const header = decodedVC.jwt.header;
|
|
219
|
-
const x5c = header?.x5c;
|
|
220
|
-
let jwk = header.jwk;
|
|
221
|
-
if (x5c) {
|
|
222
|
-
const trustAnchors = new Set([...this.trustAnchorsInPEM]);
|
|
223
|
-
if (trustAnchors.size === 0) {
|
|
224
|
-
trustAnchors.add(sphereonCA);
|
|
225
|
-
trustAnchors.add(funkeTestCA);
|
|
226
|
-
}
|
|
227
|
-
const certificateValidationResult = await context.agent.x509VerifyCertificateChain({
|
|
228
|
-
chain: x5c,
|
|
229
|
-
trustAnchors: Array.from(trustAnchors),
|
|
230
|
-
// TODO: Defaults to allowing untrusted certs! Fine for now, not when wallets go mainstream
|
|
231
|
-
opts: opts?.x5cValidation ?? { trustRootWhenNoAnchors: true, allowNoTrustAnchorsFound: true },
|
|
232
|
-
});
|
|
233
|
-
if (certificateValidationResult.error || !certificateValidationResult?.certificateChain) {
|
|
234
|
-
return Promise.reject(Error(`Certificate chain validation failed. ${certificateValidationResult.message}`));
|
|
235
|
-
}
|
|
236
|
-
const certInfo = certificateValidationResult.certificateChain[0];
|
|
237
|
-
jwk = certInfo.publicKeyJWK;
|
|
238
|
-
}
|
|
239
|
-
if (!jwk && header.kid?.includes('did:')) {
|
|
240
|
-
const didDoc = await context.agent.resolveDid({ didUrl: header.kid });
|
|
241
|
-
if (!didDoc) {
|
|
242
|
-
throw new Error('invalid_issuer: issuer did not resolve to a did document');
|
|
243
|
-
}
|
|
244
|
-
//TODO SDK-20: This should be checking for an assertionMethod and not just an verificationMethod with an id
|
|
245
|
-
const didDocumentKey = didDoc.didDocument?.verificationMethod?.find((key) => key.id);
|
|
246
|
-
if (!didDocumentKey) {
|
|
247
|
-
throw new Error('invalid_issuer: issuer did document does not include referenced key');
|
|
248
|
-
}
|
|
249
|
-
//FIXME SDK-21: in case it's another did method, the value of the key can be also encoded as a base64url
|
|
250
|
-
// needs more checks. some DID methods do not expose the keys as publicKeyJwk
|
|
251
|
-
jwk = didDocumentKey.publicKeyJwk;
|
|
252
|
-
}
|
|
253
|
-
if (!jwk && issuer.includes('did:')) {
|
|
254
|
-
// TODO refactor
|
|
255
|
-
const didDoc = await context.agent.resolveDid({ didUrl: issuer });
|
|
256
|
-
if (!didDoc) {
|
|
257
|
-
throw new Error('invalid_issuer: issuer did not resolve to a did document');
|
|
258
|
-
}
|
|
259
|
-
//TODO SDK-20: This should be checking for an assertionMethod and not just an verificationMethod with an id
|
|
260
|
-
const didDocumentKey = didDoc.didDocument?.verificationMethod?.find((key) => key.id);
|
|
261
|
-
if (!didDocumentKey) {
|
|
262
|
-
throw new Error('invalid_issuer: issuer did document does not include referenced key');
|
|
263
|
-
}
|
|
264
|
-
//FIXME SDK-21: in case it's another did method, the value of the key can be also encoded as a base64url
|
|
265
|
-
// needs more checks. some DID methods do not expose the keys as publicKeyJwk
|
|
266
|
-
jwk = didDocumentKey.publicKeyJwk;
|
|
267
|
-
}
|
|
268
|
-
if (!jwk) {
|
|
269
|
-
throw new Error('No valid public key found for signature verification');
|
|
270
|
-
}
|
|
271
|
-
return this.verifySignatureCallback(context)(data, signature, jwk);
|
|
272
|
-
}
|
|
273
|
-
/**
|
|
274
|
-
* Verify a signed SD-JWT presentation.
|
|
275
|
-
* @param args - Arguments necessary for the verify a SD-JWT presentation.
|
|
276
|
-
* @param context - This reserved param is automatically added and handled by the framework, *do not override*
|
|
277
|
-
* @returns
|
|
278
|
-
*/
|
|
279
|
-
async verifySdJwtPresentation(args, context) {
|
|
280
|
-
let sdjwt;
|
|
281
|
-
const verifier = async (data, signature) => this.verify(sdjwt, context, data, signature);
|
|
282
|
-
const verifierKb = async (data, signature, payload) => this.verifyKb(sdjwt, context, data, signature, payload);
|
|
283
|
-
sdjwt = new SDJwtVcInstance({
|
|
284
|
-
verifier,
|
|
285
|
-
hasher: this.registeredImplementations.hasher,
|
|
286
|
-
kbVerifier: verifierKb,
|
|
287
|
-
});
|
|
288
|
-
return sdjwt.verify(args.presentation, args.requiredClaimKeys, args.kb);
|
|
289
|
-
}
|
|
290
|
-
/**
|
|
291
|
-
* Fetch and validate Type Metadata.
|
|
292
|
-
* @param args - Arguments necessary for fetching and validating the type metadata.
|
|
293
|
-
* @param context - This reserved param is automatically added and handled by the framework, *do not override*
|
|
294
|
-
* @returns
|
|
295
|
-
*/
|
|
296
|
-
async fetchSdJwtTypeMetadataFromVctUrl(args, context) {
|
|
297
|
-
const { vct, vctIntegrity, opts } = args;
|
|
298
|
-
const url = new URL(vct);
|
|
299
|
-
const response = await fetchUrlWithErrorHandling(url.toString());
|
|
300
|
-
const metadata = await response.json();
|
|
301
|
-
assertValidTypeMetadata(metadata, vct);
|
|
302
|
-
const validate = async (vct, input, integrityValue, hasher) => {
|
|
303
|
-
if (hasher && integrityValue) {
|
|
304
|
-
const validation = await validateIntegrity({ integrityValue, input, hasher });
|
|
305
|
-
if (!validation) {
|
|
306
|
-
return Promise.reject(Error(`Integrity check failed for vct: ${vct}, extends: ${metadata.extends}, integrity: ${integrityValue}}`));
|
|
307
|
-
}
|
|
308
|
-
}
|
|
309
|
-
};
|
|
310
|
-
const hasher = (opts?.hasher ?? this.registeredImplementations.hasher ?? defaultGenerateDigest);
|
|
311
|
-
if (hasher) {
|
|
312
|
-
if (vctIntegrity) {
|
|
313
|
-
await validate(vct, metadata, vctIntegrity, hasher);
|
|
314
|
-
const vctValidation = await validateIntegrity({ integrityValue: vctIntegrity, input: metadata, hasher });
|
|
315
|
-
if (!vctValidation) {
|
|
316
|
-
return Promise.reject(Error(`Integrity check failed for vct: ${vct}, integrity: ${vctIntegrity}`));
|
|
317
|
-
}
|
|
318
|
-
}
|
|
319
|
-
if (metadata['extends#integrity']) {
|
|
320
|
-
const extendsMetadata = await this.fetchSdJwtTypeMetadataFromVctUrl({ vct: metadata['extends#integrity'], opts }, context);
|
|
321
|
-
await validate(vct, extendsMetadata, metadata['extends#integrity'], hasher);
|
|
322
|
-
}
|
|
323
|
-
if (metadata['schema_uri#integrity']) {
|
|
324
|
-
const schemaResponse = await fetchUrlWithErrorHandling(metadata.schema_uri);
|
|
325
|
-
const schema = await schemaResponse.json();
|
|
326
|
-
await validate(vct, schema, metadata['schema_uri#integrity'], hasher);
|
|
327
|
-
}
|
|
328
|
-
metadata.display?.forEach((display) => {
|
|
329
|
-
const simpleLogoIntegrity = display.rendering?.simple?.logo?.['uri#integrity'];
|
|
330
|
-
if (simpleLogoIntegrity) {
|
|
331
|
-
console.log('TODO: Logo integrity check');
|
|
332
|
-
}
|
|
333
|
-
});
|
|
334
|
-
}
|
|
335
|
-
return metadata;
|
|
336
|
-
}
|
|
337
|
-
verifySignatureCallback(context) {
|
|
338
|
-
if (typeof this.registeredImplementations.verifySignature === 'function') {
|
|
339
|
-
return this.registeredImplementations.verifySignature;
|
|
340
|
-
}
|
|
341
|
-
return defaultVerifySignature(context);
|
|
342
|
-
}
|
|
343
|
-
getJwk(payload) {
|
|
344
|
-
if (payload.cnf?.jwk !== undefined) {
|
|
345
|
-
return payload.cnf.jwk;
|
|
346
|
-
}
|
|
347
|
-
else if (payload.cnf !== undefined && 'kid' in payload.cnf && typeof payload.cnf.kid === 'string' && payload.cnf.kid.startsWith('did:jwk:')) {
|
|
348
|
-
// extract JWK from kid FIXME isn't there a did function for this already? Otherwise create one
|
|
349
|
-
// FIXME this is a quick-fix to make verification but we need a real solution
|
|
350
|
-
const encoded = this.extractBase64FromDIDJwk(payload.cnf.kid);
|
|
351
|
-
const decoded = decodeBase64url(encoded);
|
|
352
|
-
const jwt = JSON.parse(decoded);
|
|
353
|
-
return jwt;
|
|
354
|
-
}
|
|
355
|
-
throw Error('Unable to extract JWK from SD-JWT payload');
|
|
356
|
-
}
|
|
357
|
-
extractBase64FromDIDJwk(did) {
|
|
358
|
-
const parts = did.split(':');
|
|
359
|
-
if (parts.length < 3) {
|
|
360
|
-
throw new Error('Invalid DID format');
|
|
361
|
-
}
|
|
362
|
-
return parts[2].split('#')[0];
|
|
363
|
-
}
|
|
364
|
-
}
|
|
365
|
-
//# sourceMappingURL=action-handler.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"action-handler.js","sourceRoot":"","sources":["../src/action-handler.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import { HasherSync } from '@sphereon/ssi-types';
|
|
2
|
-
import { IRequiredContext, SdJwtVerifySignature } from './types';
|
|
3
|
-
export declare const defaultGenerateDigest: HasherSync;
|
|
4
|
-
export declare const defaultGenerateSalt: () => string;
|
|
5
|
-
export declare const defaultVerifySignature: (context: IRequiredContext) => SdJwtVerifySignature;
|
|
6
|
-
//# sourceMappingURL=defaultCallbacks.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"defaultCallbacks.d.ts","sourceRoot":"","sources":["../src/defaultCallbacks.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAgB,MAAM,qBAAqB,CAAA;AAG9D,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAA;AAEhE,eAAO,MAAM,qBAAqB,EAAE,UAInC,CAAA;AAED,eAAO,MAAM,mBAAmB,QAAO,MAEtC,CAAA;AAED,eAAO,MAAM,sBAAsB,YACvB,gBAAgB,KAAG,oBAM5B,CAAA"}
|
package/dist/defaultCallbacks.js
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { digestMethodParams } from '@sphereon/ssi-sdk-ext.key-utils';
|
|
2
|
-
import { Loggers } from '@sphereon/ssi-types';
|
|
3
|
-
import { v4 } from 'uuid';
|
|
4
|
-
import * as u8a from 'uint8arrays';
|
|
5
|
-
export const defaultGenerateDigest = (data, alg) => {
|
|
6
|
-
return digestMethodParams(alg.includes('256') ? 'SHA-256' : 'SHA-512').hash(typeof data === 'string' ? u8a.fromString(data, 'utf-8') : new Uint8Array(data));
|
|
7
|
-
};
|
|
8
|
-
export const defaultGenerateSalt = () => {
|
|
9
|
-
return v4();
|
|
10
|
-
};
|
|
11
|
-
export const defaultVerifySignature = (context) => async (data, signature, publicKey) => {
|
|
12
|
-
// The data and signature from the sd-jwt lib are a jwt header.payload and signature, so let's recombine into a compact jwt
|
|
13
|
-
const result = await context.agent.jwtVerifyJwsSignature({ jws: `${data}.${signature}`, jwk: publicKey });
|
|
14
|
-
Loggers.DEFAULT.get('sd-jwt').info(`SD-JWT signature verified. Result: ${result.message}`);
|
|
15
|
-
return !result.error;
|
|
16
|
-
};
|
|
17
|
-
//# sourceMappingURL=defaultCallbacks.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"defaultCallbacks.js","sourceRoot":"","sources":["../src/defaultCallbacks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAA;AACpE,OAAO,EAAmB,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAC9D,OAAO,EAAE,EAAE,EAAE,MAAM,MAAM,CAAA;AACzB,OAAO,KAAK,GAAG,MAAM,aAAa,CAAA;AAGlC,MAAM,CAAC,MAAM,qBAAqB,GAAe,CAAC,IAA0B,EAAE,GAAW,EAAc,EAAE;IACvG,OAAO,kBAAkB,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,CACzE,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,CAChF,CAAA;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAW,EAAE;IAC9C,OAAO,EAAE,EAAE,CAAA;AACb,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,sBAAsB,GACjC,CAAC,OAAyB,EAAwB,EAAE,CACpD,KAAK,EAAE,IAAY,EAAE,SAAiB,EAAE,SAAqB,EAAoB,EAAE;IACjF,2HAA2H;IAC3H,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,qBAAqB,CAAC,EAAE,GAAG,EAAE,GAAG,IAAI,IAAI,SAAS,EAAE,EAAE,GAAG,EAAE,SAAgB,EAAE,CAAC,CAAA;IAChH,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,sCAAsC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAA;IAC1F,OAAO,CAAC,MAAM,CAAC,KAAK,CAAA;AACtB,CAAC,CAAA"}
|
package/dist/index.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,cAAc,SAAS,CAAA;AACvB,cAAc,SAAS,CAAA"}
|
package/dist/trustAnchors.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"trustAnchors.d.ts","sourceRoot":"","sources":["../src/trustAnchors.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,WAAW,QAGK,CAAA;AAE7B,eAAO,MAAM,UAAU,QAaM,CAAA"}
|
package/dist/trustAnchors.js
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
export const funkeTestCA = '-----BEGIN CERTIFICATE-----\n' +
|
|
2
|
-
'MIICeTCCAiCgAwIBAgIUB5E9QVZtmUYcDtCjKB/H3VQv72gwCgYIKoZIzj0EAwIwgYgxCzAJBgNVBAYTAkRFMQ8wDQYDVQQHDAZCZXJsaW4xHTAbBgNVBAoMFEJ1bmRlc2RydWNrZXJlaSBHbWJIMREwDwYDVQQLDAhUIENTIElERTE2MDQGA1UEAwwtU1BSSU5EIEZ1bmtlIEVVREkgV2FsbGV0IFByb3RvdHlwZSBJc3N1aW5nIENBMB4XDTI0MDUzMTA2NDgwOVoXDTM0MDUyOTA2NDgwOVowgYgxCzAJBgNVBAYTAkRFMQ8wDQYDVQQHDAZCZXJsaW4xHTAbBgNVBAoMFEJ1bmRlc2RydWNrZXJlaSBHbWJIMREwDwYDVQQLDAhUIENTIElERTE2MDQGA1UEAwwtU1BSSU5EIEZ1bmtlIEVVREkgV2FsbGV0IFByb3RvdHlwZSBJc3N1aW5nIENBMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEYGzdwFDnc7+Kn5ibAvCOM8ke77VQxqfMcwZL8IaIA+WCROcCfmY/giH92qMru5p/kyOivE0RC/IbdMONvDoUyaNmMGQwHQYDVR0OBBYEFNRWGMCJOOgOWIQYyXZiv6u7xZC+MB8GA1UdIwQYMBaAFNRWGMCJOOgOWIQYyXZiv6u7xZC+MBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYDVR0PAQH/BAQDAgGGMAoGCCqGSM49BAMCA0cAMEQCIGEm7wkZKHt/atb4MdFnXW6yrnwMUT2u136gdtl10Y6hAiBuTFqvVYth1rbxzCP0xWZHmQK9kVyxn8GPfX27EIzzsw==\n' +
|
|
3
|
-
'-----END CERTIFICATE-----';
|
|
4
|
-
export const sphereonCA = '-----BEGIN CERTIFICATE-----\n' +
|
|
5
|
-
'MIICCDCCAa6gAwIBAgITAPMgqwtYzWPBXaobHhxG9iSydTAKBggqhkjOPQQDAjBa\n' +
|
|
6
|
-
'MQswCQYDVQQGEwJOTDEkMCIGA1UECgwbU3BoZXJlb24gSW50ZXJuYXRpb25hbCBC\n' +
|
|
7
|
-
'LlYuMQswCQYDVQQLDAJJVDEYMBYGA1UEAwwPY2Euc3BoZXJlb24uY29tMB4XDTI0\n' +
|
|
8
|
-
'MDcyODIxMjY0OVoXDTM0MDcyODIxMjY0OVowWjELMAkGA1UEBhMCTkwxJDAiBgNV\n' +
|
|
9
|
-
'BAoMG1NwaGVyZW9uIEludGVybmF0aW9uYWwgQi5WLjELMAkGA1UECwwCSVQxGDAW\n' +
|
|
10
|
-
'BgNVBAMMD2NhLnNwaGVyZW9uLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IA\n' +
|
|
11
|
-
'BEiA0KeESSNrOcmCDga8YsBkUTgowZGwqvL2n91JUpAMdRSwvlVFdqdiLXnk2pQq\n' +
|
|
12
|
-
'T1vZnDG0I+x+iz2EbdsG0aajUzBRMB0GA1UdDgQWBBTnB8pdlVz5yKD+zuNkRR6A\n' +
|
|
13
|
-
'sywywTAOBgNVHQ8BAf8EBAMCAaYwDwYDVR0lBAgwBgYEVR0lADAPBgNVHRMBAf8E\n' +
|
|
14
|
-
'BTADAQH/MAoGCCqGSM49BAMCA0gAMEUCIHH7ie1OAAbff5262rzZVQa8J9zENG8A\n' +
|
|
15
|
-
'QlHHFydMdgaXAiEA1Ib82mhHIYDziE0DDbHEAXOs98al+7dpo8fPGVGTeKI=\n' +
|
|
16
|
-
'-----END CERTIFICATE-----';
|
|
17
|
-
//# sourceMappingURL=trustAnchors.js.map
|
package/dist/trustAnchors.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"trustAnchors.js","sourceRoot":"","sources":["../src/trustAnchors.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,WAAW,GACtB,+BAA+B;IAC/B,w1BAAw1B;IACx1B,2BAA2B,CAAA;AAE7B,MAAM,CAAC,MAAM,UAAU,GACrB,+BAA+B;IAC/B,oEAAoE;IACpE,oEAAoE;IACpE,oEAAoE;IACpE,oEAAoE;IACpE,oEAAoE;IACpE,oEAAoE;IACpE,oEAAoE;IACpE,oEAAoE;IACpE,oEAAoE;IACpE,oEAAoE;IACpE,gEAAgE;IAChE,2BAA2B,CAAA"}
|