@sphereon/ssi-types 0.22.0 → 0.23.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.
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { OriginalType, WrappedVerifiableCredential, WrappedVerifiablePresentation } from './vc';
|
|
2
|
+
import { CompactJWT } from './w3c-vc';
|
|
2
3
|
type JsonValue = string | number | boolean | {
|
|
3
4
|
[x: string]: JsonValue | undefined;
|
|
4
5
|
} | Array<JsonValue>;
|
|
@@ -96,6 +97,20 @@ export interface SdJwtDecodedVerifiableCredential {
|
|
|
96
97
|
* for querying the contents of the SD JWT VC using a PEX presentation definition path.
|
|
97
98
|
*/
|
|
98
99
|
decodedPayload: SdJwtDecodedVerifiableCredentialPayload;
|
|
100
|
+
/**
|
|
101
|
+
* Key binding JWT
|
|
102
|
+
*/
|
|
103
|
+
kbJwt?: {
|
|
104
|
+
compact: CompactJWT;
|
|
105
|
+
payload: SdJwtVcKbJwtPayload;
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
interface SdJwtVcKbJwtPayload {
|
|
109
|
+
iat: number;
|
|
110
|
+
aud: string;
|
|
111
|
+
nonce: string;
|
|
112
|
+
sd_hash: string;
|
|
113
|
+
[key: string]: unknown;
|
|
99
114
|
}
|
|
100
115
|
export interface WrappedSdJwtVerifiableCredential {
|
|
101
116
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sd-jwt-vc.d.ts","sourceRoot":"","sources":["../../src/types/sd-jwt-vc.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,2BAA2B,EAAE,6BAA6B,EAAE,MAAM,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"sd-jwt-vc.d.ts","sourceRoot":"","sources":["../../src/types/sd-jwt-vc.ts"],"names":[],"mappings":"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"}
|
package/dist/types/sd-jwt-vc.js
CHANGED
|
@@ -27,9 +27,10 @@ exports.isWrappedSdJwtVerifiablePresentation = isWrappedSdJwtVerifiablePresentat
|
|
|
27
27
|
* this method hides the actual implementation of SD-JWT (which is currently based on @sd-jwt/core)
|
|
28
28
|
*/
|
|
29
29
|
function decodeSdJwtVc(compactSdJwtVc, hasher) {
|
|
30
|
-
const { jwt, disclosures } = (0, decode_1.decodeSdJwtSync)(compactSdJwtVc, hasher);
|
|
30
|
+
const { jwt, disclosures, kbJwt } = (0, decode_1.decodeSdJwtSync)(compactSdJwtVc, hasher);
|
|
31
31
|
const signedPayload = jwt.payload;
|
|
32
32
|
const decodedPayload = (0, decode_1.getClaimsSync)(signedPayload, disclosures, hasher);
|
|
33
|
+
const compactKeyBindingJwt = kbJwt ? compactSdJwtVc.split('~').pop() : undefined;
|
|
33
34
|
return {
|
|
34
35
|
compactSdJwtVc,
|
|
35
36
|
decodedPayload: decodedPayload,
|
|
@@ -44,6 +45,12 @@ function decodeSdJwtVc(compactSdJwtVc, hasher) {
|
|
|
44
45
|
};
|
|
45
46
|
}),
|
|
46
47
|
signedPayload: signedPayload,
|
|
48
|
+
kbJwt: compactKeyBindingJwt && kbJwt
|
|
49
|
+
? {
|
|
50
|
+
compact: compactKeyBindingJwt,
|
|
51
|
+
payload: kbJwt.payload,
|
|
52
|
+
}
|
|
53
|
+
: undefined,
|
|
47
54
|
};
|
|
48
55
|
}
|
|
49
56
|
exports.decodeSdJwtVc = decodeSdJwtVc;
|
|
@@ -56,9 +63,10 @@ exports.decodeSdJwtVc = decodeSdJwtVc;
|
|
|
56
63
|
*/
|
|
57
64
|
function decodeSdJwtVcAsync(compactSdJwtVc, hasher) {
|
|
58
65
|
return __awaiter(this, void 0, void 0, function* () {
|
|
59
|
-
const { jwt, disclosures } = yield (0, decode_1.decodeSdJwt)(compactSdJwtVc, hasher);
|
|
66
|
+
const { jwt, disclosures, kbJwt } = yield (0, decode_1.decodeSdJwt)(compactSdJwtVc, hasher);
|
|
60
67
|
const signedPayload = jwt.payload;
|
|
61
68
|
const decodedPayload = yield (0, decode_1.getClaims)(signedPayload, disclosures, hasher);
|
|
69
|
+
const compactKeyBindingJwt = kbJwt ? compactSdJwtVc.split('~').pop() : undefined;
|
|
62
70
|
return {
|
|
63
71
|
compactSdJwtVc,
|
|
64
72
|
decodedPayload: decodedPayload,
|
|
@@ -73,6 +81,12 @@ function decodeSdJwtVcAsync(compactSdJwtVc, hasher) {
|
|
|
73
81
|
};
|
|
74
82
|
}),
|
|
75
83
|
signedPayload: signedPayload,
|
|
84
|
+
kbJwt: compactKeyBindingJwt && kbJwt
|
|
85
|
+
? {
|
|
86
|
+
compact: compactKeyBindingJwt,
|
|
87
|
+
payload: kbJwt.payload,
|
|
88
|
+
}
|
|
89
|
+
: undefined,
|
|
76
90
|
};
|
|
77
91
|
});
|
|
78
92
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sd-jwt-vc.js","sourceRoot":"","sources":["../../src/types/sd-jwt-vc.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,2CAAuF;
|
|
1
|
+
{"version":3,"file":"sd-jwt-vc.js","sourceRoot":"","sources":["../../src/types/sd-jwt-vc.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sphereon/ssi-types",
|
|
3
3
|
"description": "SSI Common Types",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.23.0",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
7
7
|
"scripts": {
|
|
@@ -42,5 +42,5 @@
|
|
|
42
42
|
"Verifiable Credentials",
|
|
43
43
|
"DIDs"
|
|
44
44
|
],
|
|
45
|
-
"gitHead": "
|
|
45
|
+
"gitHead": "5b7c05b77d8037f879e9505c80caf2bc640d7cdf"
|
|
46
46
|
}
|
package/src/types/sd-jwt-vc.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { OriginalType, WrappedVerifiableCredential, WrappedVerifiablePresentation } from './vc'
|
|
2
2
|
import { decodeSdJwtSync, decodeSdJwt, getClaims, getClaimsSync } from '@sd-jwt/decode'
|
|
3
|
+
import { CompactJWT } from './w3c-vc'
|
|
3
4
|
|
|
4
5
|
type JsonValue = string | number | boolean | { [x: string]: JsonValue | undefined } | Array<JsonValue>
|
|
5
6
|
|
|
@@ -116,6 +117,22 @@ export interface SdJwtDecodedVerifiableCredential {
|
|
|
116
117
|
* for querying the contents of the SD JWT VC using a PEX presentation definition path.
|
|
117
118
|
*/
|
|
118
119
|
decodedPayload: SdJwtDecodedVerifiableCredentialPayload
|
|
120
|
+
|
|
121
|
+
/**
|
|
122
|
+
* Key binding JWT
|
|
123
|
+
*/
|
|
124
|
+
kbJwt?: {
|
|
125
|
+
compact: CompactJWT
|
|
126
|
+
payload: SdJwtVcKbJwtPayload
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
interface SdJwtVcKbJwtPayload {
|
|
131
|
+
iat: number
|
|
132
|
+
aud: string
|
|
133
|
+
nonce: string
|
|
134
|
+
sd_hash: string
|
|
135
|
+
[key: string]: unknown
|
|
119
136
|
}
|
|
120
137
|
|
|
121
138
|
export interface WrappedSdJwtVerifiableCredential {
|
|
@@ -189,10 +206,11 @@ export type AsyncHasher = (data: string, alg: string) => Promise<Uint8Array>
|
|
|
189
206
|
* this method hides the actual implementation of SD-JWT (which is currently based on @sd-jwt/core)
|
|
190
207
|
*/
|
|
191
208
|
export function decodeSdJwtVc(compactSdJwtVc: CompactSdJwtVc, hasher: Hasher): SdJwtDecodedVerifiableCredential {
|
|
192
|
-
const { jwt, disclosures } = decodeSdJwtSync(compactSdJwtVc, hasher)
|
|
209
|
+
const { jwt, disclosures, kbJwt } = decodeSdJwtSync(compactSdJwtVc, hasher)
|
|
193
210
|
|
|
194
211
|
const signedPayload = jwt.payload as SdJwtSignedVerifiableCredentialPayload
|
|
195
212
|
const decodedPayload = getClaimsSync(signedPayload, disclosures, hasher)
|
|
213
|
+
const compactKeyBindingJwt = kbJwt ? compactSdJwtVc.split('~').pop() : undefined
|
|
196
214
|
|
|
197
215
|
return {
|
|
198
216
|
compactSdJwtVc,
|
|
@@ -207,6 +225,13 @@ export function decodeSdJwtVc(compactSdJwtVc: CompactSdJwtVc, hasher: Hasher): S
|
|
|
207
225
|
} satisfies SdJwtDisclosure
|
|
208
226
|
}),
|
|
209
227
|
signedPayload: signedPayload as SdJwtSignedVerifiableCredentialPayload,
|
|
228
|
+
kbJwt:
|
|
229
|
+
compactKeyBindingJwt && kbJwt
|
|
230
|
+
? {
|
|
231
|
+
compact: compactKeyBindingJwt,
|
|
232
|
+
payload: kbJwt.payload as SdJwtVcKbJwtPayload,
|
|
233
|
+
}
|
|
234
|
+
: undefined,
|
|
210
235
|
}
|
|
211
236
|
}
|
|
212
237
|
|
|
@@ -218,10 +243,11 @@ export function decodeSdJwtVc(compactSdJwtVc: CompactSdJwtVc, hasher: Hasher): S
|
|
|
218
243
|
* this method hides the actual implementation of SD-JWT (which is currently based on @sd-jwt/core)
|
|
219
244
|
*/
|
|
220
245
|
export async function decodeSdJwtVcAsync(compactSdJwtVc: CompactSdJwtVc, hasher: AsyncHasher): Promise<SdJwtDecodedVerifiableCredential> {
|
|
221
|
-
const { jwt, disclosures } = await decodeSdJwt(compactSdJwtVc, hasher)
|
|
246
|
+
const { jwt, disclosures, kbJwt } = await decodeSdJwt(compactSdJwtVc, hasher)
|
|
222
247
|
|
|
223
248
|
const signedPayload = jwt.payload as SdJwtSignedVerifiableCredentialPayload
|
|
224
249
|
const decodedPayload = await getClaims(signedPayload, disclosures, hasher)
|
|
250
|
+
const compactKeyBindingJwt = kbJwt ? compactSdJwtVc.split('~').pop() : undefined
|
|
225
251
|
|
|
226
252
|
return {
|
|
227
253
|
compactSdJwtVc,
|
|
@@ -236,5 +262,12 @@ export async function decodeSdJwtVcAsync(compactSdJwtVc: CompactSdJwtVc, hasher:
|
|
|
236
262
|
} satisfies SdJwtDisclosure
|
|
237
263
|
}),
|
|
238
264
|
signedPayload: signedPayload as SdJwtSignedVerifiableCredentialPayload,
|
|
265
|
+
kbJwt:
|
|
266
|
+
compactKeyBindingJwt && kbJwt
|
|
267
|
+
? {
|
|
268
|
+
compact: compactKeyBindingJwt,
|
|
269
|
+
payload: kbJwt.payload as SdJwtVcKbJwtPayload,
|
|
270
|
+
}
|
|
271
|
+
: undefined,
|
|
239
272
|
}
|
|
240
273
|
}
|