@pagopa/io-react-native-jwt 0.4.1 → 0.6.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.
Files changed (87) hide show
  1. package/README.md +14 -0
  2. package/android/src/main/java/com/pagopa/ioreactnativejwt/IoReactNativeJwtModule.kt +35 -15
  3. package/ios/IoReactNativeJwt.mm +6 -0
  4. package/ios/IoReactNativeJwt.swift +63 -0
  5. package/lib/commonjs/index.js +42 -125
  6. package/lib/commonjs/index.js.map +1 -1
  7. package/lib/commonjs/jwe/index.js +41 -0
  8. package/lib/commonjs/jwe/index.js.map +1 -0
  9. package/lib/commonjs/jwk/index.js +54 -0
  10. package/lib/commonjs/jwk/index.js.map +1 -0
  11. package/lib/commonjs/jwt/index.js +217 -0
  12. package/lib/commonjs/jwt/index.js.map +1 -0
  13. package/lib/commonjs/{jwt_claims_set.js → jwt/jwt_claims_set.js} +2 -2
  14. package/lib/commonjs/jwt/jwt_claims_set.js.map +1 -0
  15. package/lib/commonjs/{produce.js → jwt/produce.js} +2 -2
  16. package/lib/commonjs/jwt/produce.js.map +1 -0
  17. package/lib/commonjs/{sign.js → jwt/sign.js} +4 -4
  18. package/lib/commonjs/jwt/sign.js.map +1 -0
  19. package/lib/commonjs/{unsecured.js → jwt/unsecured.js} +2 -2
  20. package/lib/commonjs/jwt/unsecured.js.map +1 -0
  21. package/lib/commonjs/types.js +63 -0
  22. package/lib/commonjs/types.js.map +1 -1
  23. package/lib/commonjs/utils/errors.js +50 -1
  24. package/lib/commonjs/utils/errors.js.map +1 -1
  25. package/lib/module/index.js +6 -111
  26. package/lib/module/index.js.map +1 -1
  27. package/lib/module/jwe/index.js +35 -0
  28. package/lib/module/jwe/index.js.map +1 -0
  29. package/lib/module/jwk/index.js +47 -0
  30. package/lib/module/jwk/index.js.map +1 -0
  31. package/lib/module/jwt/index.js +138 -0
  32. package/lib/module/jwt/index.js.map +1 -0
  33. package/lib/module/{jwt_claims_set.js → jwt/jwt_claims_set.js} +2 -2
  34. package/lib/module/jwt/jwt_claims_set.js.map +1 -0
  35. package/lib/module/{produce.js → jwt/produce.js} +2 -2
  36. package/lib/module/jwt/produce.js.map +1 -0
  37. package/lib/module/{sign.js → jwt/sign.js} +4 -4
  38. package/lib/module/jwt/sign.js.map +1 -0
  39. package/lib/module/{unsecured.js → jwt/unsecured.js} +2 -2
  40. package/lib/module/jwt/unsecured.js.map +1 -0
  41. package/lib/module/types.js +56 -0
  42. package/lib/module/types.js.map +1 -1
  43. package/lib/module/utils/errors.js +46 -0
  44. package/lib/module/utils/errors.js.map +1 -1
  45. package/lib/typescript/index.d.ts +6 -89
  46. package/lib/typescript/index.d.ts.map +1 -1
  47. package/lib/typescript/jwe/index.d.ts +32 -0
  48. package/lib/typescript/jwe/index.d.ts.map +1 -0
  49. package/lib/typescript/jwk/index.d.ts +30 -0
  50. package/lib/typescript/jwk/index.d.ts.map +1 -0
  51. package/lib/typescript/jwt/index.d.ts +102 -0
  52. package/lib/typescript/jwt/index.d.ts.map +1 -0
  53. package/lib/typescript/{jwt_claims_set.d.ts → jwt/jwt_claims_set.d.ts} +1 -1
  54. package/lib/typescript/jwt/jwt_claims_set.d.ts.map +1 -0
  55. package/lib/typescript/{produce.d.ts → jwt/produce.d.ts} +1 -1
  56. package/lib/typescript/jwt/produce.d.ts.map +1 -0
  57. package/lib/typescript/{sign.d.ts → jwt/sign.d.ts} +1 -1
  58. package/lib/typescript/jwt/sign.d.ts.map +1 -0
  59. package/lib/typescript/{unsecured.d.ts → jwt/unsecured.d.ts} +1 -1
  60. package/lib/typescript/jwt/unsecured.d.ts.map +1 -0
  61. package/lib/typescript/types.d.ts +348 -46
  62. package/lib/typescript/types.d.ts.map +1 -1
  63. package/lib/typescript/utils/errors.d.ts +37 -0
  64. package/lib/typescript/utils/errors.d.ts.map +1 -1
  65. package/package.json +3 -2
  66. package/src/index.tsx +6 -116
  67. package/src/jwe/index.ts +45 -0
  68. package/src/jwk/index.ts +51 -0
  69. package/src/jwt/index.ts +148 -0
  70. package/src/{jwt_claims_set.ts → jwt/jwt_claims_set.ts} +3 -3
  71. package/src/{produce.ts → jwt/produce.ts} +3 -3
  72. package/src/{sign.ts → jwt/sign.ts} +5 -5
  73. package/src/{unsecured.ts → jwt/unsecured.ts} +3 -3
  74. package/src/types.ts +67 -48
  75. package/src/utils/errors.ts +49 -0
  76. package/lib/commonjs/jwt_claims_set.js.map +0 -1
  77. package/lib/commonjs/produce.js.map +0 -1
  78. package/lib/commonjs/sign.js.map +0 -1
  79. package/lib/commonjs/unsecured.js.map +0 -1
  80. package/lib/module/jwt_claims_set.js.map +0 -1
  81. package/lib/module/produce.js.map +0 -1
  82. package/lib/module/sign.js.map +0 -1
  83. package/lib/module/unsecured.js.map +0 -1
  84. package/lib/typescript/jwt_claims_set.d.ts.map +0 -1
  85. package/lib/typescript/produce.d.ts.map +0 -1
  86. package/lib/typescript/sign.d.ts.map +0 -1
  87. package/lib/typescript/unsecured.d.ts.map +0 -1
