@sphereon/did-auth-siop-adapter 0.14.1-next.10

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.
Files changed (53) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +13 -0
  3. package/dist/DidJwtAdapter.d.ts +17 -0
  4. package/dist/DidJwtAdapter.d.ts.map +1 -0
  5. package/dist/DidJwtAdapter.js +57 -0
  6. package/dist/DidJwtAdapter.js.map +1 -0
  7. package/dist/did/DIDResolution.d.ts +18 -0
  8. package/dist/did/DIDResolution.d.ts.map +1 -0
  9. package/dist/did/DIDResolution.js +119 -0
  10. package/dist/did/DIDResolution.js.map +1 -0
  11. package/dist/did/DidJWT.d.ts +57 -0
  12. package/dist/did/DidJWT.d.ts.map +1 -0
  13. package/dist/did/DidJWT.js +247 -0
  14. package/dist/did/DidJWT.js.map +1 -0
  15. package/dist/did/LinkedDomainValidations.d.ts +3 -0
  16. package/dist/did/LinkedDomainValidations.d.ts.map +1 -0
  17. package/dist/did/LinkedDomainValidations.js +102 -0
  18. package/dist/did/LinkedDomainValidations.js.map +1 -0
  19. package/dist/did/index.d.ts +4 -0
  20. package/dist/did/index.d.ts.map +1 -0
  21. package/dist/did/index.js +20 -0
  22. package/dist/did/index.js.map +1 -0
  23. package/dist/helpers.d.ts +5 -0
  24. package/dist/helpers.d.ts.map +1 -0
  25. package/dist/helpers.js +10 -0
  26. package/dist/helpers.js.map +1 -0
  27. package/dist/index.d.ts +5 -0
  28. package/dist/index.d.ts.map +1 -0
  29. package/dist/index.js +21 -0
  30. package/dist/index.js.map +1 -0
  31. package/dist/types/SIOP.types.d.ts +63 -0
  32. package/dist/types/SIOP.types.d.ts.map +1 -0
  33. package/dist/types/SIOP.types.js +15 -0
  34. package/dist/types/SIOP.types.js.map +1 -0
  35. package/dist/types/SSI.types.d.ts +15 -0
  36. package/dist/types/SSI.types.d.ts.map +1 -0
  37. package/dist/types/SSI.types.js +3 -0
  38. package/dist/types/SSI.types.js.map +1 -0
  39. package/dist/types/index.d.ts +3 -0
  40. package/dist/types/index.d.ts.map +1 -0
  41. package/dist/types/index.js +19 -0
  42. package/dist/types/index.js.map +1 -0
  43. package/lib/DidJwtAdapter.ts +67 -0
  44. package/lib/did/DIDResolution.ts +117 -0
  45. package/lib/did/DidJWT.ts +273 -0
  46. package/lib/did/LinkedDomainValidations.ts +98 -0
  47. package/lib/did/index.ts +3 -0
  48. package/lib/helpers.ts +10 -0
  49. package/lib/index.ts +5 -0
  50. package/lib/types/SIOP.types.ts +77 -0
  51. package/lib/types/SSI.types.ts +16 -0
  52. package/lib/types/index.ts +2 -0
  53. package/package.json +53 -0
