@pagopa/io-react-native-jwt 0.5.0 → 0.6.1
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/LICENSE +201 -20
- package/README.md +14 -0
- package/lib/commonjs/index.js +60 -72
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/jwk/index.js +26 -1
- package/lib/commonjs/jwk/index.js.map +1 -1
- package/lib/commonjs/jwt/index.js +49 -3
- package/lib/commonjs/jwt/index.js.map +1 -1
- package/lib/commonjs/types.js +63 -0
- package/lib/commonjs/types.js.map +1 -1
- package/lib/commonjs/utils/errors.js +23 -1
- package/lib/commonjs/utils/errors.js.map +1 -1
- package/lib/module/index.js +6 -6
- package/lib/module/index.js.map +1 -1
- package/lib/module/jwk/index.js +25 -0
- package/lib/module/jwk/index.js.map +1 -1
- package/lib/module/jwt/index.js +47 -3
- package/lib/module/jwt/index.js.map +1 -1
- package/lib/module/types.js +56 -0
- package/lib/module/types.js.map +1 -1
- package/lib/module/utils/errors.js +20 -0
- package/lib/module/utils/errors.js.map +1 -1
- package/lib/typescript/index.d.ts +7 -6
- package/lib/typescript/index.d.ts.map +1 -1
- package/lib/typescript/jwk/index.d.ts +9 -1
- package/lib/typescript/jwk/index.d.ts.map +1 -1
- package/lib/typescript/jwt/index.d.ts +31 -3
- package/lib/typescript/jwt/index.d.ts.map +1 -1
- package/lib/typescript/types.d.ts +328 -31
- package/lib/typescript/types.d.ts.map +1 -1
- package/lib/typescript/utils/errors.d.ts +14 -0
- package/lib/typescript/utils/errors.d.ts.map +1 -1
- package/package.json +3 -2
- package/src/index.ts +16 -0
- package/src/jwk/index.ts +28 -1
- package/src/jwt/index.ts +58 -5
- package/src/types.ts +43 -32
- package/src/utils/errors.ts +22 -0
- package/src/index.tsx +0 -10
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.JWTInvalid = exports.JWTExpired = exports.JWTClaimValidationFailed = exports.JWSSignatureVerificationFailed = exports.JWSInvalid = exports.JWEInvalid = exports.JOSENotSupported = exports.JOSEError = exports.JOSEAlgNotAllowed = void 0;
|
|
6
|
+
exports.JWTInvalid = exports.JWTExpired = exports.JWTClaimValidationFailed = exports.JWSSignatureVerificationFailed = exports.JWSInvalid = exports.JWKSetInvalid = exports.JWKNotFound = exports.JWEInvalid = exports.JOSENotSupported = exports.JOSEError = exports.JOSEAlgNotAllowed = void 0;
|
|
7
7
|
/**
|
|
8
8
|
* A generic Error that all other JOSE specific Error subclasses extend.
|
|
9
9
|
*
|
|
@@ -237,5 +237,27 @@ class JWEInvalid extends JOSEError {
|
|
|
237
237
|
}
|
|
238
238
|
code = 'ERR_JWE_INVALID';
|
|
239
239
|
}
|
|
240
|
+
|
|
241
|
+
/**
|
|
242
|
+
* An error subclass thrown when a JWKSet is invalid.
|
|
243
|
+
*/
|
|
240
244
|
exports.JWEInvalid = JWEInvalid;
|
|
245
|
+
class JWKSetInvalid extends JOSEError {
|
|
246
|
+
static get code() {
|
|
247
|
+
return 'ERR_JWKS_INVALID';
|
|
248
|
+
}
|
|
249
|
+
code = 'ERR_JWKS_INVALID';
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
/**
|
|
253
|
+
* An error subclass thrown when a JWK is not found.
|
|
254
|
+
*/
|
|
255
|
+
exports.JWKSetInvalid = JWKSetInvalid;
|
|
256
|
+
class JWKNotFound extends JOSEError {
|
|
257
|
+
static get code() {
|
|
258
|
+
return 'ERR_JWK_NOT_FOUND';
|
|
259
|
+
}
|
|
260
|
+
code = 'ERR_JWK_NOT_FOUND';
|
|
261
|
+
}
|
|
262
|
+
exports.JWKNotFound = JWKNotFound;
|
|
241
263
|
//# sourceMappingURL=errors.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["JOSEError","Error","code","constructor","message","_Error$captureStackTr","name","captureStackTrace","call","exports","JWTClaimValidationFailed","claim","arguments","length","undefined","reason","JWTExpired","JOSEAlgNotAllowed","JOSENotSupported","JWTInvalid","JWSInvalid","JWSSignatureVerificationFailed","JWEInvalid"],"sourceRoot":"../../../src","sources":["utils/errors.ts"],"mappings":"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
|
|
1
|
+
{"version":3,"names":["JOSEError","Error","code","constructor","message","_Error$captureStackTr","name","captureStackTrace","call","exports","JWTClaimValidationFailed","claim","arguments","length","undefined","reason","JWTExpired","JOSEAlgNotAllowed","JOSENotSupported","JWTInvalid","JWSInvalid","JWSSignatureVerificationFailed","JWEInvalid","JWKSetInvalid","JWKNotFound"],"sourceRoot":"../../../src","sources":["utils/errors.ts"],"mappings":"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"}
|
package/lib/module/index.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
export
|
|
2
|
-
export
|
|
3
|
-
export
|
|
4
|
-
export
|
|
5
|
-
export
|
|
6
|
-
export
|
|
1
|
+
export { EncryptJwe } from './jwe/index';
|
|
2
|
+
export { decode, isSignatureValid, verify, getJwkFromHeader } from './jwt/index';
|
|
3
|
+
export { thumbprint, getRemoteJWKSet } from './jwk/index';
|
|
4
|
+
export { ProduceJWT } from './jwt/produce';
|
|
5
|
+
export { SignJWT } from './jwt/sign';
|
|
6
|
+
export { UnsecuredJWT } from './jwt/unsecured';
|
|
7
7
|
export { derToJose } from './utils/asn1';
|
|
8
8
|
export { encodeBase64, decodeBase64 } from './utils/base64';
|
|
9
9
|
export { sha256ToBase64 } from './hash';
|
package/lib/module/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["derToJose","encodeBase64","decodeBase64","sha256ToBase64"],"sourceRoot":"../../src","sources":["index.
|
|
1
|
+
{"version":3,"names":["EncryptJwe","decode","isSignatureValid","verify","getJwkFromHeader","thumbprint","getRemoteJWKSet","ProduceJWT","SignJWT","UnsecuredJWT","derToJose","encodeBase64","decodeBase64","sha256ToBase64"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"AAAA,SAASA,UAAU,QAAQ,aAAa;AACxC,SACEC,MAAM,EACNC,gBAAgB,EAChBC,MAAM,EACNC,gBAAgB,QACX,aAAa;AACpB,SAASC,UAAU,EAAEC,eAAe,QAAQ,aAAa;AACzD,SAASC,UAAU,QAAQ,eAAe;AAC1C,SAASC,OAAO,QAAQ,YAAY;AACpC,SAASC,YAAY,QAAQ,iBAAiB;AAG9C,SAASC,SAAS,QAAQ,cAAc;AACxC,SAASC,YAAY,EAAEC,YAAY,QAAQ,gBAAgB;AAC3D,SAASC,cAAc,QAAQ,QAAQ"}
|
package/lib/module/jwk/index.js
CHANGED
|
@@ -1,4 +1,8 @@
|
|
|
1
1
|
import { IoReactNativeJwt } from '../utils/proxy';
|
|
2
|
+
import { WithJWKS } from '../types';
|
|
3
|
+
import { JWKSetInvalid } from '../utils/errors';
|
|
4
|
+
import { decode } from '..';
|
|
5
|
+
|
|
2
6
|
/**
|
|
3
7
|
* Calculate JWK thumbprint
|
|
4
8
|
*
|
|
@@ -19,4 +23,25 @@ import { IoReactNativeJwt } from '../utils/proxy';
|
|
|
19
23
|
* @param jwk JSON Web Key
|
|
20
24
|
*/
|
|
21
25
|
export const thumbprint = jwk => IoReactNativeJwt.thumbprint(jwk);
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* Returns a JSON Web Key Set (JWKS) downloaded from a remote endpoint,
|
|
29
|
+
* that is, for example, an OAuth 2.0 or OIDC jwks_uri.
|
|
30
|
+
*
|
|
31
|
+
* @param url URL string to fetch the JSON Web Key Set from.
|
|
32
|
+
* @param appFetch fetch function (optional)
|
|
33
|
+
*/
|
|
34
|
+
export const getRemoteJWKSet = async function (url) {
|
|
35
|
+
let appFetch = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : fetch;
|
|
36
|
+
let response = await appFetch(url);
|
|
37
|
+
if (response.status === 200) {
|
|
38
|
+
const jwt = await response.text();
|
|
39
|
+
const {
|
|
40
|
+
payload
|
|
41
|
+
} = await decode(jwt);
|
|
42
|
+
const parsedPayload = WithJWKS.parse(payload);
|
|
43
|
+
return parsedPayload.jwks.keys;
|
|
44
|
+
}
|
|
45
|
+
throw new JWKSetInvalid(`Unable to obtain JWKSet from given url. Response status: ${response.status}`);
|
|
46
|
+
};
|
|
22
47
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["IoReactNativeJwt","thumbprint","jwk"],"sourceRoot":"../../../src","sources":["jwk/index.ts"],"mappings":"AAAA,SAASA,gBAAgB,QAAQ,gBAAgB;
|
|
1
|
+
{"version":3,"names":["IoReactNativeJwt","WithJWKS","JWKSetInvalid","decode","thumbprint","jwk","getRemoteJWKSet","url","appFetch","arguments","length","undefined","fetch","response","status","jwt","text","payload","parsedPayload","parse","jwks","keys"],"sourceRoot":"../../../src","sources":["jwk/index.ts"],"mappings":"AAAA,SAASA,gBAAgB,QAAQ,gBAAgB;AACjD,SAASC,QAAQ,QAAa,UAAU;AACxC,SAASC,aAAa,QAAQ,iBAAiB;AAC/C,SAASC,MAAM,QAAQ,IAAI;;AAE3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,UAAU,GAAIC,GAAQ,IACjCL,gBAAgB,CAACI,UAAU,CAACC,GAAG,CAAC;;AAElC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,eAAe,GAAG,eAAAA,CAC7BC,GAAW,EAEQ;EAAA,IADnBC,QAA8B,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAGG,KAAK;EAEtC,IAAIC,QAAQ,GAAG,MAAML,QAAQ,CAACD,GAAG,CAAC;EAElC,IAAIM,QAAQ,CAACC,MAAM,KAAK,GAAG,EAAE;IAC3B,MAAMC,GAAG,GAAG,MAAMF,QAAQ,CAACG,IAAI,CAAC,CAAC;IACjC,MAAM;MAAEC;IAAQ,CAAC,GAAG,MAAMd,MAAM,CAACY,GAAG,CAAC;IACrC,MAAMG,aAAa,GAAGjB,QAAQ,CAACkB,KAAK,CAACF,OAAO,CAAC;IAC7C,OAAOC,aAAa,CAACE,IAAI,CAACC,IAAI;EAChC;EAEA,MAAM,IAAInB,aAAa,CACpB,4DAA2DW,QAAQ,CAACC,MAAO,EAC9E,CAAC;AACH,CAAC"}
|
package/lib/module/jwt/index.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import jwtPayload from './jwt_claims_set';
|
|
2
|
-
import { JWSSignatureVerificationFailed } from '../utils/errors';
|
|
2
|
+
import { JWKNotFound, JWSSignatureVerificationFailed } from '../utils/errors';
|
|
3
3
|
import { IoReactNativeJwt } from '../utils/proxy';
|
|
4
4
|
import { SignJWT } from './sign';
|
|
5
|
+
import { getKtyFromAlg } from '../algorithms';
|
|
5
6
|
export * from './produce';
|
|
6
7
|
export * from './sign';
|
|
7
8
|
export * from './unsecured';
|
|
@@ -70,8 +71,23 @@ export const isSignatureValid = (token, jwk) => IoReactNativeJwt.verify(token, j
|
|
|
70
71
|
* })
|
|
71
72
|
* ```
|
|
72
73
|
*
|
|
74
|
+
* * @example Usage with a JWKSet
|
|
75
|
+
*
|
|
76
|
+
* ```js
|
|
77
|
+
* const wellKnownUrl = 'https://example.com/.well-known/openid-federation';
|
|
78
|
+
* const jwks = await getRemoteJWKSet(wellKnownUrl);
|
|
79
|
+
*
|
|
80
|
+
* const jwt =
|
|
81
|
+
* 'eyJ0eXAiOiJlbnRpdHktc3RhdGVtZW50K2p3dCIsImtpZCI6IkVDIzEiLCJhbGciOiJFUzI1NiJ9.eyJpc3MiOiJodHRwczovL2lvLWQtd2FsbGV0LWl0LmF6dXJld2Vic2l0ZXMubmV0LyIsInN1YiI6Imh0dHBzOi8vaW8tZC13YWxsZXQtaXQuYXp1cmV3ZWJzaXRlcy5uZXQvIiwibWV0YWRhdGEiOnsiZXVkaV93YWxsZXRfcHJvdmlkZXIiOnsiandrcyI6W3siY3J2IjoiUC0yNTYiLCJrdHkiOiJFQyIsIngiOiJxckpyajNBZl9CNTdzYk9JUnJjQk03YnI3d09jOHluajdsSEZQVGVmZlVrIiwieSI6IjFIMGNXRHlHZ3ZVOHcta1BLVV94eWNPQ1VOVDJvMGJ3c2xJUXRuUFU2aU0iLCJraWQiOiJFQyMxIn1dLCJ0b2tlbl9lbmRwb2ludCI6Imh0dHBzOi8vaW8tZC13YWxsZXQtaXQuYXp1cmV3ZWJzaXRlcy5uZXQvdG9rZW4iLCJhc2NfdmFsdWVzX3N1cHBvcnRlZCI6WyJodHRwczovL2lvLWQtd2FsbGV0LWl0LmF6dXJld2Vic2l0ZXMubmV0L0xvQS9iYXNpYyIsImh0dHBzOi8vaW8tZC13YWxsZXQtaXQuYXp1cmV3ZWJzaXRlcy5uZXQvTG9BL21lZGl1bSIsImh0dHBzOi8vaW8tZC13YWxsZXQtaXQuYXp1cmV3ZWJzaXRlcy5uZXQvTG9BL2hpZ2h0Il0sImdyYW50X3R5cGVzX3N1cHBvcnRlZCI6WyJ1cm46aWV0ZjpwYXJhbXM6b2F1dGg6Y2xpZW50LWFzc2VydGlvbi10eXBlOmp3dC1rZXktYXR0ZXN0YXRpb24iXSwidG9rZW5fZW5kcG9pbnRfYXV0aF9tZXRob2RzX3N1cHBvcnRlZCI6WyJwcml2YXRlX2tleV9qd3QiXSwidG9rZW5fZW5kcG9pbnRfYXV0aF9zaWduaW5nX2FsZ192YWx1ZXNfc3VwcG9ydGVkIjpbIkVTMjU2IiwiRVMyNTZLIiwiRVMzODQiLCJFUzUxMiIsIlJTMjU2IiwiUlMzODQiLCJSUzUxMiIsIlBTMjU2IiwiUFMzODQiLCJQUzUxMiJdfSwiZmVkZXJhdGlvbl9lbnRpdHkiOnsib3JnYW5pemF0aW9uX25hbWUiOiJQYWdvUGEgUy5wLkEuIiwiaG9tZXBhZ2VfdXJpIjoiaHR0cHM6Ly9pby5pdGFsaWEuaXQvIiwicG9saWN5X3VyaSI6Imh0dHBzOi8vaW8uaXRhbGlhLml0L3ByaXZhY3ktcG9saWN5LyIsInRvc191cmkiOiJodHRwczovL2lvLml0YWxpYS5pdC9wcml2YWN5LXBvbGljeS8iLCJsb2dvX3VyaSI6Imh0dHBzOi8vaW8uaXRhbGlhLml0L2Fzc2V0cy9pbWcvaW8taXQtbG9nby13aGl0ZS5zdmcifX0sImlhdCI6MTY4OTIzNjYzNSwiZXhwIjoxNjg5MjQwMjM1fQ.6wA0M6rNYNSFN_EylzMA6ElAibW7FVSZyoLNEkHU5c_RKuiNenT08YIMvbysYautLZotUedEMP5xCyNpY34x6Q'
|
|
82
|
+
*
|
|
83
|
+
* const { payload, protectedHeader } = await verify(jwt, jwks, {
|
|
84
|
+
* typ: 'entity-statement+jwt',
|
|
85
|
+
* requiredClaims: ['iss', 'sub', 'metadata'],
|
|
86
|
+
* })
|
|
87
|
+
* ```
|
|
88
|
+
*
|
|
73
89
|
* @param jwt JSON Web Token value (encoded as JWS).
|
|
74
|
-
* @param key Public key to verify the JWT in JWK format.
|
|
90
|
+
* @param key Public key to verify the JWT in JWK format or JWKS (array of JWK).
|
|
75
91
|
* @param options JWT Decryption and JWT Claims Set validation options.
|
|
76
92
|
*/
|
|
77
93
|
export const verify = async function (token, jwk) {
|
|
@@ -80,7 +96,8 @@ export const verify = async function (token, jwk) {
|
|
|
80
96
|
protectedHeader,
|
|
81
97
|
payload
|
|
82
98
|
} = await decode(token);
|
|
83
|
-
const
|
|
99
|
+
const selectedJwk = Array.isArray(jwk) ? getJwkFromHeader(protectedHeader, jwk) : jwk;
|
|
100
|
+
const signatureIsValid = await isSignatureValid(token, selectedJwk);
|
|
84
101
|
if (signatureIsValid) {
|
|
85
102
|
const verifiedPayload = jwtPayload(protectedHeader, payload, options);
|
|
86
103
|
return {
|
|
@@ -91,4 +108,31 @@ export const verify = async function (token, jwk) {
|
|
|
91
108
|
throw new JWSSignatureVerificationFailed();
|
|
92
109
|
}
|
|
93
110
|
};
|
|
111
|
+
|
|
112
|
+
/**
|
|
113
|
+
* Given the header of a JWT return the corresponding key from a JWKS.
|
|
114
|
+
*
|
|
115
|
+
* It uses the "alg" (JWS Algorithm) Header Parameter to determine the right JWK "kty" (Key Type),
|
|
116
|
+
* then proceeds to match the JWK "kid" (Key ID) with one found in the JWS Header Parameters (if
|
|
117
|
+
* there is one).
|
|
118
|
+
* Only a single public key must match the selection process.
|
|
119
|
+
*
|
|
120
|
+
* @param header JWT header
|
|
121
|
+
* @param jwks Json Web Key Set (JWKS)
|
|
122
|
+
*
|
|
123
|
+
*/
|
|
124
|
+
export const getJwkFromHeader = (header, jwks) => {
|
|
125
|
+
const {
|
|
126
|
+
alg,
|
|
127
|
+
kid
|
|
128
|
+
} = header;
|
|
129
|
+
if (alg && kid) {
|
|
130
|
+
const kty = getKtyFromAlg(alg);
|
|
131
|
+
const filteredJwks = jwks.find(el => el.kty === kty && el.kid === kid);
|
|
132
|
+
if (filteredJwks) {
|
|
133
|
+
return filteredJwks;
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
throw new JWKNotFound(`No JWKs found that match alg:${alg} and kid:${kid}`);
|
|
137
|
+
};
|
|
94
138
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["jwtPayload","JWSSignatureVerificationFailed","IoReactNativeJwt","SignJWT","derToJose","encodeBase64","decodeBase64","sha256ToBase64","decode","token","isSignatureValid","jwk","verify","options","arguments","length","undefined","protectedHeader","payload","signatureIsValid","verifiedPayload"],"sourceRoot":"../../../src","sources":["jwt/index.ts"],"mappings":"
|
|
1
|
+
{"version":3,"names":["jwtPayload","JWKNotFound","JWSSignatureVerificationFailed","IoReactNativeJwt","SignJWT","getKtyFromAlg","derToJose","encodeBase64","decodeBase64","sha256ToBase64","decode","token","isSignatureValid","jwk","verify","options","arguments","length","undefined","protectedHeader","payload","selectedJwk","Array","isArray","getJwkFromHeader","signatureIsValid","verifiedPayload","header","jwks","alg","kid","kty","filteredJwks","find","el"],"sourceRoot":"../../../src","sources":["jwt/index.ts"],"mappings":"AAKA,OAAOA,UAAU,MAAM,kBAAkB;AACzC,SAASC,WAAW,EAAEC,8BAA8B,QAAQ,iBAAiB;AAC7E,SAASC,gBAAgB,QAAQ,gBAAgB;AACjD,SAASC,OAAO,QAAQ,QAAQ;AAEhC,SAASC,aAAa,QAAQ,eAAe;AAE7C,cAAc,WAAW;AACzB,cAAc,QAAQ;AACtB,cAAc,aAAa;AAC3B,SAASC,SAAS,QAAQ,eAAe;AACzC,SAASC,YAAY,EAAEC,YAAY,QAAQ,iBAAiB;AAC5D,SAASC,cAAc,QAAQ,SAAS;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,MAAM,GAAIC,KAAa,IAAsBP,OAAO,CAACM,MAAM,CAACC,KAAK,CAAC;;AAE/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,gBAAgB,GAAGA,CAACD,KAAa,EAAEE,GAAQ,KACtDV,gBAAgB,CAACW,MAAM,CAACH,KAAK,EAAEE,GAAG,CAAC;;AAErC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,MAAM,GAAG,eAAAA,CACpBH,KAAa,EACbE,GAAgB,EAEa;EAAA,IAD7BE,OAAoC,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;EAEzC,MAAM;IAAEG,eAAe;IAAEC;EAAQ,CAAC,GAAG,MAAMV,MAAM,CAACC,KAAK,CAAC;EAExD,MAAMU,WAAW,GAAGC,KAAK,CAACC,OAAO,CAACV,GAAG,CAAC,GAClCW,gBAAgB,CAACL,eAAe,EAAEN,GAAG,CAAC,GACtCA,GAAG;EAEP,MAAMY,gBAAgB,GAAG,MAAMb,gBAAgB,CAACD,KAAK,EAAEU,WAAW,CAAC;EACnE,IAAII,gBAAgB,EAAE;IACpB,MAAMC,eAAe,GAAG1B,UAAU,CAACmB,eAAe,EAAEC,OAAO,EAAEL,OAAO,CAAC;IACrE,OAAO;MAAEK,OAAO,EAAEM,eAAe;MAAEP;IAAgB,CAAC;EACtD,CAAC,MAAM;IACL,MAAM,IAAIjB,8BAA8B,CAAC,CAAC;EAC5C;AACF,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMsB,gBAAgB,GAAGA,CAC9BG,MAA2B,EAC3BC,IAAW,KACH;EACR,MAAM;IAAEC,GAAG;IAAEC;EAAI,CAAC,GAAGH,MAAM;EAC3B,IAAIE,GAAG,IAAIC,GAAG,EAAE;IACd,MAAMC,GAAG,GAAG1B,aAAa,CAACwB,GAAG,CAAC;IAC9B,MAAMG,YAAY,GAAGJ,IAAI,CAACK,IAAI,CAAEC,EAAE,IAAKA,EAAE,CAACH,GAAG,KAAKA,GAAG,IAAIG,EAAE,CAACJ,GAAG,KAAKA,GAAG,CAAC;IAExE,IAAIE,YAAY,EAAE;MAChB,OAAOA,YAAY;IACrB;EACF;EAEA,MAAM,IAAI/B,WAAW,CAAE,gCAA+B4B,GAAI,YAAWC,GAAI,EAAC,CAAC;AAC7E,CAAC"}
|
package/lib/module/types.js
CHANGED
|
@@ -1,2 +1,58 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
1
2
|
|
|
3
|
+
/** Recognized JWS Header Parameters, any other Header Members may also be present. */
|
|
4
|
+
|
|
5
|
+
/** Recognized Compact JWS Header Parameters, any other Header Members may also be present. */
|
|
6
|
+
|
|
7
|
+
/** Recognized JWE Header Parameters, any other Header members may also be present. */
|
|
8
|
+
|
|
9
|
+
/** Recognized JWT Claims Set members, any other members may also be present. */
|
|
10
|
+
|
|
11
|
+
/** JWT Claims Set verification options. */
|
|
12
|
+
|
|
13
|
+
export const JWK = z.object({
|
|
14
|
+
'alg': z.string().optional(),
|
|
15
|
+
'crv': z.string().optional(),
|
|
16
|
+
'd': z.string().optional(),
|
|
17
|
+
'dp': z.string().optional(),
|
|
18
|
+
'dq': z.string().optional(),
|
|
19
|
+
'e': z.string().optional(),
|
|
20
|
+
/** JWK "ext" (Extractable) Parameter. */
|
|
21
|
+
'ext': z.boolean().optional(),
|
|
22
|
+
'k': z.string().optional(),
|
|
23
|
+
/** JWK "key_ops" (Key Operations) Parameter. */
|
|
24
|
+
'key_ops': z.array(z.string()).optional(),
|
|
25
|
+
/** JWK "kid" (Key ID) Parameter. */
|
|
26
|
+
'kid': z.string().optional(),
|
|
27
|
+
/** JWK "kty" (Key Type) Parameter.
|
|
28
|
+
* This attribute is required to discriminate the
|
|
29
|
+
* type of EC/RSA algorithm */
|
|
30
|
+
'kty': z.string(),
|
|
31
|
+
'n': z.string().optional(),
|
|
32
|
+
'oth': z.array(z.object({
|
|
33
|
+
d: z.string().optional(),
|
|
34
|
+
r: z.string().optional(),
|
|
35
|
+
t: z.string().optional()
|
|
36
|
+
})).optional(),
|
|
37
|
+
'p': z.string().optional(),
|
|
38
|
+
'q': z.string().optional(),
|
|
39
|
+
'qi': z.string().optional(),
|
|
40
|
+
/** JWK "use" (Public Key Use) Parameter. */
|
|
41
|
+
'use': z.string().optional(),
|
|
42
|
+
'x': z.string().optional(),
|
|
43
|
+
'y': z.string().optional(),
|
|
44
|
+
/** JWK "x5c" (X.509 Certificate Chain) Parameter. */
|
|
45
|
+
'x5c': z.array(z.string()).optional(),
|
|
46
|
+
/** JWK "x5t" (X.509 Certificate SHA-1 Thumbprint) Parameter. */
|
|
47
|
+
'x5t': z.string().optional(),
|
|
48
|
+
/** "x5t#S256" (X.509 Certificate SHA-256 Thumbprint) Parameter. */
|
|
49
|
+
'x5t#S256': z.string().optional(),
|
|
50
|
+
/** JWK "x5u" (X.509 URL) Parameter. */
|
|
51
|
+
'x5u': z.string().optional()
|
|
52
|
+
});
|
|
53
|
+
export const WithJWKS = z.object({
|
|
54
|
+
jwks: z.object({
|
|
55
|
+
keys: z.array(JWK)
|
|
56
|
+
})
|
|
57
|
+
});
|
|
2
58
|
//# sourceMappingURL=types.js.map
|
package/lib/module/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sourceRoot":"../../src","sources":["types.ts"],"mappings":""}
|
|
1
|
+
{"version":3,"names":["z","JWK","object","string","optional","boolean","array","d","r","t","WithJWKS","jwks","keys"],"sourceRoot":"../../src","sources":["types.ts"],"mappings":"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"}
|
|
@@ -223,4 +223,24 @@ export class JWEInvalid extends JOSEError {
|
|
|
223
223
|
}
|
|
224
224
|
code = 'ERR_JWE_INVALID';
|
|
225
225
|
}
|
|
226
|
+
|
|
227
|
+
/**
|
|
228
|
+
* An error subclass thrown when a JWKSet is invalid.
|
|
229
|
+
*/
|
|
230
|
+
export class JWKSetInvalid extends JOSEError {
|
|
231
|
+
static get code() {
|
|
232
|
+
return 'ERR_JWKS_INVALID';
|
|
233
|
+
}
|
|
234
|
+
code = 'ERR_JWKS_INVALID';
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
/**
|
|
238
|
+
* An error subclass thrown when a JWK is not found.
|
|
239
|
+
*/
|
|
240
|
+
export class JWKNotFound extends JOSEError {
|
|
241
|
+
static get code() {
|
|
242
|
+
return 'ERR_JWK_NOT_FOUND';
|
|
243
|
+
}
|
|
244
|
+
code = 'ERR_JWK_NOT_FOUND';
|
|
245
|
+
}
|
|
226
246
|
//# sourceMappingURL=errors.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["JOSEError","Error","code","constructor","message","_Error$captureStackTr","name","captureStackTrace","call","JWTClaimValidationFailed","claim","arguments","length","undefined","reason","JWTExpired","JOSEAlgNotAllowed","JOSENotSupported","JWTInvalid","JWSInvalid","JWSSignatureVerificationFailed","JWEInvalid"],"sourceRoot":"../../../src","sources":["utils/errors.ts"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["JOSEError","Error","code","constructor","message","_Error$captureStackTr","name","captureStackTrace","call","JWTClaimValidationFailed","claim","arguments","length","undefined","reason","JWTExpired","JOSEAlgNotAllowed","JOSENotSupported","JWTInvalid","JWSInvalid","JWSSignatureVerificationFailed","JWEInvalid","JWKSetInvalid","JWKNotFound"],"sourceRoot":"../../../src","sources":["utils/errors.ts"],"mappings":"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"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
export
|
|
2
|
-
export
|
|
3
|
-
export
|
|
4
|
-
export
|
|
5
|
-
export
|
|
6
|
-
export
|
|
1
|
+
export { EncryptJwe } from './jwe/index';
|
|
2
|
+
export { decode, isSignatureValid, verify, getJwkFromHeader, } from './jwt/index';
|
|
3
|
+
export { thumbprint, getRemoteJWKSet } from './jwk/index';
|
|
4
|
+
export { ProduceJWT } from './jwt/produce';
|
|
5
|
+
export { SignJWT } from './jwt/sign';
|
|
6
|
+
export { UnsecuredJWT } from './jwt/unsecured';
|
|
7
|
+
export type { UnsecuredResult } from './jwt/unsecured';
|
|
7
8
|
export { derToJose } from './utils/asn1';
|
|
8
9
|
export { encodeBase64, decodeBase64 } from './utils/base64';
|
|
9
10
|
export { sha256ToBase64 } from './hash';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EACL,MAAM,EACN,gBAAgB,EAChB,MAAM,EACN,gBAAgB,GACjB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,YAAY,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAEvD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { JWK } from '../types';
|
|
2
2
|
/**
|
|
3
3
|
* Calculate JWK thumbprint
|
|
4
4
|
*
|
|
@@ -19,4 +19,12 @@ import type { JWK } from '../types';
|
|
|
19
19
|
* @param jwk JSON Web Key
|
|
20
20
|
*/
|
|
21
21
|
export declare const thumbprint: (jwk: JWK) => Promise<string>;
|
|
22
|
+
/**
|
|
23
|
+
* Returns a JSON Web Key Set (JWKS) downloaded from a remote endpoint,
|
|
24
|
+
* that is, for example, an OAuth 2.0 or OIDC jwks_uri.
|
|
25
|
+
*
|
|
26
|
+
* @param url URL string to fetch the JSON Web Key Set from.
|
|
27
|
+
* @param appFetch fetch function (optional)
|
|
28
|
+
*/
|
|
29
|
+
export declare const getRemoteJWKSet: (url: string, appFetch?: GlobalFetch['fetch']) => Promise<JWK[]>;
|
|
22
30
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/jwk/index.ts"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/jwk/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAY,GAAG,EAAE,MAAM,UAAU,CAAC;AAIzC;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,UAAU,QAAS,GAAG,KAAG,QAAQ,MAAM,CAClB,CAAC;AAEnC;;;;;;GAMG;AACH,eAAO,MAAM,eAAe,QACrB,MAAM,aACD,WAAW,CAAC,OAAO,CAAC,KAC7B,QAAQ,GAAG,EAAE,CAaf,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { JWTClaimVerificationOptions, JWTDecodeResult } from '../types';
|
|
1
|
+
import type { JWSHeaderParameters, JWTClaimVerificationOptions, JWTDecodeResult } from '../types';
|
|
2
2
|
import type { JWK } from '../types';
|
|
3
3
|
export * from './produce';
|
|
4
4
|
export * from './sign';
|
|
@@ -66,9 +66,37 @@ export declare const isSignatureValid: (token: string, jwk: JWK) => Promise<bool
|
|
|
66
66
|
* })
|
|
67
67
|
* ```
|
|
68
68
|
*
|
|
69
|
+
* * @example Usage with a JWKSet
|
|
70
|
+
*
|
|
71
|
+
* ```js
|
|
72
|
+
* const wellKnownUrl = 'https://example.com/.well-known/openid-federation';
|
|
73
|
+
* const jwks = await getRemoteJWKSet(wellKnownUrl);
|
|
74
|
+
*
|
|
75
|
+
* const jwt =
|
|
76
|
+
* 'eyJ0eXAiOiJlbnRpdHktc3RhdGVtZW50K2p3dCIsImtpZCI6IkVDIzEiLCJhbGciOiJFUzI1NiJ9.eyJpc3MiOiJodHRwczovL2lvLWQtd2FsbGV0LWl0LmF6dXJld2Vic2l0ZXMubmV0LyIsInN1YiI6Imh0dHBzOi8vaW8tZC13YWxsZXQtaXQuYXp1cmV3ZWJzaXRlcy5uZXQvIiwibWV0YWRhdGEiOnsiZXVkaV93YWxsZXRfcHJvdmlkZXIiOnsiandrcyI6W3siY3J2IjoiUC0yNTYiLCJrdHkiOiJFQyIsIngiOiJxckpyajNBZl9CNTdzYk9JUnJjQk03YnI3d09jOHluajdsSEZQVGVmZlVrIiwieSI6IjFIMGNXRHlHZ3ZVOHcta1BLVV94eWNPQ1VOVDJvMGJ3c2xJUXRuUFU2aU0iLCJraWQiOiJFQyMxIn1dLCJ0b2tlbl9lbmRwb2ludCI6Imh0dHBzOi8vaW8tZC13YWxsZXQtaXQuYXp1cmV3ZWJzaXRlcy5uZXQvdG9rZW4iLCJhc2NfdmFsdWVzX3N1cHBvcnRlZCI6WyJodHRwczovL2lvLWQtd2FsbGV0LWl0LmF6dXJld2Vic2l0ZXMubmV0L0xvQS9iYXNpYyIsImh0dHBzOi8vaW8tZC13YWxsZXQtaXQuYXp1cmV3ZWJzaXRlcy5uZXQvTG9BL21lZGl1bSIsImh0dHBzOi8vaW8tZC13YWxsZXQtaXQuYXp1cmV3ZWJzaXRlcy5uZXQvTG9BL2hpZ2h0Il0sImdyYW50X3R5cGVzX3N1cHBvcnRlZCI6WyJ1cm46aWV0ZjpwYXJhbXM6b2F1dGg6Y2xpZW50LWFzc2VydGlvbi10eXBlOmp3dC1rZXktYXR0ZXN0YXRpb24iXSwidG9rZW5fZW5kcG9pbnRfYXV0aF9tZXRob2RzX3N1cHBvcnRlZCI6WyJwcml2YXRlX2tleV9qd3QiXSwidG9rZW5fZW5kcG9pbnRfYXV0aF9zaWduaW5nX2FsZ192YWx1ZXNfc3VwcG9ydGVkIjpbIkVTMjU2IiwiRVMyNTZLIiwiRVMzODQiLCJFUzUxMiIsIlJTMjU2IiwiUlMzODQiLCJSUzUxMiIsIlBTMjU2IiwiUFMzODQiLCJQUzUxMiJdfSwiZmVkZXJhdGlvbl9lbnRpdHkiOnsib3JnYW5pemF0aW9uX25hbWUiOiJQYWdvUGEgUy5wLkEuIiwiaG9tZXBhZ2VfdXJpIjoiaHR0cHM6Ly9pby5pdGFsaWEuaXQvIiwicG9saWN5X3VyaSI6Imh0dHBzOi8vaW8uaXRhbGlhLml0L3ByaXZhY3ktcG9saWN5LyIsInRvc191cmkiOiJodHRwczovL2lvLml0YWxpYS5pdC9wcml2YWN5LXBvbGljeS8iLCJsb2dvX3VyaSI6Imh0dHBzOi8vaW8uaXRhbGlhLml0L2Fzc2V0cy9pbWcvaW8taXQtbG9nby13aGl0ZS5zdmcifX0sImlhdCI6MTY4OTIzNjYzNSwiZXhwIjoxNjg5MjQwMjM1fQ.6wA0M6rNYNSFN_EylzMA6ElAibW7FVSZyoLNEkHU5c_RKuiNenT08YIMvbysYautLZotUedEMP5xCyNpY34x6Q'
|
|
77
|
+
*
|
|
78
|
+
* const { payload, protectedHeader } = await verify(jwt, jwks, {
|
|
79
|
+
* typ: 'entity-statement+jwt',
|
|
80
|
+
* requiredClaims: ['iss', 'sub', 'metadata'],
|
|
81
|
+
* })
|
|
82
|
+
* ```
|
|
83
|
+
*
|
|
69
84
|
* @param jwt JSON Web Token value (encoded as JWS).
|
|
70
|
-
* @param key Public key to verify the JWT in JWK format.
|
|
85
|
+
* @param key Public key to verify the JWT in JWK format or JWKS (array of JWK).
|
|
71
86
|
* @param options JWT Decryption and JWT Claims Set validation options.
|
|
72
87
|
*/
|
|
73
|
-
export declare const verify: (token: string, jwk: JWK, options?: JWTClaimVerificationOptions) => Promise<JWTDecodeResult>;
|
|
88
|
+
export declare const verify: (token: string, jwk: JWK | JWK[], options?: JWTClaimVerificationOptions) => Promise<JWTDecodeResult>;
|
|
89
|
+
/**
|
|
90
|
+
* Given the header of a JWT return the corresponding key from a JWKS.
|
|
91
|
+
*
|
|
92
|
+
* It uses the "alg" (JWS Algorithm) Header Parameter to determine the right JWK "kty" (Key Type),
|
|
93
|
+
* then proceeds to match the JWK "kid" (Key ID) with one found in the JWS Header Parameters (if
|
|
94
|
+
* there is one).
|
|
95
|
+
* Only a single public key must match the selection process.
|
|
96
|
+
*
|
|
97
|
+
* @param header JWT header
|
|
98
|
+
* @param jwks Json Web Key Set (JWKS)
|
|
99
|
+
*
|
|
100
|
+
*/
|
|
101
|
+
export declare const getJwkFromHeader: (header: JWSHeaderParameters, jwks: JWK[]) => JWK;
|
|
74
102
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/jwt/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/jwt/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,mBAAmB,EACnB,2BAA2B,EAC3B,eAAe,EAChB,MAAM,UAAU,CAAC;AAKlB,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAGpC,cAAc,WAAW,CAAC;AAC1B,cAAc,QAAQ,CAAC;AACvB,cAAc,aAAa,CAAC;AAC5B,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AACzC;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,MAAM,UAAW,MAAM,KAAG,eAAwC,CAAC;AAEhF;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,eAAO,MAAM,gBAAgB,UAAW,MAAM,OAAO,GAAG,KAAG,QAAQ,OAAO,CACrC,CAAC;AAEtC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AACH,eAAO,MAAM,MAAM,UACV,MAAM,OACR,GAAG,GAAG,GAAG,EAAE,YACP,2BAA2B,KACnC,QAAQ,eAAe,CAczB,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,gBAAgB,WACnB,mBAAmB,QACrB,GAAG,EAAE,KACV,GAYF,CAAC"}
|