@@ -0,0 +1,35 @@
1
+ import { IoReactNativeJwt } from '../utils/proxy';
2
+
3
+ /**
4
+ * The EncryptJwe class is used to build and encrypt Flattened JWE objects.
5
+ *
6
+ * @example Usage
7
+ *
8
+ * ```js
9
+ * const jwe = await new EncryptJwe(
10
+ * new TextEncoder().encode('It’s a dangerous business, Frodo, going out your door.', { alg: 'RSA-OAEP-256', enc: 'A256GCM' }),
11
+ * )
12
+ * .encrypt(publicKey)
13
+ *
14
+ * console.log(jwe)
15
+ * ```
16
+ */
17
+ export class EncryptJwe {
18
+ /** @param plaintext String representation of the plaintext to encrypt. */
19
+ /** @param header JWE header with alg and enc parameters. */
20
+ constructor(plaintext, header) {
21
+ this._plaintext = plaintext;
22
+ this._protectedHeader = header;
23
+ }
24
+
25
+ /**
26
+ * Encrypts and resolves the value of the Flattened JWE object.
27
+ *
28
+ * @param key Public Key or Secret to encrypt the JWE with. See
29
+ */
30
+ async encrypt(key) {
31
+ let jwe = await IoReactNativeJwt.enc(this._plaintext, this._protectedHeader, key);
32
+ return jwe;
33
+ }
34
+ }
35
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["IoReactNativeJwt","EncryptJwe","constructor","plaintext","header","_plaintext","_protectedHeader","encrypt","key","jwe","enc"],"sourceRoot":"../../../src","sources":["jwe/index.ts"],"mappings":"AACA,SAASA,gBAAgB,QAAQ,gBAAgB;;AAEjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,UAAU,CAAC;EAItB;EACA;EACAC,WAAWA,CACTC,SAAiB,EACjBC,MAA0D,EAC1D;IACA,IAAI,CAACC,UAAU,GAAGF,SAAS;IAC3B,IAAI,CAACG,gBAAgB,GAAGF,MAAM;EAChC;;EAEA;AACF;AACA;AACA;AACA;EACE,MAAMG,OAAOA,CAACC,GAAQ,EAAmB;IACvC,IAAIC,GAAG,GAAG,MAAMT,gBAAgB,CAACU,GAAG,CAClC,IAAI,CAACL,UAAU,EACf,IAAI,CAACC,gBAAgB,EACrBE,GACF,CAAC;IACD,OAAOC,GAAG;EACZ;AACF"}
@@ -0,0 +1,47 @@
1
+ import { IoReactNativeJwt } from '../utils/proxy';
2
+ import { WithJWKS } from '../types';
3
+ import { JWKSetInvalid } from '../utils/errors';
4
+ import { decode } from '..';
5
+
6
+ /**
7
+ * Calculate JWK thumbprint
8
+ *
9
+ * @example Get JWK thumbprint
10
+ *
11
+ * ```js
12
+ * const jwk: JWK = {
13
+ * crv: 'P-256',
14
+ * kty: 'EC',
15
+ * x: 'qrJrj3Af_B57sbOIRrcBM7br7wOc8ynj7lHFPTeffUk',
16
+ * y: '1H0cWDyGgvU8w-kPKU_xycOCUNT2o0bwslIQtnPU6iM',
17
+ * };
18
+
19
+ * const thumbprint = await thumbprint(jwk)
20
+ *
21
+ * ```
22
+ *
23
+ * @param jwk JSON Web Key
24
+ */
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
+ };
47
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,138 @@
1
+ import jwtPayload from './jwt_claims_set';
2
+ import { JWKNotFound, JWSSignatureVerificationFailed } from '../utils/errors';
3
+ import { IoReactNativeJwt } from '../utils/proxy';
4
+ import { SignJWT } from './sign';
5
+ import { getKtyFromAlg } from '../algorithms';
6
+ export * from './produce';
7
+ export * from './sign';
8
+ export * from './unsecured';
9
+ export { derToJose } from '../utils/asn1';
10
+ export { encodeBase64, decodeBase64 } from '../utils/base64';
11
+ export { sha256ToBase64 } from '../hash';
12
+ /**
13
+ * Decode the JWT without validation.
14
+ *
15
+ * @example Usage with a public JWK encoded RSA key
16
+ *
17
+ * ```js
18
+ * const jwt =
19
+ * 'eyJ0eXAiOiJlbnRpdHktc3RhdGVtZW50K2p3dCIsImtpZCI6IkVDIzEiLCJhbGciOiJFUzI1NiJ9.eyJpc3MiOiJodHRwczovL2lvLWQtd2FsbGV0LWl0LmF6dXJld2Vic2l0ZXMubmV0LyIsInN1YiI6Imh0dHBzOi8vaW8tZC13YWxsZXQtaXQuYXp1cmV3ZWJzaXRlcy5uZXQvIiwibWV0YWRhdGEiOnsiZXVkaV93YWxsZXRfcHJvdmlkZXIiOnsiandrcyI6W3siY3J2IjoiUC0yNTYiLCJrdHkiOiJFQyIsIngiOiJxckpyajNBZl9CNTdzYk9JUnJjQk03YnI3d09jOHluajdsSEZQVGVmZlVrIiwieSI6IjFIMGNXRHlHZ3ZVOHcta1BLVV94eWNPQ1VOVDJvMGJ3c2xJUXRuUFU2aU0iLCJraWQiOiJFQyMxIn1dLCJ0b2tlbl9lbmRwb2ludCI6Imh0dHBzOi8vaW8tZC13YWxsZXQtaXQuYXp1cmV3ZWJzaXRlcy5uZXQvdG9rZW4iLCJhc2NfdmFsdWVzX3N1cHBvcnRlZCI6WyJodHRwczovL2lvLWQtd2FsbGV0LWl0LmF6dXJld2Vic2l0ZXMubmV0L0xvQS9iYXNpYyIsImh0dHBzOi8vaW8tZC13YWxsZXQtaXQuYXp1cmV3ZWJzaXRlcy5uZXQvTG9BL21lZGl1bSIsImh0dHBzOi8vaW8tZC13YWxsZXQtaXQuYXp1cmV3ZWJzaXRlcy5uZXQvTG9BL2hpZ2h0Il0sImdyYW50X3R5cGVzX3N1cHBvcnRlZCI6WyJ1cm46aWV0ZjpwYXJhbXM6b2F1dGg6Y2xpZW50LWFzc2VydGlvbi10eXBlOmp3dC1rZXktYXR0ZXN0YXRpb24iXSwidG9rZW5fZW5kcG9pbnRfYXV0aF9tZXRob2RzX3N1cHBvcnRlZCI6WyJwcml2YXRlX2tleV9qd3QiXSwidG9rZW5fZW5kcG9pbnRfYXV0aF9zaWduaW5nX2FsZ192YWx1ZXNfc3VwcG9ydGVkIjpbIkVTMjU2IiwiRVMyNTZLIiwiRVMzODQiLCJFUzUxMiIsIlJTMjU2IiwiUlMzODQiLCJSUzUxMiIsIlBTMjU2IiwiUFMzODQiLCJQUzUxMiJdfSwiZmVkZXJhdGlvbl9lbnRpdHkiOnsib3JnYW5pemF0aW9uX25hbWUiOiJQYWdvUGEgUy5wLkEuIiwiaG9tZXBhZ2VfdXJpIjoiaHR0cHM6Ly9pby5pdGFsaWEuaXQvIiwicG9saWN5X3VyaSI6Imh0dHBzOi8vaW8uaXRhbGlhLml0L3ByaXZhY3ktcG9saWN5LyIsInRvc191cmkiOiJodHRwczovL2lvLml0YWxpYS5pdC9wcml2YWN5LXBvbGljeS8iLCJsb2dvX3VyaSI6Imh0dHBzOi8vaW8uaXRhbGlhLml0L2Fzc2V0cy9pbWcvaW8taXQtbG9nby13aGl0ZS5zdmcifX0sImlhdCI6MTY4OTIzNjYzNSwiZXhwIjoxNjg5MjQwMjM1fQ.6wA0M6rNYNSFN_EylzMA6ElAibW7FVSZyoLNEkHU5c_RKuiNenT08YIMvbysYautLZotUedEMP5xCyNpY34x6Q'
20
+ *
21
+ * const { payload, protectedHeader } = await decode(jwt)
22
+ *
23
+ * ```
24
+ *
25
+ * @param jwt JSON Web Token value (encoded as JWS).
26
+ */
27
+ export const decode = token => SignJWT.decode(token);
28
+
29
+ /**
30
+ * Verifies the JWS signature
31
+ *
32
+ * @example Usage with a public JWK encoded RSA key
33
+ *
34
+ * ```js
35
+ * const jwk = {
36
+ * crv: 'P-256',
37
+ * kty: 'EC',
38
+ * x: 'qrJrj3Af_B57sbOIRrcBM7br7wOc8ynj7lHFPTeffUk',
39
+ * y: '1H0cWDyGgvU8w-kPKU_xycOCUNT2o0bwslIQtnPU6iM',
40
+ * }
41
+ * const jwt =
42
+ * 'eyJ0eXAiOiJlbnRpdHktc3RhdGVtZW50K2p3dCIsImtpZCI6IkVDIzEiLCJhbGciOiJFUzI1NiJ9.eyJpc3MiOiJodHRwczovL2lvLWQtd2FsbGV0LWl0LmF6dXJld2Vic2l0ZXMubmV0LyIsInN1YiI6Imh0dHBzOi8vaW8tZC13YWxsZXQtaXQuYXp1cmV3ZWJzaXRlcy5uZXQvIiwibWV0YWRhdGEiOnsiZXVkaV93YWxsZXRfcHJvdmlkZXIiOnsiandrcyI6W3siY3J2IjoiUC0yNTYiLCJrdHkiOiJFQyIsIngiOiJxckpyajNBZl9CNTdzYk9JUnJjQk03YnI3d09jOHluajdsSEZQVGVmZlVrIiwieSI6IjFIMGNXRHlHZ3ZVOHcta1BLVV94eWNPQ1VOVDJvMGJ3c2xJUXRuUFU2aU0iLCJraWQiOiJFQyMxIn1dLCJ0b2tlbl9lbmRwb2ludCI6Imh0dHBzOi8vaW8tZC13YWxsZXQtaXQuYXp1cmV3ZWJzaXRlcy5uZXQvdG9rZW4iLCJhc2NfdmFsdWVzX3N1cHBvcnRlZCI6WyJodHRwczovL2lvLWQtd2FsbGV0LWl0LmF6dXJld2Vic2l0ZXMubmV0L0xvQS9iYXNpYyIsImh0dHBzOi8vaW8tZC13YWxsZXQtaXQuYXp1cmV3ZWJzaXRlcy5uZXQvTG9BL21lZGl1bSIsImh0dHBzOi8vaW8tZC13YWxsZXQtaXQuYXp1cmV3ZWJzaXRlcy5uZXQvTG9BL2hpZ2h0Il0sImdyYW50X3R5cGVzX3N1cHBvcnRlZCI6WyJ1cm46aWV0ZjpwYXJhbXM6b2F1dGg6Y2xpZW50LWFzc2VydGlvbi10eXBlOmp3dC1rZXktYXR0ZXN0YXRpb24iXSwidG9rZW5fZW5kcG9pbnRfYXV0aF9tZXRob2RzX3N1cHBvcnRlZCI6WyJwcml2YXRlX2tleV9qd3QiXSwidG9rZW5fZW5kcG9pbnRfYXV0aF9zaWduaW5nX2FsZ192YWx1ZXNfc3VwcG9ydGVkIjpbIkVTMjU2IiwiRVMyNTZLIiwiRVMzODQiLCJFUzUxMiIsIlJTMjU2IiwiUlMzODQiLCJSUzUxMiIsIlBTMjU2IiwiUFMzODQiLCJQUzUxMiJdfSwiZmVkZXJhdGlvbl9lbnRpdHkiOnsib3JnYW5pemF0aW9uX25hbWUiOiJQYWdvUGEgUy5wLkEuIiwiaG9tZXBhZ2VfdXJpIjoiaHR0cHM6Ly9pby5pdGFsaWEuaXQvIiwicG9saWN5X3VyaSI6Imh0dHBzOi8vaW8uaXRhbGlhLml0L3ByaXZhY3ktcG9saWN5LyIsInRvc191cmkiOiJodHRwczovL2lvLml0YWxpYS5pdC9wcml2YWN5LXBvbGljeS8iLCJsb2dvX3VyaSI6Imh0dHBzOi8vaW8uaXRhbGlhLml0L2Fzc2V0cy9pbWcvaW8taXQtbG9nby13aGl0ZS5zdmcifX0sImlhdCI6MTY4OTIzNjYzNSwiZXhwIjoxNjg5MjQwMjM1fQ.6wA0M6rNYNSFN_EylzMA6ElAibW7FVSZyoLNEkHU5c_RKuiNenT08YIMvbysYautLZotUedEMP5xCyNpY34x6Q'
43
+ *
44
+ * const isSignatureValid = await verify(jwt, jwk)
45
+ * ```
46
+ *
47
+ * @param jwt JSON Web Token value (encoded as JWS).
48
+ * @param key Public key to verify the JWT in JWK format.
49
+ */
50
+ export const isSignatureValid = (token, jwk) => IoReactNativeJwt.verify(token, jwk);
51
+
52
+ /**
53
+ * Verifies the JWT format (to be a JWS Compact format), verifies the JWS signature, validates the
54
+ * JWT Claims Set.
55
+ *
56
+ * @example Usage with a public JWK encoded RSA key
57
+ *
58
+ * ```js
59
+ * const jwk = {
60
+ * crv: 'P-256',
61
+ * kty: 'EC',
62
+ * x: 'qrJrj3Af_B57sbOIRrcBM7br7wOc8ynj7lHFPTeffUk',
63
+ * y: '1H0cWDyGgvU8w-kPKU_xycOCUNT2o0bwslIQtnPU6iM',
64
+ * }
65
+ * const jwt =
66
+ * 'eyJ0eXAiOiJlbnRpdHktc3RhdGVtZW50K2p3dCIsImtpZCI6IkVDIzEiLCJhbGciOiJFUzI1NiJ9.eyJpc3MiOiJodHRwczovL2lvLWQtd2FsbGV0LWl0LmF6dXJld2Vic2l0ZXMubmV0LyIsInN1YiI6Imh0dHBzOi8vaW8tZC13YWxsZXQtaXQuYXp1cmV3ZWJzaXRlcy5uZXQvIiwibWV0YWRhdGEiOnsiZXVkaV93YWxsZXRfcHJvdmlkZXIiOnsiandrcyI6W3siY3J2IjoiUC0yNTYiLCJrdHkiOiJFQyIsIngiOiJxckpyajNBZl9CNTdzYk9JUnJjQk03YnI3d09jOHluajdsSEZQVGVmZlVrIiwieSI6IjFIMGNXRHlHZ3ZVOHcta1BLVV94eWNPQ1VOVDJvMGJ3c2xJUXRuUFU2aU0iLCJraWQiOiJFQyMxIn1dLCJ0b2tlbl9lbmRwb2ludCI6Imh0dHBzOi8vaW8tZC13YWxsZXQtaXQuYXp1cmV3ZWJzaXRlcy5uZXQvdG9rZW4iLCJhc2NfdmFsdWVzX3N1cHBvcnRlZCI6WyJodHRwczovL2lvLWQtd2FsbGV0LWl0LmF6dXJld2Vic2l0ZXMubmV0L0xvQS9iYXNpYyIsImh0dHBzOi8vaW8tZC13YWxsZXQtaXQuYXp1cmV3ZWJzaXRlcy5uZXQvTG9BL21lZGl1bSIsImh0dHBzOi8vaW8tZC13YWxsZXQtaXQuYXp1cmV3ZWJzaXRlcy5uZXQvTG9BL2hpZ2h0Il0sImdyYW50X3R5cGVzX3N1cHBvcnRlZCI6WyJ1cm46aWV0ZjpwYXJhbXM6b2F1dGg6Y2xpZW50LWFzc2VydGlvbi10eXBlOmp3dC1rZXktYXR0ZXN0YXRpb24iXSwidG9rZW5fZW5kcG9pbnRfYXV0aF9tZXRob2RzX3N1cHBvcnRlZCI6WyJwcml2YXRlX2tleV9qd3QiXSwidG9rZW5fZW5kcG9pbnRfYXV0aF9zaWduaW5nX2FsZ192YWx1ZXNfc3VwcG9ydGVkIjpbIkVTMjU2IiwiRVMyNTZLIiwiRVMzODQiLCJFUzUxMiIsIlJTMjU2IiwiUlMzODQiLCJSUzUxMiIsIlBTMjU2IiwiUFMzODQiLCJQUzUxMiJdfSwiZmVkZXJhdGlvbl9lbnRpdHkiOnsib3JnYW5pemF0aW9uX25hbWUiOiJQYWdvUGEgUy5wLkEuIiwiaG9tZXBhZ2VfdXJpIjoiaHR0cHM6Ly9pby5pdGFsaWEuaXQvIiwicG9saWN5X3VyaSI6Imh0dHBzOi8vaW8uaXRhbGlhLml0L3ByaXZhY3ktcG9saWN5LyIsInRvc191cmkiOiJodHRwczovL2lvLml0YWxpYS5pdC9wcml2YWN5LXBvbGljeS8iLCJsb2dvX3VyaSI6Imh0dHBzOi8vaW8uaXRhbGlhLml0L2Fzc2V0cy9pbWcvaW8taXQtbG9nby13aGl0ZS5zdmcifX0sImlhdCI6MTY4OTIzNjYzNSwiZXhwIjoxNjg5MjQwMjM1fQ.6wA0M6rNYNSFN_EylzMA6ElAibW7FVSZyoLNEkHU5c_RKuiNenT08YIMvbysYautLZotUedEMP5xCyNpY34x6Q'
67
+ *
68
+ * const { payload, protectedHeader } = await verify(jwt, jwk, {
69
+ * typ: 'entity-statement+jwt',
70
+ * requiredClaims: ['iss', 'sub', 'metadata'],
71
+ * })
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
+ *
89
+ * @param jwt JSON Web Token value (encoded as JWS).
90
+ * @param key Public key to verify the JWT in JWK format or JWKS (array of JWK).
91
+ * @param options JWT Decryption and JWT Claims Set validation options.
92
+ */
93
+ export const verify = async function (token, jwk) {
94
+ let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
95
+ const {
96
+ protectedHeader,
97
+ payload
98
+ } = await decode(token);
99
+ const selectedJwk = Array.isArray(jwk) ? getJwkFromHeader(protectedHeader, jwk) : jwk;
100
+ const signatureIsValid = await isSignatureValid(token, selectedJwk);
101
+ if (signatureIsValid) {
102
+ const verifiedPayload = jwtPayload(protectedHeader, payload, options);
103
+ return {
104
+ payload: verifiedPayload,
105
+ protectedHeader
106
+ };
107
+ } else {
108
+ throw new JWSSignatureVerificationFailed();
109
+ }
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
+ };
138
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
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"}
@@ -2,8 +2,8 @@
2
2
  * This code comes from https://github.com/panva/jose