@@ -0,0 +1,247 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.toSIOPRegistrationDidMethod = exports.getMethodFromDid = exports.isIssSelfIssued = exports.getSubDidFromPayload = exports.getAudience = exports.signDidJwtInternal = exports.signRequestObjectPayload = exports.signIDTokenPayload = exports.createDidJWT = exports.verifyDidJWT = void 0;
13
+ const did_auth_siop_1 = require("@sphereon/did-auth-siop");
14
+ const did_auth_siop_2 = require("@sphereon/did-auth-siop");
15
+ const did_jwt_1 = require("did-jwt");
16
+ const helpers_1 = require("../helpers");
17
+ /**
18
+ * Verifies given JWT. If the JWT is valid, the promise returns an object including the JWT, the payload of the JWT,
19
+ * and the did doc of the issuer of the JWT.
20
+ *
21
+ * @example
22
+ * verifyDidJWT('did:key:example', resolver, {audience: '5A8bRWU3F7j3REx3vkJ...', callbackUrl: 'https://...'}).then(obj => {
23
+ * const did = obj.did // DIDres of signer
24
+ * const payload = obj.payload
25
+ * const doc = obj.doc // DIDres Document of signer
26
+ * const JWT = obj.JWT // JWT
27
+ * const signerKeyId = obj.signerKeyId // ID of key in DIDres document that signed JWT
28
+ * ...
29
+ * })
30
+ *
31
+ * @param {String} jwt a JSON Web Token to verify
32
+ * @param {Resolvable} resolver
33
+ * @param {JWTVerifyOptions} [options] Options
34
+ * @param {String} options.audience DID of the recipient of the JWT
35
+ * @param {String} options.callbackUrl callback url in JWT
36
+ * @return {Promise<Object, Error>} a promise which resolves with a response object or rejects with an error
37
+ */
38
+ function verifyDidJWT(jwt, resolver, options) {
39
+ return __awaiter(this, void 0, void 0, function* () {
40
+ return (0, did_jwt_1.verifyJWT)(jwt, Object.assign(Object.assign({}, options), { resolver }));
41
+ });
42
+ }
43
+ exports.verifyDidJWT = verifyDidJWT;
44
+ /**
45
+ * Creates a signed JWT given an address which becomes the issuer, a signer function, and a payload for which the withSignature is over.
46
+ *
47
+ * @example
48
+ * const signer = ES256KSigner(process.env.PRIVATE_KEY)
49
+ * createJWT({address: '5A8bRWU3F7j3REx3vkJ...', signer}, {key1: 'value', key2: ..., ... }).then(JWT => {
50
+ * ...
51
+ * })
52
+ *
53
+ * @param {Object} payload payload object
54
+ * @param {Object} [options] an unsigned credential object
55
+ * @param {String} options.issuer The DID of the issuer (signer) of JWT
56
+ * @param {Signer} options.signer a `Signer` function, Please see `ES256KSigner` or `EdDSASigner`
57
+ * @param {boolean} options.canonicalize optional flag to canonicalize header and payload before signing
58
+ * @param {Object} header optional object to specify or customize the JWT header
59
+ * @return {Promise<Object, Error>} a promise which resolves with a signed JSON Web Token or rejects with an error
60
+ */
61
+ function createDidJWT(payload_1, _a, header_1) {
62
+ return __awaiter(this, arguments, void 0, function* (payload, { issuer, signer, expiresIn, canonicalize }, header) {
63
+ return (0, did_jwt_1.createJWT)(payload, { issuer, signer, expiresIn, canonicalize }, header);
64
+ });
65
+ }
66
+ exports.createDidJWT = createDidJWT;
67
+ function signIDTokenPayload(payload, signature) {
68
+ return __awaiter(this, void 0, void 0, function* () {
69
+ if ((0, helpers_1.isInternalSignature)(signature)) {
70
+ return signDidJwtInternal(payload, payload.issuer, signature.hexPrivateKey, signature.alg, signature.kid, signature.customJwtSigner);
71
+ }
72
+ else if ((0, helpers_1.isExternalSignature)(signature)) {
73
+ return signDidJwtExternal(payload, signature.signatureUri, signature.authZToken, signature.alg, signature.kid);
74
+ }
75
+ else if ((0, helpers_1.isSuppliedSignature)(signature)) {
76
+ return signDidJwtSupplied(payload, payload.issuer, signature.signature, signature.alg, signature.kid);
77
+ }
78
+ else {
79
+ throw new Error('Signature parameters should be internal signature with hexPrivateKey, did, and an optional kid, or external signature parameters with signatureUri, did, and optionals parameters authZToken, hexPublicKey, and kid');
80
+ }
81
+ });
82
+ }
83
+ exports.signIDTokenPayload = signIDTokenPayload;
84
+ function signRequestObjectPayload(payload, signature) {
85
+ return __awaiter(this, void 0, void 0, function* () {
86
+ let issuer = payload.iss;
87
+ if (!issuer) {
88
+ issuer = signature.did;
89
+ }
90
+ if (!issuer) {
91
+ throw Error('No issuer supplied to sign the JWT');
92
+ }
93
+ if (!payload.iss) {
94
+ payload.iss = issuer;
95
+ }
96
+ if (!payload.sub) {
97
+ payload.sub = signature.did;
98
+ }
99
+ if ((0, helpers_1.isInternalSignature)(signature)) {
100
+ return signDidJwtInternal(payload, issuer, signature.hexPrivateKey, signature.alg, signature.kid, signature.customJwtSigner);
101
+ }
102
+ else if ((0, helpers_1.isExternalSignature)(signature)) {
103
+ return signDidJwtExternal(payload, signature.signatureUri, signature.authZToken, signature.alg, signature.kid);
104
+ }
105
+ else if ((0, helpers_1.isSuppliedSignature)(signature)) {
106
+ return signDidJwtSupplied(payload, issuer, signature.signature, signature.alg, signature.kid);
107
+ }
108
+ else {
109
+ throw new Error('Signature parameters should be internal signature with hexPrivateKey, did, and an optional kid, or external signature parameters with signatureUri, did, and optionals parameters authZToken, hexPublicKey, and kid');
110
+ }
111
+ });
112
+ }
113
+ exports.signRequestObjectPayload = signRequestObjectPayload;
114
+ function signDidJwtInternal(payload, issuer, hexPrivateKey, alg, kid, customJwtSigner) {
115
+ return __awaiter(this, void 0, void 0, function* () {
116
+ const signer = determineSigner(alg, hexPrivateKey, customJwtSigner);
117
+ const header = {
118
+ alg,
119
+ kid,
120
+ };
121
+ const options = {
122
+ issuer,
123
+ signer,
124
+ expiresIn: did_auth_siop_2.DEFAULT_EXPIRATION_TIME,
125
+ };
126
+ return yield createDidJWT(Object.assign({}, payload), options, header);
127
+ });
128
+ }
129
+ exports.signDidJwtInternal = signDidJwtInternal;
130
+ function signDidJwtExternal(payload, signatureUri, authZToken, alg, kid) {
131
+ return __awaiter(this, void 0, void 0, function* () {
132
+ const body = {
133
+ issuer: payload.iss && payload.iss.includes('did:') ? payload.iss : payload.sub,
134
+ payload,
135
+ expiresIn: did_auth_siop_2.DEFAULT_EXPIRATION_TIME,
136
+ alg,
137
+ selfIssued: payload.iss.includes(did_auth_siop_2.ResponseIss.SELF_ISSUED_V2) ? payload.iss : undefined,
138
+ kid,
139
+ };
140
+ const response = yield (0, did_auth_siop_1.post)(signatureUri, JSON.stringify(body), { bearerToken: authZToken });
141
+ return response.successBody.jws;
142
+ });
143
+ }
144
+ function signDidJwtSupplied(payload, issuer, signer, alg, kid) {
145
+ return __awaiter(this, void 0, void 0, function* () {
146
+ const header = {
147
+ alg,
148
+ kid,
149
+ };
150
+ const options = {
151
+ issuer,
152
+ signer,
153
+ expiresIn: did_auth_siop_2.DEFAULT_EXPIRATION_TIME,
154
+ };
155
+ return yield createDidJWT(Object.assign({}, payload), options, header);
156
+ });
157
+ }
158
+ const determineSigner = (alg, hexPrivateKey, customSigner) => {
159
+ if (customSigner) {
160
+ return customSigner;
161
+ }
162
+ else if (!hexPrivateKey) {
163
+ throw new Error('no private key provided');
164
+ }
165
+ const privateKey = (0, did_jwt_1.hexToBytes)(hexPrivateKey.replace('0x', ''));
166
+ switch (alg) {
167
+ case did_auth_siop_2.SigningAlgo.EDDSA:
168
+ return (0, did_jwt_1.EdDSASigner)(privateKey);
169
+ case did_auth_siop_2.SigningAlgo.ES256:
170
+ return (0, did_jwt_1.ES256Signer)(privateKey);
171
+ case did_auth_siop_2.SigningAlgo.ES256K:
172
+ return (0, did_jwt_1.ES256KSigner)(privateKey);
173
+ case did_auth_siop_2.SigningAlgo.PS256:
174
+ throw Error('PS256 is not supported yet. Please provide a custom signer');
175
+ case did_auth_siop_2.SigningAlgo.RS256:
176
+ throw Error('RS256 is not supported yet. Please provide a custom signer');
177
+ }
178
+ };
179
+ function getAudience(jwt) {
180
+ const { payload } = (0, did_jwt_1.decodeJWT)(jwt);
181
+ if (!payload) {
182
+ throw new Error(did_auth_siop_2.SIOPErrors.NO_AUDIENCE);
183
+ }
184
+ else if (!payload.aud) {
185
+ return undefined;
186
+ }
187
+ else if (Array.isArray(payload.aud)) {
188
+ throw new Error(did_auth_siop_2.SIOPErrors.INVALID_AUDIENCE);
189
+ }
190
+ return payload.aud;
191
+ }
192
+ exports.getAudience = getAudience;
193
+ //TODO To enable automatic registration, it cannot be a did, but HTTPS URL
194
+ function assertIssSelfIssuedOrDid(payload) {
195
+ if (!payload.sub || !payload.sub.startsWith('did:') || !payload.iss || !isIssSelfIssued(payload)) {
196
+ throw new Error('Token does not have a iss DID');
197
+ }
198
+ }
199
+ function getSubDidFromPayload(payload, header) {
200
+ assertIssSelfIssuedOrDid(payload);
201
+ if (isIssSelfIssued(payload)) {
202
+ let did;
203
+ if (payload.sub && payload.sub.startsWith('did:')) {
204
+ did = payload.sub;
205
+ }
206
+ if (!did && header && header.kid && header.kid.startsWith('did:')) {
207
+ did = header.kid.split('#')[0];
208
+ }
209
+ if (did) {
210
+ return did;
211
+ }
212
+ }
213
+ return payload.sub;
214
+ }
215
+ exports.getSubDidFromPayload = getSubDidFromPayload;
216
+ function isIssSelfIssued(payload) {
217
+ return payload.iss.includes(did_auth_siop_2.ResponseIss.SELF_ISSUED_V1) || payload.iss.includes(did_auth_siop_2.ResponseIss.SELF_ISSUED_V2) || payload.iss === payload.sub;
218
+ }
219
+ exports.isIssSelfIssued = isIssSelfIssued;
220
+ function getMethodFromDid(did) {
221
+ if (!did) {
222
+ throw new Error(did_auth_siop_2.SIOPErrors.BAD_PARAMS);
223
+ }
224
+ const split = did.split(':');
225
+ if (split.length == 1 && did.length > 0) {
226
+ return did;
227
+ }
228
+ else if (!did.startsWith('did:') || split.length < 2) {
229
+ throw new Error(did_auth_siop_2.SIOPErrors.BAD_PARAMS);
230
+ }
231
+ return split[1];
232
+ }
233
+ exports.getMethodFromDid = getMethodFromDid;
234
+ /**
235
+ * Since the OIDC SIOP spec incorrectly uses 'did:<method>:' and calls that a method, we have to fix it
236
+ * @param didOrMethod
237
+ */
238
+ function toSIOPRegistrationDidMethod(didOrMethod) {
239
+ let prefix = didOrMethod;
240
+ if (!didOrMethod.startsWith('did:')) {
241
+ prefix = 'did:' + didOrMethod;
242
+ }
243
+ const split = prefix.split(':');
244
+ return `${split[0]}:${split[1]}`;
245
+ }
246
+ exports.toSIOPRegistrationDidMethod = toSIOPRegistrationDidMethod;
247
+ //# sourceMappingURL=DidJWT.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DidJWT.js","sourceRoot":"","sources":["../../lib/did/DidJWT.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { ExternalVerification, InternalVerification } from './../types/';
2
+ export declare function validateLinkedDomainWithDid(did: string, verification: InternalVerification | ExternalVerification): Promise<void>;
3
+ //# sourceMappingURL=LinkedDomainValidations.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LinkedDomainValidations.d.ts","sourceRoot":"","sources":["../../lib/did/LinkedDomainValidations.ts"],"names":[],"mappings":"AAIA,OAAO,EAAqB,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAA;AAiD3F,wBAAsB,2BAA2B,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,oBAAoB,GAAG,oBAAoB,iBA+BvH"}
@@ -0,0 +1,102 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.validateLinkedDomainWithDid = void 0;
13
+ const wellknown_dids_client_1 = require("@sphereon/wellknown-dids-client");
14
+ const types_1 = require("./../types/");
15
+ const DIDResolution_1 = require("./DIDResolution");
16
+ const DidJWT_1 = require("./DidJWT");
17
+ function getValidationErrorMessages(validationResult) {
18
+ const messages = [];
19
+ if (validationResult.message) {
20
+ messages.push(validationResult.message);
21
+ }
22
+ if (validationResult === null || validationResult === void 0 ? void 0 : validationResult.endpointDescriptors.length) {
23
+ for (const endpointDescriptor of validationResult.endpointDescriptors) {
24
+ if (endpointDescriptor.message) {
25
+ messages.push(endpointDescriptor.message);
26
+ }
27
+ if (endpointDescriptor.resources) {
28
+ for (const resource of endpointDescriptor.resources) {
29
+ if (resource.message) {
30
+ messages.push(resource.message);
31
+ }
32
+ }
33
+ }
34
+ }
35
+ }
36
+ return messages;
37
+ }
38
+ /**
39
+ * @param validationErrorMessages
40
+ * @return returns false if the messages received from wellknown-dids-client makes this invalid for CheckLinkedDomain.IF_PRESENT plus the message itself
41
+ * and true for when we can move on
42
+ */
43
+ function checkInvalidMessages(validationErrorMessages) {
44
+ if (!validationErrorMessages || !validationErrorMessages.length) {
45
+ return { status: false, message: 'linked domain is invalid.' };
46
+ }
47
+ const validMessages = [
48
+ wellknown_dids_client_1.WDCErrors.PROPERTY_LINKED_DIDS_DOES_NOT_CONTAIN_ANY_DOMAIN_LINK_CREDENTIALS.valueOf(),
49
+ wellknown_dids_client_1.WDCErrors.PROPERTY_LINKED_DIDS_NOT_PRESENT.valueOf(),
50
+ wellknown_dids_client_1.WDCErrors.PROPERTY_TYPE_NOT_CONTAIN_VALID_LINKED_DOMAIN.valueOf(),
51
+ wellknown_dids_client_1.WDCErrors.PROPERTY_SERVICE_NOT_PRESENT.valueOf(),
52
+ ];
53
+ for (const validationErrorMessage of validationErrorMessages) {
54
+ if (!validMessages.filter((vm) => validationErrorMessage.includes(vm)).pop()) {
55
+ return { status: false, message: validationErrorMessage };
56
+ }
57
+ }
58
+ return { status: true };
59
+ }
60
+ function validateLinkedDomainWithDid(did, verification) {
61
+ return __awaiter(this, void 0, void 0, function* () {
62
+ const { checkLinkedDomain, resolveOpts, wellknownDIDVerifyCallback } = verification;
63
+ if (checkLinkedDomain === types_1.CheckLinkedDomain.NEVER) {
64
+ return;
65
+ }
66
+ const didDocument = yield (0, DIDResolution_1.resolveDidDocument)(did, Object.assign(Object.assign({}, resolveOpts), { subjectSyntaxTypesSupported: [(0, DidJWT_1.toSIOPRegistrationDidMethod)((0, DidJWT_1.getMethodFromDid)(did))] }));
67
+ if (!didDocument) {
68
+ throw Error(`Could not resolve DID: ${did}`);
69
+ }
70
+ if ((!didDocument.service || !didDocument.service.find((s) => s.type === 'LinkedDomains')) && checkLinkedDomain === types_1.CheckLinkedDomain.IF_PRESENT) {
71
+ // No linked domains in DID document and it was optional. Let's cut it short here.
72
+ return;
73
+ }
74
+ try {
75
+ const validationResult = yield checkWellKnownDid({ didDocument, verifyCallback: wellknownDIDVerifyCallback });
76
+ if (validationResult.status === wellknown_dids_client_1.ValidationStatusEnum.INVALID) {
77
+ const validationErrorMessages = getValidationErrorMessages(validationResult);
78
+ const messageCondition = checkInvalidMessages(validationErrorMessages);
79
+ if (checkLinkedDomain === types_1.CheckLinkedDomain.ALWAYS || (checkLinkedDomain === types_1.CheckLinkedDomain.IF_PRESENT && !messageCondition.status)) {
80
+ throw new Error(messageCondition.message ? messageCondition.message : validationErrorMessages[0]);
81
+ }
82
+ }
83
+ }
84
+ catch (err) {
85
+ const messageCondition = checkInvalidMessages([err.message]);
86
+ if (checkLinkedDomain === types_1.CheckLinkedDomain.ALWAYS || (checkLinkedDomain === types_1.CheckLinkedDomain.IF_PRESENT && !messageCondition.status)) {
87
+ throw new Error(err.message);
88
+ }
89
+ }
90
+ });
91
+ }
92
+ exports.validateLinkedDomainWithDid = validateLinkedDomainWithDid;
93
+ function checkWellKnownDid(args) {
94
+ return __awaiter(this, void 0, void 0, function* () {
95
+ const verifier = new wellknown_dids_client_1.WellKnownDidVerifier({
96
+ verifySignatureCallback: args.verifyCallback,
97
+ onlyVerifyServiceDid: false,
98
+ });
99
+ return yield verifier.verifyDomainLinkage({ didDocument: args.didDocument });
100
+ });
101
+ }
102
+ //# sourceMappingURL=LinkedDomainValidations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LinkedDomainValidations.js","sourceRoot":"","sources":["../../lib/did/LinkedDomainValidations.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export * from './DidJWT';
2
+ export * from './DIDResolution';
3
+ export * from './LinkedDomainValidations';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../lib/did/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA;AACxB,cAAc,iBAAiB,CAAA;AAC/B,cAAc,2BAA2B,CAAA"}
@@ -0,0 +1,20 @@
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);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./DidJWT"), exports);
18
+ __exportStar(require("./DIDResolution"), exports);
19
+ __exportStar(require("./LinkedDomainValidations"), exports);
20
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../lib/did/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAwB;AACxB,kDAA+B;AAC/B,4DAAyC"}
@@ -0,0 +1,5 @@
1
+ import { ExternalSignature, InternalSignature, NoSignature, SuppliedSignature } from './types/SIOP.types';
2
+ export declare const isInternalSignature: (object: InternalSignature | ExternalSignature | SuppliedSignature | NoSignature) => object is InternalSignature;
3
+ export declare const isExternalSignature: (object: InternalSignature | ExternalSignature | SuppliedSignature | NoSignature) => object is ExternalSignature;
4
+ export declare const isSuppliedSignature: (object: InternalSignature | ExternalSignature | SuppliedSignature | NoSignature) => object is SuppliedSignature;
5
+ //# sourceMappingURL=helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../lib/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAEzG,eAAO,MAAM,mBAAmB,WAAY,iBAAiB,GAAG,iBAAiB,GAAG,iBAAiB,GAAG,WAAW,gCACrE,CAAA;AAE9C,eAAO,MAAM,mBAAmB,WAAY,iBAAiB,GAAG,iBAAiB,GAAG,iBAAiB,GAAG,WAAW,gCACtE,CAAA;AAE7C,eAAO,MAAM,mBAAmB,WAAY,iBAAiB,GAAG,iBAAiB,GAAG,iBAAiB,GAAG,WAAW,gCAC5F,CAAA"}
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isSuppliedSignature = exports.isExternalSignature = exports.isInternalSignature = void 0;
4
+ const isInternalSignature = (object) => 'hexPrivateKey' in object && 'did' in object;
5
+ exports.isInternalSignature = isInternalSignature;
6
+ const isExternalSignature = (object) => 'signatureUri' in object && 'did' in object;
7
+ exports.isExternalSignature = isExternalSignature;
8
+ const isSuppliedSignature = (object) => 'signature' in object;
9
+ exports.isSuppliedSignature = isSuppliedSignature;
10
+ //# sourceMappingURL=helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../lib/helpers.ts"],"names":[],"mappings":";;;AAEO,MAAM,mBAAmB,GAAG,CAAC,MAA+E,EAA+B,EAAE,CAClJ,eAAe,IAAI,MAAM,IAAI,KAAK,IAAI,MAAM,CAAA;AADjC,QAAA,mBAAmB,uBACc;AAEvC,MAAM,mBAAmB,GAAG,CAAC,MAA+E,EAA+B,EAAE,CAClJ,cAAc,IAAI,MAAM,IAAI,KAAK,IAAI,MAAM,CAAA;AADhC,QAAA,mBAAmB,uBACa;AAEtC,MAAM,mBAAmB,GAAG,CAAC,MAA+E,EAA+B,EAAE,CAClJ,WAAW,IAAI,MAAM,CAAA;AADV,QAAA,mBAAmB,uBACT"}
@@ -0,0 +1,5 @@
1
+ export * from './did';
2
+ export * from './types';
3
+ export * from './DidJwtAdapter';
4
+ export * from './helpers';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":"AAAA,cAAc,OAAO,CAAA;AAErB,cAAc,SAAS,CAAA;AACvB,cAAc,iBAAiB,CAAA;AAC/B,cAAc,WAAW,CAAA"}
package/dist/index.js ADDED
@@ -0,0 +1,21 @@
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);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./did"), exports);
18
+ __exportStar(require("./types"), exports);
19
+ __exportStar(require("./DidJwtAdapter"), exports);
20
+ __exportStar(require("./helpers"), exports);
21
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wCAAqB;AAErB,0CAAuB;AACvB,kDAA+B;AAC/B,4CAAyB"}
@@ -0,0 +1,63 @@
1
+ import { SigningAlgo } from '@sphereon/did-auth-siop';
2
+ import { VerifyCallback as WellknownDIDVerifyCallback } from '@sphereon/wellknown-dids-client';
3
+ import { JWTVerifyOptions } from 'did-jwt';
4
+ import { Resolvable } from 'did-resolver';
5
+ export declare enum CheckLinkedDomain {
6
+ NEVER = "never",// We don't want to verify Linked domains
7
+ IF_PRESENT = "if_present",// If present, did-auth-siop will check the linked domain, if exist and not valid, throws an exception
8
+ ALWAYS = "always"
9
+ }
10
+ export interface InternalSignature {
11
+ hexPrivateKey: string;
12
+ did: string;
13
+ alg: SigningAlgo;
14
+ kid?: string;
15
+ customJwtSigner?: Signer;
16
+ }
17
+ export interface SuppliedSignature {
18
+ signature: (data: string | Uint8Array) => Promise<EcdsaSignature | string>;
19
+ alg: SigningAlgo;
20
+ did: string;
21
+ kid: string;
22
+ }
23
+ export interface NoSignature {
24
+ hexPublicKey: string;
25
+ did: string;
26
+ kid?: string;
27
+ }
28
+ export interface ExternalSignature {
29
+ signatureUri: string;
30
+ did: string;
31
+ authZToken?: string;
32
+ hexPublicKey?: string;
33
+ alg: SigningAlgo;
34
+ kid?: string;
35
+ }
36
+ export declare enum VerificationMode {
37
+ INTERNAL = 0,
38
+ EXTERNAL = 1
39
+ }
40
+ export interface EcdsaSignature {
41
+ r: string;
42
+ s: string;
43
+ recoveryParam?: number | null;
44
+ }
45
+ export type Signer = (data: string | Uint8Array) => Promise<EcdsaSignature | string>;
46
+ export interface Verification {
47
+ checkLinkedDomain?: CheckLinkedDomain;
48
+ wellknownDIDVerifyCallback?: WellknownDIDVerifyCallback;
49
+ resolveOpts: ResolveOpts;
50
+ }
51
+ export type InternalVerification = Verification;
52
+ export interface ExternalVerification extends Verification {
53
+ verifyUri: string;
54
+ authZToken?: string;
55
+ }
56
+ export interface ResolveOpts {
57
+ jwtVerifyOpts?: JWTVerifyOptions;
58
+ resolver?: Resolvable;
59
+ resolveUrl?: string;
60
+ noUniversalResolverFallback?: boolean;
61
+ subjectSyntaxTypesSupported?: string[];
62
+ }
63
+ //# sourceMappingURL=SIOP.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SIOP.types.d.ts","sourceRoot":"","sources":["../../lib/types/SIOP.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AACrD,OAAO,EAAE,cAAc,IAAI,0BAA0B,EAAE,MAAM,iCAAiC,CAAA;AAC9F,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAEzC,oBAAY,iBAAiB;IAC3B,KAAK,UAAU,CAAE,yCAAyC;IAC1D,UAAU,eAAe,CAAE,sGAAsG;IACjI,MAAM,WAAW;CAClB;AAED,MAAM,WAAW,iBAAiB;IAChC,aAAa,EAAE,MAAM,CAAA;IACrB,GAAG,EAAE,MAAM,CAAA;IAEX,GAAG,EAAE,WAAW,CAAA;IAChB,GAAG,CAAC,EAAE,MAAM,CAAA;IAEZ,eAAe,CAAC,EAAE,MAAM,CAAA;CACzB;AAED,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,KAAK,OAAO,CAAC,cAAc,GAAG,MAAM,CAAC,CAAA;IAE1E,GAAG,EAAE,WAAW,CAAA;IAChB,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,MAAM,CAAA;CACZ;AAED,MAAM,WAAW,WAAW;IAC1B,YAAY,EAAE,MAAM,CAAA;IACpB,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,CAAC,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,iBAAiB;IAChC,YAAY,EAAE,MAAM,CAAA;IACpB,GAAG,EAAE,MAAM,CAAA;IACX,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,YAAY,CAAC,EAAE,MAAM,CAAA;IAErB,GAAG,EAAE,WAAW,CAAA;IAChB,GAAG,CAAC,EAAE,MAAM,CAAA;CACb;AAED,oBAAY,gBAAgB;IAC1B,QAAQ,IAAA;IACR,QAAQ,IAAA;CACT;AAED,MAAM,WAAW,cAAc;IAC7B,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;IACT,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAC9B;AACD,MAAM,MAAM,MAAM,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,KAAK,OAAO,CAAC,cAAc,GAAG,MAAM,CAAC,CAAA;AAEpF,MAAM,WAAW,YAAY;IAC3B,iBAAiB,CAAC,EAAE,iBAAiB,CAAA;IACrC,0BAA0B,CAAC,EAAE,0BAA0B,CAAA;IACvD,WAAW,EAAE,WAAW,CAAA;CACzB;AAED,MAAM,MAAM,oBAAoB,GAAG,YAAY,CAAA;AAE/C,MAAM,WAAW,oBAAqB,SAAQ,YAAY;IACxD,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,WAAW,WAAW;IAC1B,aAAa,CAAC,EAAE,gBAAgB,CAAA;IAChC,QAAQ,CAAC,EAAE,UAAU,CAAA;IACrB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,2BAA2B,CAAC,EAAE,OAAO,CAAA;IACrC,2BAA2B,CAAC,EAAE,MAAM,EAAE,CAAA;CACvC"}
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.VerificationMode = exports.CheckLinkedDomain = void 0;
4
+ var CheckLinkedDomain;
5
+ (function (CheckLinkedDomain) {
6
+ CheckLinkedDomain["NEVER"] = "never";
7
+ CheckLinkedDomain["IF_PRESENT"] = "if_present";
8
+ CheckLinkedDomain["ALWAYS"] = "always";
9
+ })(CheckLinkedDomain || (exports.CheckLinkedDomain = CheckLinkedDomain = {}));
10
+ var VerificationMode;
11
+ (function (VerificationMode) {
12
+ VerificationMode[VerificationMode["INTERNAL"] = 0] = "INTERNAL";
13
+ VerificationMode[VerificationMode["EXTERNAL"] = 1] = "EXTERNAL";
14
+ })(VerificationMode || (exports.VerificationMode = VerificationMode = {}));
15
+ //# sourceMappingURL=SIOP.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SIOP.types.js","sourceRoot":"","sources":["../../lib/types/SIOP.types.ts"],"names":[],"mappings":";;;AAKA,IAAY,iBAIX;AAJD,WAAY,iBAAiB;IAC3B,oCAAe,CAAA;IACf,8CAAyB,CAAA;IACzB,sCAAiB,CAAA;AACnB,CAAC,EAJW,iBAAiB,iCAAjB,iBAAiB,QAI5B;AAoCD,IAAY,gBAGX;AAHD,WAAY,gBAAgB;IAC1B,+DAAQ,CAAA;IACR,+DAAQ,CAAA;AACV,CAAC,EAHW,gBAAgB,gCAAhB,gBAAgB,QAG3B"}
@@ -0,0 +1,15 @@
1
+ import { DIDDocument as DIFDIDDocument } from 'did-resolver';
2
+ export interface LinkedDataProof {
3
+ type: string;
4
+ created: string;
5
+ creator: string;
6
+ nonce: string;
7
+ signatureValue: string;
8
+ }
9
+ export interface DIDDocument extends DIFDIDDocument {
10
+ owner?: string;
11
+ created?: string;
12
+ updated?: string;
13
+ proof?: LinkedDataProof;
14
+ }
15
+ //# sourceMappingURL=SSI.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SSI.types.d.ts","sourceRoot":"","sources":["../../lib/types/SSI.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,IAAI,cAAc,EAAE,MAAM,cAAc,CAAA;AAE5D,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;IACb,cAAc,EAAE,MAAM,CAAA;CACvB;AAED,MAAM,WAAW,WAAY,SAAQ,cAAc;IACjD,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,KAAK,CAAC,EAAE,eAAe,CAAA;CACxB"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=SSI.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SSI.types.js","sourceRoot":"","sources":["../../lib/types/SSI.types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ export * from './SIOP.types';
2
+ export * from './SSI.types';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../lib/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA;AAC5B,cAAc,aAAa,CAAA"}
@@ -0,0 +1,19 @@
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);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./SIOP.types"), exports);
18
+ __exportStar(require("./SSI.types"), exports);
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../lib/types/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+CAA4B;AAC5B,8CAA2B"}