3
3
  */
4
4
 
5
- import { JWTClaimValidationFailed, JWTExpired } from './utils/errors';
6
- import secs, { epoch } from './utils/secs';
5
+ import { JWTClaimValidationFailed, JWTExpired } from '../utils/errors';
6
+ import secs, { epoch } from '../utils/secs';
7
7
  const normalizeTyp = value => value.toLowerCase().replace(/^application\//, '');
8
8
  const checkAudiencePresence = (audPayload, audOption) => {
9
9
  if (typeof audPayload === 'string') {
@@ -0,0 +1 @@
1
+ {"version":3,"names":["JWTClaimValidationFailed","JWTExpired","secs","epoch","normalizeTyp","value","toLowerCase","replace","checkAudiencePresence","audPayload","audOption","includes","Array","isArray","some","Set","prototype","has","bind","protectedHeader","payload","options","arguments","length","undefined","typ","requiredClaims","issuer","subject","audience","maxTokenAge","push","claim","reverse","iss","sub","aud","tolerance","clockTolerance","TypeError","currentDate","now","Date","iat","nbf","exp","age","max"],"sourceRoot":"../../../src","sources":["jwt/jwt_claims_set.ts"],"mappings":"AAAA;AACA;AACA;;AAMA,SAASA,wBAAwB,EAAEC,UAAU,QAAQ,iBAAiB;AAEtE,OAAOC,IAAI,IAAIC,KAAK,QAAQ,eAAe;AAE3C,MAAMC,YAAY,GAAIC,KAAa,IACjCA,KAAK,CAACC,WAAW,CAAC,CAAC,CAACC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC;AAEnD,MAAMC,qBAAqB,GAAGA,CAACC,UAAmB,EAAEC,SAAoB,KAAK;EAC3E,IAAI,OAAOD,UAAU,KAAK,QAAQ,EAAE;IAClC,OAAOC,SAAS,CAACC,QAAQ,CAACF,UAAU,CAAC;EACvC;EAEA,IAAIG,KAAK,CAACC,OAAO,CAACJ,UAAU,CAAC,EAAE;IAC7B;AACJ;AACA;AACA;IACI,OAAOC,SAAS,CAACI,IAAI,CAACC,GAAG,CAACC,SAAS,CAACC,GAAG,CAACC,IAAI,CAAC,IAAIH,GAAG,CAACN,UAAU,CAAC,CAAC,CAAC;EACpE;EAEA,OAAO,KAAK;AACd,CAAC;AAED,gBAAe,UACbU,eAAoC,EACpCC,OAAmB,EAEhB;EAAA,IADHC,OAAoC,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;EAEzC,MAAM;IAAEG;EAAI,CAAC,GAAGJ,OAAO;EACvB,IACEI,GAAG,KACF,OAAON,eAAe,CAAEM,GAAG,KAAK,QAAQ,IACvCrB,YAAY,CAACe,eAAe,CAAEM,GAAG,CAAC,KAAKrB,YAAY,CAACqB,GAAG,CAAC,CAAC,EAC3D;IACA,MAAM,IAAIzB,wBAAwB,CAChC,mCAAmC,EACnC,KAAK,EACL,cACF,CAAC;EACH;EAEA,MAAM;IACJ0B,cAAc,GAAG,EAAE;IACnBC,MAAM;IACNC,OAAO;IACPC,QAAQ;IACRC;EACF,CAAC,GAAGT,OAAO;EAEX,IAAIS,WAAW,KAAKN,SAAS,EAAEE,cAAc,CAACK,IAAI,CAAC,KAAK,CAAC;EACzD,IAAIF,QAAQ,KAAKL,SAAS,EAAEE,cAAc,CAACK,IAAI,CAAC,KAAK,CAAC;EACtD,IAAIH,OAAO,KAAKJ,SAAS,EAAEE,cAAc,CAACK,IAAI,CAAC,KAAK,CAAC;EACrD,IAAIJ,MAAM,KAAKH,SAAS,EAAEE,cAAc,CAACK,IAAI,CAAC,KAAK,CAAC;EAEpD,KAAK,MAAMC,KAAK,IAAI,IAAIjB,GAAG,CAACW,cAAc,CAACO,OAAO,CAAC,CAAC,CAAC,EAAE;IACrD,IAAI,EAAED,KAAK,IAAIZ,OAAO,CAAC,EAAE;MACvB,MAAM,IAAIpB,wBAAwB,CAC/B,qBAAoBgC,KAAM,SAAQ,EACnCA,KAAK,EACL,SACF,CAAC;IACH;EACF;EAEA,IACEL,MAAM,IACN,CAAC,CAAaf,KAAK,CAACC,OAAO,CAACc,MAAM,CAAC,GAAGA,MAAM,GAAG,CAACA,MAAM,CAAC,EAAGhB,QAAQ,CAChES,OAAO,CAACc,GACV,CAAC,EACD;IACA,MAAM,IAAIlC,wBAAwB,CAChC,8BAA8B,EAC9B,KAAK,EACL,cACF,CAAC;EACH;EAEA,IAAI4B,OAAO,IAAIR,OAAO,CAACe,GAAG,KAAKP,OAAO,EAAE;IACtC,MAAM,IAAI5B,wBAAwB,CAChC,8BAA8B,EAC9B,KAAK,EACL,cACF,CAAC;EACH;EAEA,IACE6B,QAAQ,IACR,CAACrB,qBAAqB,CACpBY,OAAO,CAACgB,GAAG,EACX,OAAOP,QAAQ,KAAK,QAAQ,GAAG,CAACA,QAAQ,CAAC,GAAGA,QAC9C,CAAC,EACD;IACA,MAAM,IAAI7B,wBAAwB,CAChC,8BAA8B,EAC9B,KAAK,EACL,cACF,CAAC;EACH;EAEA,IAAIqC,SAAiB;EACrB,QAAQ,OAAOhB,OAAO,CAACiB,cAAc;IACnC,KAAK,QAAQ;MACXD,SAAS,GAAGnC,IAAI,CAACmB,OAAO,CAACiB,cAAc,CAAC;MACxC;IACF,KAAK,QAAQ;MACXD,SAAS,GAAGhB,OAAO,CAACiB,cAAc;MAClC;IACF,KAAK,WAAW;MACdD,SAAS,GAAG,CAAC;MACb;IACF;MACE,MAAM,IAAIE,SAAS,CAAC,oCAAoC,CAAC;EAC7D;EAEA,MAAM;IAAEC;EAAY,CAAC,GAAGnB,OAAO;EAC/B,MAAMoB,GAAG,GAAGtC,KAAK,CAACqC,WAAW,IAAI,IAAIE,IAAI,CAAC,CAAC,CAAC;EAE5C,IACE,CAACtB,OAAO,CAACuB,GAAG,KAAKnB,SAAS,IAAIM,WAAW,KACzC,OAAOV,OAAO,CAACuB,GAAG,KAAK,QAAQ,EAC/B;IACA,MAAM,IAAI3C,wBAAwB,CAChC,8BAA8B,EAC9B,KAAK,EACL,SACF,CAAC;EACH;EAEA,IAAIoB,OAAO,CAACwB,GAAG,KAAKpB,SAAS,EAAE;IAC7B,IAAI,OAAOJ,OAAO,CAACwB,GAAG,KAAK,QAAQ,EAAE;MACnC,MAAM,IAAI5C,wBAAwB,CAChC,8BAA8B,EAC9B,KAAK,EACL,SACF,CAAC;IACH;IACA,IAAIoB,OAAO,CAACwB,GAAG,GAAGH,GAAG,GAAGJ,SAAS,EAAE;MACjC,MAAM,IAAIrC,wBAAwB,CAChC,oCAAoC,EACpC,KAAK,EACL,cACF,CAAC;IACH;EACF;EAEA,IAAIoB,OAAO,CAACyB,GAAG,KAAKrB,SAAS,EAAE;IAC7B,IAAI,OAAOJ,OAAO,CAACyB,GAAG,KAAK,QAAQ,EAAE;MACnC,MAAM,IAAI7C,wBAAwB,CAChC,8BAA8B,EAC9B,KAAK,EACL,SACF,CAAC;IACH;IACA,IAAIoB,OAAO,CAACyB,GAAG,IAAIJ,GAAG,GAAGJ,SAAS,EAAE;MAClC,MAAM,IAAIpC,UAAU,CAClB,oCAAoC,EACpC,KAAK,EACL,cACF,CAAC;IACH;EACF;EAEA,IAAI6B,WAAW,EAAE;IACf,MAAMgB,GAAG,GAAGL,GAAG,GAAGrB,OAAO,CAACuB,GAAI;IAC9B,MAAMI,GAAG,GACP,OAAOjB,WAAW,KAAK,QAAQ,GAAGA,WAAW,GAAG5B,IAAI,CAAC4B,WAAW,CAAC;IAEnE,IAAIgB,GAAG,GAAGT,SAAS,GAAGU,GAAG,EAAE;MACzB,MAAM,IAAI9C,UAAU,CAClB,0DAA0D,EAC1D,KAAK,EACL,cACF,CAAC;IACH;IAEA,IAAI6C,GAAG,GAAG,CAAC,GAAGT,SAAS,EAAE;MACvB,MAAM,IAAIrC,wBAAwB,CAChC,+DAA+D,EAC/D,KAAK,EACL,cACF,CAAC;IACH;EACF;EAEA,OAAmBoB,OAAO;AAC5B,CAAC"}
@@ -1,5 +1,5 @@
1
- import isObject from './utils/is_object';
2
- import secs, { epoch } from './utils/secs';
1
+ import isObject from '../utils/is_object';
2
+ import secs, { epoch } from '../utils/secs';
3
3
 
4
4
  /** Generic class for JWT producing. */
5
5
  export class ProduceJWT {
@@ -0,0 +1 @@
1
+ {"version":3,"names":["isObject","secs","epoch","ProduceJWT","constructor","payload","TypeError","_payload","setIssuer","issuer","iss","setSubject","subject","sub","setAudience","audience","aud","setJti","jwtId","jti","setNotBefore","input","nbf","Date","setExpirationTime","exp","setIssuedAt","iat"],"sourceRoot":"../../../src","sources":["jwt/produce.ts"],"mappings":"AACA,OAAOA,QAAQ,MAAM,oBAAoB;AACzC,OAAOC,IAAI,IAAIC,KAAK,QAAQ,eAAe;;AAE3C;AACA,OAAO,MAAMC,UAAU,CAAC;EAGtB;EACAC,WAAWA,CAACC,OAAmB,EAAE;IAC/B,IAAI,CAACL,QAAQ,CAACK,OAAO,CAAC,EAAE;MACtB,MAAM,IAAIC,SAAS,CAAC,kCAAkC,CAAC;IACzD;IACA,IAAI,CAACC,QAAQ,GAAGF,OAAO;EACzB;;EAEA;AACF;AACA;AACA;AACA;EACEG,SAASA,CAACC,MAAc,EAAE;IACxB,IAAI,CAACF,QAAQ,GAAG;MAAE,GAAG,IAAI,CAACA,QAAQ;MAAEG,GAAG,EAAED;IAAO,CAAC;IACjD,OAAO,IAAI;EACb;;EAEA;AACF;AACA;AACA;AACA;EACEE,UAAUA,CAACC,OAAe,EAAE;IAC1B,IAAI,CAACL,QAAQ,GAAG;MAAE,GAAG,IAAI,CAACA,QAAQ;MAAEM,GAAG,EAAED;IAAQ,CAAC;IAClD,OAAO,IAAI;EACb;;EAEA;AACF;AACA;AACA;AACA;EACEE,WAAWA,CAACC,QAA2B,EAAE;IACvC,IAAI,CAACR,QAAQ,GAAG;MAAE,GAAG,IAAI,CAACA,QAAQ;MAAES,GAAG,EAAED;IAAS,CAAC;IACnD,OAAO,IAAI;EACb;;EAEA;AACF;AACA;AACA;AACA;EACEE,MAAMA,CAACC,KAAa,EAAE;IACpB,IAAI,CAACX,QAAQ,GAAG;MAAE,GAAG,IAAI,CAACA,QAAQ;MAAEY,GAAG,EAAED;IAAM,CAAC;IAChD,OAAO,IAAI;EACb;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;EACEE,YAAYA,CAACC,KAAsB,EAAE;IACnC,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE;MAC7B,IAAI,CAACd,QAAQ,GAAG;QAAE,GAAG,IAAI,CAACA,QAAQ;QAAEe,GAAG,EAAED;MAAM,CAAC;IAClD,CAAC,MAAM;MACL,IAAI,CAACd,QAAQ,GAAG;QACd,GAAG,IAAI,CAACA,QAAQ;QAChBe,GAAG,EAAEpB,KAAK,CAAC,IAAIqB,IAAI,CAAC,CAAC,CAAC,GAAGtB,IAAI,CAACoB,KAAK;MACrC,CAAC;IACH;IACA,OAAO,IAAI;EACb;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;EACEG,iBAAiBA,CAACH,KAAsB,EAAE;IACxC,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE;MAC7B,IAAI,CAACd,QAAQ,GAAG;QAAE,GAAG,IAAI,CAACA,QAAQ;QAAEkB,GAAG,EAAEJ;MAAM,CAAC;IAClD,CAAC,MAAM;MACL,IAAI,CAACd,QAAQ,GAAG;QACd,GAAG,IAAI,CAACA,QAAQ;QAChBkB,GAAG,EAAEvB,KAAK,CAAC,IAAIqB,IAAI,CAAC,CAAC,CAAC,GAAGtB,IAAI,CAACoB,KAAK;MACrC,CAAC;IACH;IACA,OAAO,IAAI;EACb;;EAEA;AACF;AACA;AACA;AACA;AACA;EACEK,WAAWA,CAACL,KAAc,EAAE;IAC1B,IAAI,OAAOA,KAAK,KAAK,WAAW,EAAE;MAChC,IAAI,CAACd,QAAQ,GAAG;QAAE,GAAG,IAAI,CAACA,QAAQ;QAAEoB,GAAG,EAAEzB,KAAK,CAAC,IAAIqB,IAAI,CAAC,CAAC;MAAE,CAAC;IAC9D,CAAC,MAAM;MACL,IAAI,CAAChB,QAAQ,GAAG;QAAE,GAAG,IAAI,CAACA,QAAQ;QAAEoB,GAAG,EAAEN;MAAM,CAAC;IAClD;IACA,OAAO,IAAI;EACb;AACF"}
@@ -1,8 +1,8 @@
1
- import { JOSENotSupported, JWSInvalid, JWTInvalid } from './utils/errors';
1
+ import { JOSENotSupported, JWSInvalid, JWTInvalid } from '../utils/errors';
2
2
  import { ProduceJWT } from './produce';
3
- import { decodeBase64, encodeBase64, removePadding } from './utils/base64';
4
- import { isAlgSupported } from './algorithms';
5
- import { derToJose } from './utils/asn1';
3
+ import { decodeBase64, encodeBase64, removePadding } from '../utils/base64';
4
+ import { isAlgSupported } from '../algorithms';
5
+ import { derToJose } from '../utils/asn1';
6
6
 
7
7
  /**
8
8
  * The SignJWT class is used to build and sign Compact JWS formatted JSON Web Tokens.
@@ -0,0 +1 @@
1
+ {"version":3,"names":["JOSENotSupported","JWSInvalid","JWTInvalid","ProduceJWT","decodeBase64","encodeBase64","removePadding","isAlgSupported","derToJose","SignJWT","setProtectedHeader","protectedHeader","alg","_protectedHeader","toSign","JSON","stringify","payload","_payload","appendSignature","jwtWithoutSignature","signature","jwtDecoded","decodeJwtWithoutSignature","header","encodedJws","encodedHeader","encodedPayload","length","split","decoded","parse","decodedPayload","decode","jwt"],"sourceRoot":"../../../src","sources":["jwt/sign.ts"],"mappings":"AAAA,SAASA,gBAAgB,EAAEC,UAAU,EAAEC,UAAU,QAAQ,iBAAiB;AAM1E,SAASC,UAAU,QAAQ,WAAW;AACtC,SAASC,YAAY,EAAEC,YAAY,EAAEC,aAAa,QAAQ,iBAAiB;AAC3E,SAASC,cAAc,QAAQ,eAAe;AAE9C,SAASC,SAAS,QAAQ,eAAe;;AAEzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,OAAO,SAASN,UAAU,CAAC;EAGtC;AACF;AACA;AACA;AACA;EACEO,kBAAkBA,CAACC,eAA2C,EAAE;IAC9D,IAAIA,eAAe,CAACC,GAAG,IAAIL,cAAc,CAACI,eAAe,CAACC,GAAG,CAAC,EAAE;MAC9D,IAAI,CAACC,gBAAgB,GAAGF,eAAe;MACvC,OAAO,IAAI;IACb;IACA,MAAM,IAAIX,gBAAgB,CAAC,yBAAyB,CAAC;EACvD;;EAEA;AACF;AACA;AACA;EACEc,MAAMA,CAAA,EAAW;IACf,IAAI,CAAC,IAAI,CAACD,gBAAgB,IAAI,CAAC,IAAI,CAACA,gBAAgB,CAACD,GAAG,EAAE;MACxD,MAAM,IAAIX,UAAU,CAClB,sDACF,CAAC;IACH;IACA,MAAMU,eAAe,GAAGN,YAAY,CAACU,IAAI,CAACC,SAAS,CAAC,IAAI,CAACH,gBAAgB,CAAC,CAAC;IAC3E,MAAMI,OAAO,GAAGZ,YAAY,CAACU,IAAI,CAACC,SAAS,CAAC,IAAI,CAACE,QAAQ,CAAC,CAAC;IAC3D,IAAID,OAAO,IAAIN,eAAe,EAAE;MAC9B,OAAQ,GAAEA,eAAgB,IAAGM,OAAQ,EAAC;IACxC,CAAC,MAAM;MACL,MAAM,IAAIhB,UAAU,CAAC,CAAC;IACxB;EACF;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;EACE,aAAakB,eAAeA,CAC1BC,mBAA2B,EAC3BC,SAAiB,EACA;IACjB,IACE,OAAOD,mBAAmB,KAAK,QAAQ,IACvC,OAAOC,SAAS,KAAK,QAAQ,EAC7B;MACA,MAAM,IAAInB,UAAU,CAAC,sBAAsB,CAAC;IAC9C;IACA,IAAImB,SAAS,KAAK,EAAE,EAAE,MAAM,IAAIpB,UAAU,CAAC,mBAAmB,CAAC;IAE/D,MAAMqB,UAAU,GAAGb,OAAO,CAACc,yBAAyB,CAACH,mBAAmB,CAAC;IACzE,MAAMR,GAAG,GAAGU,UAAU,CAACE,MAAM,CAACZ,GAAG;IACjC,IAAI;MACF,MAAMa,UAAU,GAAG,MAAMjB,SAAS,CAACa,SAAS,EAAET,GAAG,CAAC;MAClD,OAAQ,GAAEQ,mBAAoB,IAAGK,UAAW,EAAC;IAC/C,CAAC,CAAC,MAAM;MACN,MAAMA,UAAU,GAAGnB,aAAa,CAACe,SAAS,CAAC;MAC3C,OAAQ,GAAED,mBAAoB,IAAGK,UAAW,EAAC;IAC/C;EACF;;EAEA;AACF;AACA;AACA;AACA;EACE,OAAOF,yBAAyBA,CAACH,mBAA2B,EAG1D;IACA,IAAI,OAAOA,mBAAmB,KAAK,QAAQ,EAAE;MAC3C,MAAM,IAAIlB,UAAU,CAAC,sBAAsB,CAAC;IAC9C;IACA,MAAM;MACJ,CAAC,EAAEwB,aAAa;MAChB,CAAC,EAAEC,cAAc;MACjBC;IACF,CAAC,GAAGR,mBAAmB,CAACS,KAAK,CAAC,GAAG,CAAC;IAElC,IAAIL,MAAkC;IACtC,IAAI;MACF,IAAIM,OAAO,GAAG1B,YAAY,CAACsB,aAAc,CAAC;MAC1CF,MAAM,GAAGT,IAAI,CAACgB,KAAK,CAACD,OAAO,CAAC;MAC5B,IAAI,CAACN,MAAM,CAACZ,GAAG,IAAI,CAACL,cAAc,CAACiB,MAAM,CAACZ,GAAG,CAAC,EAAE;QAC9C,MAAM,IAAIZ,gBAAgB,CAAC,yBAAyB,CAAC;MACvD;IACF,CAAC,CAAC,MAAM;MACN,MAAM,IAAIE,UAAU,CAAC,6BAA6B,CAAC;IACrD;IAEA,IAAI0B,MAAM,KAAK,CAAC,IAAID,cAAc,KAAK,EAAE,EAAE;MACzC,MAAM,IAAIzB,UAAU,CAAC,qBAAqB,CAAC;IAC7C;IAEA,IAAI8B,cAAc,GAAG5B,YAAY,CAACuB,cAAe,CAAC;IAClD,MAAMV,OAAO,GAAGF,IAAI,CAACgB,KAAK,CAACC,cAAc,CAAC;IAE1C,OAAO;MACLf,OAAO;MACPO;IACF,CAAC;EACH;;EAEA;AACF;AACA;AACA;AACA;EACE,OAAOS,MAAMA,CAACC,GAAW,EAAmB;IAC1C,IAAI,OAAOA,GAAG,KAAK,QAAQ,EAAE;MAC3B,MAAM,IAAIhC,UAAU,CAAC,sBAAsB,CAAC;IAC9C;IACA,MAAM;MACJ,CAAC,EAAEwB,aAAa;MAChB,CAAC,EAAEC,cAAc;MACjB,CAAC,EAAEN,SAAS;MACZO;IACF,CAAC,GAAGM,GAAG,CAACL,KAAK,CAAC,GAAG,CAAC;IAElB,IAAIlB,eAA2C;IAC/C,IAAI;MACF,IAAImB,OAAO,GAAG1B,YAAY,CAACsB,aAAc,CAAC;MAC1Cf,eAAe,GAAGI,IAAI,CAACgB,KAAK,CAACD,OAAO,CAAC;MACrC,IAAI,CAACnB,eAAe,CAACC,GAAG,IAAI,CAACL,cAAc,CAACI,eAAe,CAACC,GAAG,CAAC,EAAE;QAChE,MAAM,IAAIZ,gBAAgB,CAAC,yBAAyB,CAAC;MACvD;IACF,CAAC,CAAC,MAAM;MACN,MAAM,IAAIE,UAAU,CAAC,6BAA6B,CAAC;IACrD;IAEA,IAAI0B,MAAM,KAAK,CAAC,IAAID,cAAc,KAAK,EAAE,IAAIN,SAAS,KAAK,EAAE,EAAE;MAC7D,MAAM,IAAInB,UAAU,CAAC,aAAa,CAAC;IACrC;IAEA,IAAI8B,cAAc,GAAG5B,YAAY,CAACuB,cAAe,CAAC;IAClD,MAAMV,OAAO,GAAGF,IAAI,CAACgB,KAAK,CAACC,cAAc,CAAC;IAE1C,OAAO;MACLf,OAAO;MACPN;IACF,CAAC;EACH;AACF"}
@@ -1,7 +1,7 @@
1
- import { JWTInvalid } from './utils/errors';
1
+ import { JWTInvalid } from '../utils/errors';
2
2
  import jwtPayload from './jwt_claims_set';
3
3
  import { ProduceJWT } from './produce';
4
- import { decodeBase64, encodeBase64 } from './utils/base64';
4
+ import { decodeBase64, encodeBase64 } from '../utils/base64';
5
5
  /**
6
6
  * The UnsecuredJWT class is a utility for dealing with `{ "alg": "none" }` Unsecured JWTs.
7
7
  *
@@ -0,0 +1 @@
1
+ {"version":3,"names":["JWTInvalid","jwtPayload","ProduceJWT","decodeBase64","encodeBase64","UnsecuredJWT","encode","header","JSON","stringify","alg","payload","_payload","decode","jwt","options","encodedHeader","encodedPayload","signature","length","split","decoded","parse","Error","decodePayload","decodedPayload"],"sourceRoot":"../../../src","sources":["jwt/unsecured.ts"],"mappings":"AAMA,SAASA,UAAU,QAAQ,iBAAiB;AAC5C,OAAOC,UAAU,MAAM,kBAAkB;AACzC,SAASC,UAAU,QAAQ,WAAW;AACtC,SAASC,YAAY,EAAEC,YAAY,QAAQ,iBAAiB;AAO5D;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,YAAY,SAASH,UAAU,CAAC;EAC3C;EACAI,MAAMA,CAAA,EAAW;IACf,MAAMC,MAAM,GAAGH,YAAY,CAACI,IAAI,CAACC,SAAS,CAAC;MAAEC,GAAG,EAAE;IAAO,CAAC,CAAC,CAAC;IAC5D,MAAMC,OAAO,GAAGP,YAAY,CAACI,IAAI,CAACC,SAAS,CAAC,IAAI,CAACG,QAAQ,CAAC,CAAC;IAE3D,OAAQ,GAAEL,MAAO,IAAGI,OAAQ,GAAE;EAChC;;EAEA;AACF;AACA;AACA;AACA;AACA;EACE,OAAOE,MAAMA,CACXC,GAAW,EACXC,OAAqC,EACpB;IACjB,IAAI,OAAOD,GAAG,KAAK,QAAQ,EAAE;MAC3B,MAAM,IAAId,UAAU,CAAC,gCAAgC,CAAC;IACxD;IACA,MAAM;MACJ,CAAC,EAAEgB,aAAa;MAChB,CAAC,EAAEC,cAAc;MACjB,CAAC,EAAEC,SAAS;MACZC;IACF,CAAC,GAAGL,GAAG,CAACM,KAAK,CAAC,GAAG,CAAC;IAElB,IAAID,MAAM,KAAK,CAAC,IAAID,SAAS,KAAK,EAAE,IAAI,CAACD,cAAc,EAAE;MACvD,MAAM,IAAIjB,UAAU,CAAC,uBAAuB,CAAC;IAC/C;IAEA,IAAIO,MAA2B;IAC/B,IAAI;MACF,IAAIc,OAAO,GAAGlB,YAAY,CAACa,aAAc,CAAC;MAC1CT,MAAM,GAAGC,IAAI,CAACc,KAAK,CAACD,OAAO,CAAC;MAC5B,IAAId,MAAM,CAACG,GAAG,KAAK,MAAM,EAAE,MAAM,IAAIa,KAAK,CAAC,CAAC;IAC9C,CAAC,CAAC,MAAM;MACN,MAAM,IAAIvB,UAAU,CAAC,uBAAuB,CAAC;IAC/C;IAEA,IAAIW,OAAO,GAAGN,YAAY,CAACmB,aAAa,CAACP,cAAc,EAAEF,OAAO,CAAC;IAEjE,OAAO;MAAEJ,OAAO;MAAEJ;IAAO,CAAC;EAC5B;;EAEA;AACF;AACA;AACA;AACA;AACA;EACE,OAAOiB,aAAaA,CAClBV,GAAW,EACXC,OAAqC,EACzB;IACZ,IAAI,OAAOD,GAAG,KAAK,QAAQ,EAAE;MAC3B,MAAM,IAAId,UAAU,CAAC,gCAAgC,CAAC;IACxD;IACA,MAAM;MAAE,CAAC,EAAEiB,cAAc;MAAEE;IAAO,CAAC,GAAGL,GAAG,CAACM,KAAK,CAAC,GAAG,CAAC;IAEpD,IAAID,MAAM,KAAK,CAAC,IAAIF,cAAc,KAAK,EAAE,EAAE;MACzC,MAAM,IAAIjB,UAAU,CAAC,uBAAuB,CAAC;IAC/C;IAEA,IAAIyB,cAAc,GAAGtB,YAAY,CAACc,cAAe,CAAC;IAClD,MAAMN,OAAO,GAAGV,UAAU,CAAC,CAAC,CAAC,EAAEO,IAAI,CAACc,KAAK,CAACG,cAAc,CAAC,EAAEV,OAAO,CAAC;IAEnE,OAAOJ,OAAO;EAChB;AACF"}
@@ -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
@@ -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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"}
@@ -197,4 +197,50 @@ export class JWSSignatureVerificationFailed extends JOSEError {
197
197
  code = 'ERR_JWS_SIGNATURE_VERIFICATION_FAILED';
198
198
  message = 'signature verification failed';
199
199
  }
200
+
201
+ /**
202
+ * An error subclass thrown when a JWE is invalid.
203
+ *
204
+ * @example Checking thrown error is this one using a stable error code
205
+ *
206
+ * ```js
207
+ * if (err.code === 'ERR_JWE_INVALID') {
208
+ * // ...
209
+ * }
210
+ * ```
211
+ *
212
+ * @example Checking thrown error is this one using `instanceof`
213
+ *
214
+ * ```js
215
+ * if (err instanceof errors.JWEInvalid) {
216
+ * // ...
217
+ * }
218
+ * ```
219
+ */
220
+ export class JWEInvalid extends JOSEError {
221
+ static get code() {
222
+ return 'ERR_JWE_INVALID';
223
+ }
224
+ code = 'ERR_JWE_INVALID';
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
+ }
200
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"],"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,93 +1,10 @@
1
- import type { JWK, JWTClaimVerificationOptions, JWTDecodeResult } from './types';
2
- export * from './produce';
3
- export * from './sign';
4
- export * from './unsecured';
1
+ export * from './jwe/index';
2
+ export * from './jwt/index';
3
+ export * from './jwk/index';
4
+ export * from './jwt/produce';
5
+ export * from './jwt/sign';
6
+ export * from './jwt/unsecured';
5
7
  export { derToJose } from './utils/asn1';
6
8
  export { encodeBase64, decodeBase64 } from './utils/base64';
7
9
  export { sha256ToBase64 } from './hash';
8
- /**
9
- * Decode the JWT without validation.
10
- *
11
- * @example Usage with a public JWK encoded RSA key
12
- *
13
- * ```js
14
- * const jwt =
15
- * 'eyJ0eXAiOiJlbnRpdHktc3RhdGVtZW50K2p3dCIsImtpZCI6IkVDIzEiLCJhbGciOiJFUzI1NiJ9.eyJpc3MiOiJodHRwczovL2lvLWQtd2FsbGV0LWl0LmF6dXJld2Vic2l0ZXMubmV0LyIsInN1YiI6Imh0dHBzOi8vaW8tZC13YWxsZXQtaXQuYXp1cmV3ZWJzaXRlcy5uZXQvIiwibWV0YWRhdGEiOnsiZXVkaV93YWxsZXRfcHJvdmlkZXIiOnsiandrcyI6W3siY3J2IjoiUC0yNTYiLCJrdHkiOiJFQyIsIngiOiJxckpyajNBZl9CNTdzYk9JUnJjQk03YnI3d09jOHluajdsSEZQVGVmZlVrIiwieSI6IjFIMGNXRHlHZ3ZVOHcta1BLVV94eWNPQ1VOVDJvMGJ3c2xJUXRuUFU2aU0iLCJraWQiOiJFQyMxIn1dLCJ0b2tlbl9lbmRwb2ludCI6Imh0dHBzOi8vaW8tZC13YWxsZXQtaXQuYXp1cmV3ZWJzaXRlcy5uZXQvdG9rZW4iLCJhc2NfdmFsdWVzX3N1cHBvcnRlZCI6WyJodHRwczovL2lvLWQtd2FsbGV0LWl0LmF6dXJld2Vic2l0ZXMubmV0L0xvQS9iYXNpYyIsImh0dHBzOi8vaW8tZC13YWxsZXQtaXQuYXp1cmV3ZWJzaXRlcy5uZXQvTG9BL21lZGl1bSIsImh0dHBzOi8vaW8tZC13YWxsZXQtaXQuYXp1cmV3ZWJzaXRlcy5uZXQvTG9BL2hpZ2h0Il0sImdyYW50X3R5cGVzX3N1cHBvcnRlZCI6WyJ1cm46aWV0ZjpwYXJhbXM6b2F1dGg6Y2xpZW50LWFzc2VydGlvbi10eXBlOmp3dC1rZXktYXR0ZXN0YXRpb24iXSwidG9rZW5fZW5kcG9pbnRfYXV0aF9tZXRob2RzX3N1cHBvcnRlZCI6WyJwcml2YXRlX2tleV9qd3QiXSwidG9rZW5fZW5kcG9pbnRfYXV0aF9zaWduaW5nX2FsZ192YWx1ZXNfc3VwcG9ydGVkIjpbIkVTMjU2IiwiRVMyNTZLIiwiRVMzODQiLCJFUzUxMiIsIlJTMjU2IiwiUlMzODQiLCJSUzUxMiIsIlBTMjU2IiwiUFMzODQiLCJQUzUxMiJdfSwiZmVkZXJhdGlvbl9lbnRpdHkiOnsib3JnYW5pemF0aW9uX25hbWUiOiJQYWdvUGEgUy5wLkEuIiwiaG9tZXBhZ2VfdXJpIjoiaHR0cHM6Ly9pby5pdGFsaWEuaXQvIiwicG9saWN5X3VyaSI6Imh0dHBzOi8vaW8uaXRhbGlhLml0L3ByaXZhY3ktcG9saWN5LyIsInRvc191cmkiOiJodHRwczovL2lvLml0YWxpYS5pdC9wcml2YWN5LXBvbGljeS8iLCJsb2dvX3VyaSI6Imh0dHBzOi8vaW8uaXRhbGlhLml0L2Fzc2V0cy9pbWcvaW8taXQtbG9nby13aGl0ZS5zdmcifX0sImlhdCI6MTY4OTIzNjYzNSwiZXhwIjoxNjg5MjQwMjM1fQ.6wA0M6rNYNSFN_EylzMA6ElAibW7FVSZyoLNEkHU5c_RKuiNenT08YIMvbysYautLZotUedEMP5xCyNpY34x6Q'
16
- *
17
- * const { payload, protectedHeader } = await decode(jwt)
18
- *
19
- * ```
20
- *
21
- * @param jwt JSON Web Token value (encoded as JWS).
22
- */
23
- export declare const decode: (token: string) => JWTDecodeResult;
24
- /**
25
- * Verifies the JWS signature
26
- *
27
- * @example Usage with a public JWK encoded RSA key
28
- *
29
- * ```js
30
- * const jwk = {
31
- * crv: 'P-256',
32
- * kty: 'EC',
33
- * x: 'qrJrj3Af_B57sbOIRrcBM7br7wOc8ynj7lHFPTeffUk',
34
- * y: '1H0cWDyGgvU8w-kPKU_xycOCUNT2o0bwslIQtnPU6iM',
35
- * }
36
- * const jwt =
37
- * 'eyJ0eXAiOiJlbnRpdHktc3RhdGVtZW50K2p3dCIsImtpZCI6IkVDIzEiLCJhbGciOiJFUzI1NiJ9.eyJpc3MiOiJodHRwczovL2lvLWQtd2FsbGV0LWl0LmF6dXJld2Vic2l0ZXMubmV0LyIsInN1YiI6Imh0dHBzOi8vaW8tZC13YWxsZXQtaXQuYXp1cmV3ZWJzaXRlcy5uZXQvIiwibWV0YWRhdGEiOnsiZXVkaV93YWxsZXRfcHJvdmlkZXIiOnsiandrcyI6W3siY3J2IjoiUC0yNTYiLCJrdHkiOiJFQyIsIngiOiJxckpyajNBZl9CNTdzYk9JUnJjQk03YnI3d09jOHluajdsSEZQVGVmZlVrIiwieSI6IjFIMGNXRHlHZ3ZVOHcta1BLVV94eWNPQ1VOVDJvMGJ3c2xJUXRuUFU2aU0iLCJraWQiOiJFQyMxIn1dLCJ0b2tlbl9lbmRwb2ludCI6Imh0dHBzOi8vaW8tZC13YWxsZXQtaXQuYXp1cmV3ZWJzaXRlcy5uZXQvdG9rZW4iLCJhc2NfdmFsdWVzX3N1cHBvcnRlZCI6WyJodHRwczovL2lvLWQtd2FsbGV0LWl0LmF6dXJld2Vic2l0ZXMubmV0L0xvQS9iYXNpYyIsImh0dHBzOi8vaW8tZC13YWxsZXQtaXQuYXp1cmV3ZWJzaXRlcy5uZXQvTG9BL21lZGl1bSIsImh0dHBzOi8vaW8tZC13YWxsZXQtaXQuYXp1cmV3ZWJzaXRlcy5uZXQvTG9BL2hpZ2h0Il0sImdyYW50X3R5cGVzX3N1cHBvcnRlZCI6WyJ1cm46aWV0ZjpwYXJhbXM6b2F1dGg6Y2xpZW50LWFzc2VydGlvbi10eXBlOmp3dC1rZXktYXR0ZXN0YXRpb24iXSwidG9rZW5fZW5kcG9pbnRfYXV0aF9tZXRob2RzX3N1cHBvcnRlZCI6WyJwcml2YXRlX2tleV9qd3QiXSwidG9rZW5fZW5kcG9pbnRfYXV0aF9zaWduaW5nX2FsZ192YWx1ZXNfc3VwcG9ydGVkIjpbIkVTMjU2IiwiRVMyNTZLIiwiRVMzODQiLCJFUzUxMiIsIlJTMjU2IiwiUlMzODQiLCJSUzUxMiIsIlBTMjU2IiwiUFMzODQiLCJQUzUxMiJdfSwiZmVkZXJhdGlvbl9lbnRpdHkiOnsib3JnYW5pemF0aW9uX25hbWUiOiJQYWdvUGEgUy5wLkEuIiwiaG9tZXBhZ2VfdXJpIjoiaHR0cHM6Ly9pby5pdGFsaWEuaXQvIiwicG9saWN5X3VyaSI6Imh0dHBzOi8vaW8uaXRhbGlhLml0L3ByaXZhY3ktcG9saWN5LyIsInRvc191cmkiOiJodHRwczovL2lvLml0YWxpYS5pdC9wcml2YWN5LXBvbGljeS8iLCJsb2dvX3VyaSI6Imh0dHBzOi8vaW8uaXRhbGlhLml0L2Fzc2V0cy9pbWcvaW8taXQtbG9nby13aGl0ZS5zdmcifX0sImlhdCI6MTY4OTIzNjYzNSwiZXhwIjoxNjg5MjQwMjM1fQ.6wA0M6rNYNSFN_EylzMA6ElAibW7FVSZyoLNEkHU5c_RKuiNenT08YIMvbysYautLZotUedEMP5xCyNpY34x6Q'
38
- *
39
- * const isSignatureValid = await verify(jwt, jwk)
40
- * ```
41
- *
42
- * @param jwt JSON Web Token value (encoded as JWS).
43
- * @param key Public key to verify the JWT in JWK format.
44
- */
45
- export declare const isSignatureValid: (token: string, jwk: JWK) => Promise<boolean>;
46
- /**
47
- * Verifies the JWT format (to be a JWS Compact format), verifies the JWS signature, validates the
48
- * JWT Claims Set.
49
- *
50
- * @example Usage with a public JWK encoded RSA key
51
- *
52
- * ```js
53
- * const jwk = {
54
- * crv: 'P-256',
55
- * kty: 'EC',
56
- * x: 'qrJrj3Af_B57sbOIRrcBM7br7wOc8ynj7lHFPTeffUk',
57
- * y: '1H0cWDyGgvU8w-kPKU_xycOCUNT2o0bwslIQtnPU6iM',
58
- * }
59
- * const jwt =
60
- * 'eyJ0eXAiOiJlbnRpdHktc3RhdGVtZW50K2p3dCIsImtpZCI6IkVDIzEiLCJhbGciOiJFUzI1NiJ9.eyJpc3MiOiJodHRwczovL2lvLWQtd2FsbGV0LWl0LmF6dXJld2Vic2l0ZXMubmV0LyIsInN1YiI6Imh0dHBzOi8vaW8tZC13YWxsZXQtaXQuYXp1cmV3ZWJzaXRlcy5uZXQvIiwibWV0YWRhdGEiOnsiZXVkaV93YWxsZXRfcHJvdmlkZXIiOnsiandrcyI6W3siY3J2IjoiUC0yNTYiLCJrdHkiOiJFQyIsIngiOiJxckpyajNBZl9CNTdzYk9JUnJjQk03YnI3d09jOHluajdsSEZQVGVmZlVrIiwieSI6IjFIMGNXRHlHZ3ZVOHcta1BLVV94eWNPQ1VOVDJvMGJ3c2xJUXRuUFU2aU0iLCJraWQiOiJFQyMxIn1dLCJ0b2tlbl9lbmRwb2ludCI6Imh0dHBzOi8vaW8tZC13YWxsZXQtaXQuYXp1cmV3ZWJzaXRlcy5uZXQvdG9rZW4iLCJhc2NfdmFsdWVzX3N1cHBvcnRlZCI6WyJodHRwczovL2lvLWQtd2FsbGV0LWl0LmF6dXJld2Vic2l0ZXMubmV0L0xvQS9iYXNpYyIsImh0dHBzOi8vaW8tZC13YWxsZXQtaXQuYXp1cmV3ZWJzaXRlcy5uZXQvTG9BL21lZGl1bSIsImh0dHBzOi8vaW8tZC13YWxsZXQtaXQuYXp1cmV3ZWJzaXRlcy5uZXQvTG9BL2hpZ2h0Il0sImdyYW50X3R5cGVzX3N1cHBvcnRlZCI6WyJ1cm46aWV0ZjpwYXJhbXM6b2F1dGg6Y2xpZW50LWFzc2VydGlvbi10eXBlOmp3dC1rZXktYXR0ZXN0YXRpb24iXSwidG9rZW5fZW5kcG9pbnRfYXV0aF9tZXRob2RzX3N1cHBvcnRlZCI6WyJwcml2YXRlX2tleV9qd3QiXSwidG9rZW5fZW5kcG9pbnRfYXV0aF9zaWduaW5nX2FsZ192YWx1ZXNfc3VwcG9ydGVkIjpbIkVTMjU2IiwiRVMyNTZLIiwiRVMzODQiLCJFUzUxMiIsIlJTMjU2IiwiUlMzODQiLCJSUzUxMiIsIlBTMjU2IiwiUFMzODQiLCJQUzUxMiJdfSwiZmVkZXJhdGlvbl9lbnRpdHkiOnsib3JnYW5pemF0aW9uX25hbWUiOiJQYWdvUGEgUy5wLkEuIiwiaG9tZXBhZ2VfdXJpIjoiaHR0cHM6Ly9pby5pdGFsaWEuaXQvIiwicG9saWN5X3VyaSI6Imh0dHBzOi8vaW8uaXRhbGlhLml0L3ByaXZhY3ktcG9saWN5LyIsInRvc191cmkiOiJodHRwczovL2lvLml0YWxpYS5pdC9wcml2YWN5LXBvbGljeS8iLCJsb2dvX3VyaSI6Imh0dHBzOi8vaW8uaXRhbGlhLml0L2Fzc2V0cy9pbWcvaW8taXQtbG9nby13aGl0ZS5zdmcifX0sImlhdCI6MTY4OTIzNjYzNSwiZXhwIjoxNjg5MjQwMjM1fQ.6wA0M6rNYNSFN_EylzMA6ElAibW7FVSZyoLNEkHU5c_RKuiNenT08YIMvbysYautLZotUedEMP5xCyNpY34x6Q'
61
- *
62
- * const { payload, protectedHeader } = await verify(jwt, jwk, {
63
- * typ: 'entity-statement+jwt',
64
- * requiredClaims: ['iss', 'sub', 'metadata'],
65
- * })
66
- * ```
67
- *
68
- * @param jwt JSON Web Token value (encoded as JWS).
69
- * @param key Public key to verify the JWT in JWK format.
70
- * @param options JWT Decryption and JWT Claims Set validation options.
71
- */
72
- export declare const verify: (token: string, jwk: JWK, options?: JWTClaimVerificationOptions) => Promise<JWTDecodeResult>;
73
- /**
74
- * Calculate JWK thumbprint
75
- *
76
- * @example Get JWK thumbprint
77
- *
78
- * ```js
79
- * const jwk: JWK = {
80
- * crv: 'P-256',
81
- * kty: 'EC',
82
- * x: 'qrJrj3Af_B57sbOIRrcBM7br7wOc8ynj7lHFPTeffUk',
83
- * y: '1H0cWDyGgvU8w-kPKU_xycOCUNT2o0bwslIQtnPU6iM',
84
- * };
85
-
86
- * const thumbprint = await thumbprint(jwk)
87
- *
88
- * ```
89
- *
90
- * @param jwk JSON Web Key
91
- */
92
- export declare const thumbprint: (jwk: JWK) => Promise<string>;
93
10
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,GAAG,EACH,2BAA2B,EAC3B,eAAe,EAChB,MAAM,SAAS,CAAC;AAMjB,cAAc,WAAW,CAAC;AAC1B,cAAc,QAAQ,CAAC;AACvB,cAAc,aAAa,CAAC;AAC5B,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;AACxC;;;;;;;;;;;;;;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;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,eAAO,MAAM,MAAM,UACV,MAAM,OACR,GAAG,YACC,2BAA2B,KACnC,QAAQ,eAAe,CAUzB,CAAC;AAEF;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,UAAU,QAAS,GAAG,KAAG,QAAQ,MAAM,CAClB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.tsx"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAEhC,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"}
@@ -0,0 +1,32 @@
1
+ import type { JWEHeaderParameters, JWK } from '../types';
2
+ /**
3
+ * The EncryptJwe class is used to build and encrypt Flattened JWE objects.
4
+ *
5
+ * @example Usage
6
+ *
7
+ * ```js
8
+ * const jwe = await new EncryptJwe(
9
+ * new TextEncoder().encode('It’s a dangerous business, Frodo, going out your door.', { alg: 'RSA-OAEP-256', enc: 'A256GCM' }),
10
+ * )
11
+ * .encrypt(publicKey)
12
+ *
13
+ * console.log(jwe)
14
+ * ```
15
+ */
16
+ export declare class EncryptJwe {
17
+ private _plaintext;
18
+ private _protectedHeader;
19
+ /** @param plaintext String representation of the plaintext to encrypt. */
20
+ /** @param header JWE header with alg and enc parameters. */
21
+ constructor(plaintext: String, header: JWEHeaderParameters & {
22
+ alg: string;
23
+ enc: string;
24
+ });
25
+ /**
26
+ * Encrypts and resolves the value of the Flattened JWE object.
27
+ *
28
+ * @param key Public Key or Secret to encrypt the JWE with. See
29
+ */
30
+ encrypt(key: JWK): Promise<string>;
31
+ }
32
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/jwe/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAGzD;;;;;;;;;;;;;GAaG;AACH,qBAAa,UAAU;IACrB,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,gBAAgB,CAAsD;IAE9E,0EAA0E;IAC1E,4DAA4D;gBAE1D,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,mBAAmB,GAAG;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE;IAM5D;;;;OAIG;IACG,OAAO,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC;CAQzC"}