@pagopa/io-react-native-jwt 0.6.4 → 1.1.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 (58) hide show
  1. package/README.md +33 -37
  2. package/android/build.gradle +1 -1
  3. package/android/src/main/java/com/pagopa/ioreactnativejwt/IoReactNativeJwtModule.kt +22 -4
  4. package/ios/IoReactNativeJwt.xcodeproj/project.xcworkspace/contents.xcworkspacedata +4 -0
  5. package/ios/IoReactNativeJwt.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +8 -0
  6. package/ios/IoReactNativeJwt.xcodeproj/project.xcworkspace/xcuserdata/francesco.grauso.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
  7. package/ios/IoReactNativeJwt.xcodeproj/xcuserdata/francesco.grauso.xcuserdatad/xcschemes/xcschememanagement.plist +14 -0
  8. package/lib/commonjs/algorithms.js +34 -2
  9. package/lib/commonjs/algorithms.js.map +1 -1
  10. package/lib/commonjs/jwt/produce.js +8 -2
  11. package/lib/commonjs/jwt/produce.js.map +1 -1
  12. package/lib/commonjs/jwt/sign.js +54 -75
  13. package/lib/commonjs/jwt/sign.js.map +1 -1
  14. package/lib/commonjs/jwt/unsecured.js +2 -2
  15. package/lib/commonjs/jwt/unsecured.js.map +1 -1
  16. package/lib/commonjs/types.js +1 -1
  17. package/lib/commonjs/types.js.map +1 -1
  18. package/lib/commonjs/utils/asn1.js.map +1 -1
  19. package/lib/commonjs/utils/crypto.js +6 -0
  20. package/lib/commonjs/utils/crypto.js.map +1 -0
  21. package/lib/module/algorithms.js +31 -0
  22. package/lib/module/algorithms.js.map +1 -1
  23. package/lib/module/jwt/produce.js +8 -2
  24. package/lib/module/jwt/produce.js.map +1 -1
  25. package/lib/module/jwt/sign.js +56 -78
  26. package/lib/module/jwt/sign.js.map +1 -1
  27. package/lib/module/jwt/unsecured.js +2 -2
  28. package/lib/module/jwt/unsecured.js.map +1 -1
  29. package/lib/module/types.js +1 -1
  30. package/lib/module/types.js.map +1 -1
  31. package/lib/module/utils/asn1.js.map +1 -1
  32. package/lib/module/utils/crypto.js +2 -0
  33. package/lib/module/utils/crypto.js.map +1 -0
  34. package/lib/typescript/algorithms.d.ts +5 -2
  35. package/lib/typescript/algorithms.d.ts.map +1 -1
  36. package/lib/typescript/index.d.ts +1 -0
  37. package/lib/typescript/index.d.ts.map +1 -1
  38. package/lib/typescript/jwt/produce.d.ts +1 -1
  39. package/lib/typescript/jwt/produce.d.ts.map +1 -1
  40. package/lib/typescript/jwt/sign.d.ts +26 -26
  41. package/lib/typescript/jwt/sign.d.ts.map +1 -1
  42. package/lib/typescript/jwt/unsecured.d.ts +2 -2
  43. package/lib/typescript/jwt/unsecured.d.ts.map +1 -1
  44. package/lib/typescript/types.d.ts +5 -4
  45. package/lib/typescript/types.d.ts.map +1 -1
  46. package/lib/typescript/utils/asn1.d.ts +2 -1
  47. package/lib/typescript/utils/asn1.d.ts.map +1 -1
  48. package/lib/typescript/utils/crypto.d.ts +25 -0
  49. package/lib/typescript/utils/crypto.d.ts.map +1 -0
  50. package/package.json +2 -2
  51. package/src/algorithms.ts +38 -3
  52. package/src/index.ts +1 -0
  53. package/src/jwt/produce.ts +4 -3
  54. package/src/jwt/sign.ts +64 -101
  55. package/src/jwt/unsecured.ts +5 -5
  56. package/src/types.ts +5 -4
  57. package/src/utils/asn1.ts +6 -2
  58. package/src/utils/crypto.ts +25 -0
package/README.md CHANGED
@@ -4,11 +4,9 @@ A fast implementation of `jwt` module.
4
4
  Provides much greater performance for decoding, signing and verifying JWTs!
5
5
 
6
6
  🚀 Use only native functions via the following libraries:
7
- - 🤖 [nimbus-jose-jwt](https://github.com/felx/nimbus-jose-jwt/) on Android
8
- - 📱 [JOSESwift](https://github.com/airsidemobile/JOSESwift/) on iOS
9
-
10
-
11
7
 
8
+ - 🤖 [nimbus-jose-jwt](https://bitbucket.org/connect2id/nimbus-jose-jwt) on Android
9
+ - 📱 [JOSESwift](https://github.com/airsidemobile/JOSESwift/) on iOS
12
10
 
13
11
  ## Installation
14
12
 
@@ -26,7 +24,7 @@ For detailed documentation go [here](/docs/modules/index.md)
26
24
  import { decode } from '@pagopa/io-react-native-jwt';
27
25
 
28
26
  // ...
29
- const jwt = "eyJ0eXAiOiJlbnRpdHktc3.....";
27
+ const jwt = 'eyJ0eXAiOiJlbnRpdHktc3.....';
30
28
  const result = await decode(jwt);
31
29
  console.log(result);
32
30
  ```
@@ -38,18 +36,18 @@ import { verify } from '@pagopa/io-react-native-jwt';
38
36
 
39
37
  // ...
40
38
  const pubJwk = {
41
- crv: 'P-256',
42
- kty: 'EC',
43
- x: 'qrJrj.....',
44
- y: '1H0cW.....',
45
- };
46
- const jwt = "eyJ0eXAiOiJlbnRpdHktc3.....";
39
+ crv: 'P-256',
40
+ kty: 'EC',
41
+ x: 'qrJrj.....',
42
+ y: '1H0cW.....',
43
+ };
44
+ const jwt = 'eyJ0eXAiOiJlbnRpdHktc3.....';
47
45
  const options = {
48
- typ: 'jwt',
49
- requiredClaims: ['iss', 'sub'],
50
- }
51
- const {protectedHeader, payload} = await verify(jwt, pubJwk, options);
52
- console.log(protectedHeader, payload)
46
+ typ: 'jwt',
47
+ requiredClaims: ['iss', 'sub'],
48
+ };
49
+ const { protectedHeader, payload } = await verify(jwt, pubJwk, options);
50
+ console.log(protectedHeader, payload);
53
51
  ```
54
52
 
55
53
  ### Verify JWT with JWKS fetched from remote URL
@@ -61,10 +59,10 @@ import { verify, getRemoteJWKSet } from '@pagopa/io-react-native-jwt';
61
59
  const wellKnownUrl = 'https://example.com/.well-known/openid-federation';
62
60
  const jwks = await getRemoteJWKSet(wellKnownUrl);
63
61
 
64
- const jwt = "eyJ0eXAiOiJlbnRpdHktc3.....";
62
+ const jwt = 'eyJ0eXAiOiJlbnRpdHktc3.....';
65
63
 
66
- const {protectedHeader, payload} = await verify(jwt, jwks);
67
- console.log(protectedHeader, payload)
64
+ const { protectedHeader, payload } = await verify(jwt, jwks);
65
+ console.log(protectedHeader, payload);
68
66
  ```
69
67
 
70
68
  ### Verify a JWT signature (JWS)
@@ -93,21 +91,19 @@ if isValid {
93
91
  ### Create and sign a JWT with a JWS
94
92
 
95
93
  ```js
96
- // Create unsecured jwt
97
- let jwtToSign = new SignJWT({ metadata: 'demo' })
98
- .setProtectedHeader({ alg: 'ES256', typ: 'JWT' })
94
+ // Define a cryptographic context suitable for the application needs
95
+ const crypto: CryptoContext = userDefinedCryptoContext();
96
+
97
+ // Create jwt
98
+ const jwt = new SignJWT(crypto)
99
+ .setPayload({ metadata: 'demo' })
100
+ .setProtectedHeader({ typ: 'JWT' })
99
101
  .setAudience('demo')
100
102
  .setExpirationTime('1h')
101
- .setIssuedAt()
102
- .toSign();
103
-
104
- // Create signature
105
- let signature = signWithMyCustomFunction(jwtToSign);
106
-
107
- // Create signed JWT
108
- let signedJwt = await SignJWT.appendSignature(jwtToSign, signature);
103
+ .setIssuedAt();
109
104
 
110
- console.log(signedJwt)
105
+ // get signed jwt
106
+ const signedJwt = jwt.sign();
111
107
  ```
112
108
 
113
109
  ### JWK thumbprint
@@ -117,13 +113,13 @@ import { thumbprint } from '@pagopa/io-react-native-jwt';
117
113
 
118
114
  // ...
119
115
  const pubJwk = {
120
- crv: 'P-256',
121
- kty: 'EC',
122
- x: 'qrJrj.....',
123
- y: '1H0cW.....',
124
- };
116
+ crv: 'P-256',
117
+ kty: 'EC',
118
+ x: 'qrJrj.....',
119
+ y: '1H0cW.....',
120
+ };
125
121
  const thumbprint = await thumbprint(pubJwk);
126
- console.log(thumbprint)
122
+ console.log(thumbprint);
127
123
  ```
128
124
 
129
125
  ##  Signature format
@@ -83,7 +83,7 @@ dependencies {
83
83
  //noinspection GradleDynamicVersion
84
84
  implementation "com.facebook.react:react-native:+"
85
85
  implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
86
- implementation 'com.nimbusds:nimbus-jose-jwt:8.0'
86
+ implementation 'com.nimbusds:nimbus-jose-jwt:9.30.2'
87
87
  implementation 'org.bouncycastle:bcprov-jdk15on:[1.56,)'
88
88
 
89
89
  }
@@ -7,9 +7,11 @@ import com.facebook.react.bridge.ReactApplicationContext
7
7
  import com.facebook.react.bridge.ReactContextBaseJavaModule
8
8
  import com.facebook.react.bridge.ReactMethod
9
9
  import com.facebook.react.bridge.ReadableMap
10
+ import com.nimbusds.jose.JOSEObject
10
11
  import com.nimbusds.jose.JWEEncrypter
11
12
  import com.nimbusds.jose.JWEHeader
12
13
  import com.nimbusds.jose.JWEObject
14
+ import com.nimbusds.jose.JWSHeader
13
15
  import com.nimbusds.jose.Payload
14
16
  import com.nimbusds.jose.crypto.ECDSAVerifier
15
17
  import com.nimbusds.jose.crypto.RSAEncrypter
@@ -18,9 +20,11 @@ import com.nimbusds.jose.crypto.bc.BouncyCastleProviderSingleton
18
20
  import com.nimbusds.jose.crypto.impl.ECDSA.transcodeSignatureToConcat
19
21
  import com.nimbusds.jose.jwk.ECKey
20
22
  import com.nimbusds.jose.jwk.RSAKey
21
- import com.nimbusds.jwt.SignedJWT
23
+ import com.nimbusds.jose.util.JSONObjectUtils
24
+ import com.nimbusds.jose.util.StandardCharset
22
25
  import org.json.JSONObject
23
26
  import java.security.MessageDigest
27
+ import java.text.ParseException
24
28
 
25
29
 
26
30
  class IoReactNativeJwtModule(reactContext: ReactApplicationContext) :
@@ -37,7 +41,21 @@ class IoReactNativeJwtModule(reactContext: ReactApplicationContext) :
37
41
  @ReactMethod
38
42
  fun verify(token: String, jwk: ReadableMap, promise: Promise) {
39
43
  try {
40
- val signedJWT = SignedJWT.parse(token)
44
+
45
+ val parts = JOSEObject.split(token)
46
+ if (parts.size != 3) {
47
+ throw ParseException("Unexpected number of Base64URL parts, must be three", 0)
48
+ }
49
+
50
+ val headerString = parts[0]
51
+ val headerJson = JSONObjectUtils.parse(headerString.decodeToString(), -1);
52
+ val header = JWSHeader.parse(headerJson, headerString);
53
+
54
+ val payload = Payload(parts[1])
55
+ val signature = parts[2]
56
+
57
+ var signingInput = header.toBase64URL().toString() + '.' + payload.toBase64URL().toString();
58
+ val signingInputByteArray = signingInput.toByteArray(StandardCharset.UTF_8)
41
59
  val jwkJson = JSONObject(jwk.toHashMap())
42
60
  var isValid = false
43
61
 
@@ -45,12 +63,12 @@ class IoReactNativeJwtModule(reactContext: ReactApplicationContext) :
45
63
  val internalJwk = ECKey.parse(jwkJson.toString())
46
64
  val verifier = ECDSAVerifier(internalJwk)
47
65
  verifier.jcaContext.provider = BouncyCastleProviderSingleton.getInstance()
48
- isValid = signedJWT.verify(verifier)
66
+ isValid = verifier.verify(header, signingInputByteArray, signature);
49
67
  } else {
50
68
  val internalJwk = RSAKey.parse(jwkJson.toString())
51
69
  val verifier = RSASSAVerifier(internalJwk)
52
70
  verifier.jcaContext.provider = BouncyCastleProviderSingleton.getInstance()
53
- isValid = signedJWT.verify(verifier)
71
+ isValid = verifier.verify(header, signingInputByteArray, signature);
54
72
  }
55
73
  promise.resolve(isValid)
56
74
 
@@ -0,0 +1,4 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <Workspace
3
+ version = "1.0">
4
+ </Workspace>
@@ -0,0 +1,8 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3
+ <plist version="1.0">
4
+ <dict>
5
+ <key>IDEDidComputeMac32BitWarning</key>
6
+ <true/>
7
+ </dict>
8
+ </plist>
@@ -0,0 +1,14 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3
+ <plist version="1.0">
4
+ <dict>
5
+ <key>SchemeUserState</key>
6
+ <dict>
7
+ <key>IoReactNativeJwt.xcscheme_^#shared#^_</key>
8
+ <dict>
9
+ <key>orderHint</key>
10
+ <integer>0</integer>
11
+ </dict>
12
+ </dict>
13
+ </dict>
14
+ </plist>
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.supportedAlgorithms = exports.isAlgSupported = exports.getKtyFromAlg = exports.getCoordinateOctetLength = void 0;
6
+ exports.supportedAlgorithms = exports.isAlgSupported = exports.getKtyFromAlg = exports.getCoordinateOctetLength = exports.getAlgFromKey = void 0;
7
7
  var _errors = require("./utils/errors");
8
8
  const supportedAlgorithms = ['RS256', 'RS384', 'RS512', 'PS256', 'PS384', 'PS512', 'ES256', 'ES384', 'ES512'];
9
9
  exports.supportedAlgorithms = supportedAlgorithms;
@@ -20,9 +20,41 @@ const getKtyFromAlg = alg => {
20
20
  throw new _errors.JOSENotSupported('Unsupported "alg" value for a JSON Web Key Set');
21
21
  }
22
22
  };
23
+ exports.getKtyFromAlg = getKtyFromAlg;
24
+ const getAlgFromKey = _ref => {
25
+ let {
26
+ kty,
27
+ alg,
28
+ crv
29
+ } = _ref;
30
+ if (kty === 'RSA' && alg && isAlgSupported(alg)) {
31
+ return alg;
32
+ } else if (kty === 'EC') {
33
+ return getAlgFromEllipticCurveKey(crv);
34
+ }
35
+ throw new _errors.JOSENotSupported(`Unable to determine a supported algorithm for ${JSON.stringify({
36
+ kty,
37
+ alg,
38
+ crv
39
+ })}`);
40
+ };
41
+ exports.getAlgFromKey = getAlgFromKey;
42
+ const getAlgFromEllipticCurveKey = crv => {
43
+ switch (crv) {
44
+ case 'P-256':
45
+ return 'ES256';
46
+ case 'P-384':
47
+ return 'ES384';
48
+ case 'P-512':
49
+ case 'P-521':
50
+ // https://github.com/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet/blob/dev/src/Microsoft.IdentityModel.Tokens/JsonWebKeyECTypes.cs#L40
51
+ return 'ES512';
52
+ default:
53
+ throw new _errors.JOSENotSupported(`Unsupported "crv" value for an elliptic curve key (${crv})`);
54
+ }
55
+ };
23
56
 
24
57
  // Coordinates length in bytes: bits/8
25
- exports.getKtyFromAlg = getKtyFromAlg;
26
58
  const getCoordinateOctetLength = alg => {
27
59
  switch (alg.slice(2, 5)) {
28
60
  case '256':
@@ -1 +1 @@
1
- {"version":3,"names":["_errors","require","supportedAlgorithms","exports","isAlgSupported","alg","includes","toUpperCase","getKtyFromAlg","slice","JOSENotSupported","getCoordinateOctetLength"],"sourceRoot":"../../src","sources":["algorithms.ts"],"mappings":";;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AAEO,MAAMC,mBAAmB,GAAG,CACjC,OAAO,EACP,OAAO,EACP,OAAO,EACP,OAAO,EACP,OAAO,EACP,OAAO,EACP,OAAO,EACP,OAAO,EACP,OAAO,CACR;AAACC,OAAA,CAAAD,mBAAA,GAAAA,mBAAA;AAEK,MAAME,cAAc,GAAIC,GAAW,IACxCH,mBAAmB,CAACI,QAAQ,CAACD,GAAG,CAACE,WAAW,CAAC,CAAC,CAAC;AAACJ,OAAA,CAAAC,cAAA,GAAAA,cAAA;AAE3C,MAAMI,aAAa,GAAIH,GAAW,IAAK;EAC5C,QAAQA,GAAG,CAACI,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;IACrB,KAAK,IAAI;IACT,KAAK,IAAI;MACP,OAAO,KAAK;IACd,KAAK,IAAI;MACP,OAAO,IAAI;IACb;MACE,MAAM,IAAIC,wBAAgB,CACxB,gDACF,CAAC;EACL;AACF,CAAC;;AAED;AAAAP,OAAA,CAAAK,aAAA,GAAAA,aAAA;AACO,MAAMG,wBAAwB,GAAIN,GAAW,IAAK;EACvD,QAAQA,GAAG,CAACI,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;IACrB,KAAK,KAAK;MACR,OAAO,EAAE;IACX,KAAK,KAAK;MACR,OAAO,EAAE;IACX,KAAK,KAAK;MACR,OAAO,EAAE;IACX;MACE,MAAM,IAAIC,wBAAgB,CACxB,gDACF,CAAC;EACL;AACF,CAAC;AAACP,OAAA,CAAAQ,wBAAA,GAAAA,wBAAA"}
1
+ {"version":3,"names":["_errors","require","supportedAlgorithms","exports","isAlgSupported","alg","includes","toUpperCase","getKtyFromAlg","slice","JOSENotSupported","getAlgFromKey","_ref","kty","crv","getAlgFromEllipticCurveKey","JSON","stringify","getCoordinateOctetLength"],"sourceRoot":"../../src","sources":["algorithms.ts"],"mappings":";;;;;;AACA,IAAAA,OAAA,GAAAC,OAAA;AAEO,MAAMC,mBAAmB,GAAG,CACjC,OAAO,EACP,OAAO,EACP,OAAO,EACP,OAAO,EACP,OAAO,EACP,OAAO,EACP,OAAO,EACP,OAAO,EACP,OAAO,CACC;AAACC,OAAA,CAAAD,mBAAA,GAAAA,mBAAA;AAGJ,MAAME,cAAc,GAAIC,GAAW,IACvCH,mBAAmB,CAAyBI,QAAQ,CAACD,GAAG,CAACE,WAAW,CAAC,CAAC,CAAC;AAACJ,OAAA,CAAAC,cAAA,GAAAA,cAAA;AAEpE,MAAMI,aAAa,GAAIH,GAAW,IAAK;EAC5C,QAAQA,GAAG,CAACI,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;IACrB,KAAK,IAAI;IACT,KAAK,IAAI;MACP,OAAO,KAAK;IACd,KAAK,IAAI;MACP,OAAO,IAAI;IACb;MACE,MAAM,IAAIC,wBAAgB,CACxB,gDACF,CAAC;EACL;AACF,CAAC;AAACP,OAAA,CAAAK,aAAA,GAAAA,aAAA;AAEK,MAAMG,aAAa,GAAGC,IAAA,IAAgD;EAAA,IAA/C;IAAEC,GAAG;IAAER,GAAG;IAAES;EAAS,CAAC,GAAAF,IAAA;EAClD,IAAIC,GAAG,KAAK,KAAK,IAAIR,GAAG,IAAID,cAAc,CAACC,GAAG,CAAC,EAAE;IAC/C,OAAOA,GAAG;EACZ,CAAC,MAAM,IAAIQ,GAAG,KAAK,IAAI,EAAE;IACvB,OAAOE,0BAA0B,CAACD,GAAG,CAAC;EACxC;EAEA,MAAM,IAAIJ,wBAAgB,CACvB,iDAAgDM,IAAI,CAACC,SAAS,CAAC;IAC9DJ,GAAG;IACHR,GAAG;IACHS;EACF,CAAC,CAAE,EACL,CAAC;AACH,CAAC;AAACX,OAAA,CAAAQ,aAAA,GAAAA,aAAA;AAEF,MAAMI,0BAA0B,GAAID,GAAe,IAAyB;EAC1E,QAAQA,GAAG;IACT,KAAK,OAAO;MACV,OAAO,OAAO;IAChB,KAAK,OAAO;MACV,OAAO,OAAO;IAChB,KAAK,OAAO;IACZ,KAAK,OAAO;MAAE;MACZ,OAAO,OAAO;IAEhB;MACE,MAAM,IAAIJ,wBAAgB,CACvB,sDAAqDI,GAAI,GAC5D,CAAC;EACL;AACF,CAAC;;AAED;AACO,MAAMI,wBAAwB,GAAIb,GAAW,IAAK;EACvD,QAAQA,GAAG,CAACI,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;IACrB,KAAK,KAAK;MACR,OAAO,EAAE;IACX,KAAK,KAAK;MACR,OAAO,EAAE;IACX,KAAK,KAAK;MACR,OAAO,EAAE;IACX;MACE,MAAM,IAAIC,wBAAgB,CACxB,gDACF,CAAC;EACL;AACF,CAAC;AAACP,OAAA,CAAAe,wBAAA,GAAAA,wBAAA"}
@@ -11,12 +11,18 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
11
11
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
12
12
  /** Generic class for JWT producing. */
13
13
  class ProduceJWT {
14
+ _payload = {};
15
+
14
16
  /** @param payload The JWT Claims Set object. */
15
- constructor(payload) {
17
+ setPayload(payload) {
16
18
  if (!(0, _is_object.default)(payload)) {
17
19
  throw new TypeError('JWT Claims Set MUST be an object');
18
20
  }
19
- this._payload = payload;
21
+ this._payload = {
22
+ ...this._payload,
23
+ ...payload
24
+ };
25
+ return this;
20
26
  }
21
27
 
22
28
  /**
@@ -1 +1 @@
1
- {"version":3,"names":["_is_object","_interopRequireDefault","require","_secs","_interopRequireWildcard","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","ProduceJWT","constructor","payload","isObject","TypeError","_payload","setIssuer","issuer","iss","setSubject","subject","sub","setAudience","audience","aud","setJti","jwtId","jti","setNotBefore","input","nbf","epoch","Date","secs","setExpirationTime","exp","setIssuedAt","iat","exports"],"sourceRoot":"../../../src","sources":["jwt/produce.ts"],"mappings":"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"}
1
+ {"version":3,"names":["_is_object","_interopRequireDefault","require","_secs","_interopRequireWildcard","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","ProduceJWT","_payload","setPayload","payload","isObject","TypeError","setIssuer","issuer","iss","setSubject","subject","sub","setAudience","audience","aud","setJti","jwtId","jti","setNotBefore","input","nbf","epoch","Date","secs","setExpirationTime","exp","setIssuedAt","iat","exports"],"sourceRoot":"../../../src","sources":["jwt/produce.ts"],"mappings":"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"}
@@ -15,115 +15,94 @@ var _asn = require("../utils/asn1");
15
15
  * @example Usage with a given signature
16
16
  *
17
17
  * ```js
18
- * const alg = 'RS256'
19
- * const signature = 'Axy0....'
18
+ * const crypto: Crypto = { any implementation fo Crypto interface }
20
19
  *
21
- * const jwt = new SignJWT({ 'urn:example:claim': true })
22
- * .setProtectedHeader({ alg })
20
+ * const jwt = new SignJWT(crypto)
21
+ * .setPayload({ 'urn:example:claim': true })
22
+ * .setProtectedHeader({ typ })
23
23
  * .setIssuedAt()
24
24
  * .setIssuer('urn:example:issuer')
25
25
  * .setAudience('urn:example:audience')
26
26
  * .setExpirationTime('2h')
27
- * .sign(signature)
28
27
  *
29
- * console.log(jwt)
28
+ * jwt.data()
29
+ * await jwt.sign()
30
30
  * ```
31
31
  */
32
+
32
33
  class SignJWT extends _produce.ProduceJWT {
34
+ _protectedHeader = {};
35
+ /**
36
+ * @param crypto An implementation of the crypto interface. @see utils/crypto for more.
37
+ */
38
+ constructor(crypto) {
39
+ super();
40
+ this.crypto = crypto;
41
+ }
42
+
33
43
  /**
34
44
  * Sets the JWS Protected Header on the SignJWT object.
45
+ * Any invocation overrides what's been already put in the header.
46
+ * Value for "alg" are ignored, as it will be inferred by the key used by the cryptographic context.
35
47
  *
36
- * @param protectedHeader JWS Protected Header. Must contain an "alg" (JWS Algorithm) property.
48
+ * @param protectedHeader JWS Protected Header.
37
49
  */
38
50
  setProtectedHeader(protectedHeader) {
39
- if (protectedHeader.alg && (0, _algorithms.isAlgSupported)(protectedHeader.alg)) {
40
- this._protectedHeader = protectedHeader;
41
- return this;
42
- }
43
- throw new _errors.JOSENotSupported('Unsupported "alg" value');
51
+ this._protectedHeader = protectedHeader;
52
+ return this;
44
53
  }
45
54
 
46
55
  /**
47
- * Return a JWT without signature (`header.payload`) to sign.
56
+ * Return a JWT without signature (`header.payload`).
48
57
  *
49
58
  */
50
- toSign() {
51
- if (!this._protectedHeader || !this._protectedHeader.alg) {
52
- throw new _errors.JWSInvalid('Missing signature algorithm. Specify the `alg` field');
53
- }
54
- const protectedHeader = (0, _base.encodeBase64)(JSON.stringify(this._protectedHeader));
55
- const payload = (0, _base.encodeBase64)(JSON.stringify(this._payload));
56
- if (payload && protectedHeader) {
57
- return `${protectedHeader}.${payload}`;
58
- } else {
59
- throw new _errors.JWSInvalid();
60
- }
59
+ async unsigned() {
60
+ const {
61
+ alg
62
+ } = await this.getSelectedSigningAlgorithm();
63
+ return [{
64
+ ...this._protectedHeader,
65
+ alg
66
+ }, this._payload].map(e => JSON.stringify(e)).map(_base.encodeBase64).join('.');
67
+ }
68
+ async getSelectedSigningAlgorithm() {
69
+ const publicKey = await this.crypto.getPublicKey();
70
+ const alg = (0, _algorithms.getAlgFromKey)(publicKey);
71
+ return {
72
+ kty: publicKey.kty,
73
+ alg
74
+ };
61
75
  }
62
76
 
63
77
  /**
64
- * Append signature to unsigned JWT.
65
- * For an ECDSA signature it is required that this is in ASN.1/DER encoded format.
66
- * The same format used by the TEE. Conversion to JWS is handled automatically.
78
+ * Return a signed JWT.
67
79
  *
68
- * @param jwtWithoutSignature
69
- * @param signature
70
80
  */
71
- static async appendSignature(jwtWithoutSignature, signature) {
72
- if (typeof jwtWithoutSignature !== 'string' || typeof signature !== 'string') {
73
- throw new _errors.JWTInvalid('JWS must be a string');
74
- }
75
- if (signature === '') throw new _errors.JWSInvalid('Invalid signature');
76
- const jwtDecoded = SignJWT.decodeJwtWithoutSignature(jwtWithoutSignature);
77
- const alg = jwtDecoded.header.alg;
78
- const kty = (0, _algorithms.getKtyFromAlg)(alg);
79
- if (kty === 'EC') {
80
- const encodedJws = await (0, _asn.derToJose)(signature, alg);
81
- return `${jwtWithoutSignature}.${encodedJws}`;
82
- } else {
83
- const encodedJws = (0, _base.removePadding)(signature);
84
- return `${jwtWithoutSignature}.${encodedJws}`;
85
- }
81
+ async sign() {
82
+ const unsigned = await this.unsigned();
83
+ const signature = await this.crypto.getSignature(unsigned);
84
+ const {
85
+ kty,
86
+ alg
87
+ } = await this.getSelectedSigningAlgorithm();
88
+ const encodedJws = await (kty === 'EC' ? (0, _asn.derToJose)(signature, alg) : (0, _base.removePadding)(signature));
89
+ return `${unsigned}.${encodedJws}`;
86
90
  }
87
91
 
88
92
  /**
89
- * Decodes a JWT without signature
90
- *
91
- * @param jwtWithoutSignature JWT to sign that needs to be decoded.
93
+ * Plain data of the produced JWT
92
94
  */
93
- static decodeJwtWithoutSignature(jwtWithoutSignature) {
94
- if (typeof jwtWithoutSignature !== 'string') {
95
- throw new _errors.JWTInvalid('JWT must be a string');
96
- }
97
- const {
98
- 0: encodedHeader,
99
- 1: encodedPayload,
100
- length
101
- } = jwtWithoutSignature.split('.');
102
- let header;
103
- try {
104
- let decoded = (0, _base.decodeBase64)(encodedHeader);
105
- header = JSON.parse(decoded);
106
- if (!header.alg || !(0, _algorithms.isAlgSupported)(header.alg)) {
107
- throw new _errors.JOSENotSupported('Unsupported "alg" value');
108
- }
109
- } catch {
110
- throw new _errors.JWTInvalid('Unable to decode JWT header');
111
- }
112
- if (length !== 2 || encodedPayload === '') {
113
- throw new _errors.JWTInvalid('Invalid JWT to sign');
114
- }
115
- let decodedPayload = (0, _base.decodeBase64)(encodedPayload);
116
- const payload = JSON.parse(decodedPayload);
95
+ data() {
117
96
  return {
118
- payload,
119
- header
97
+ protectedHeader: this._protectedHeader,
98
+ payload: this._payload
120
99
  };
121
100
  }
122
101
 
123
102
  /**
124
- * Decodes a JWT without signature
103
+ * Decodes a signed JWT
125
104
  *
126
- * @param jwtWithoutSignature JWT to sign that needs to be decoded.
105
+ * @param jwt JWT to sign that needs to be decoded.
127
106
  */
128
107
  static decode(jwt) {
129
108
  if (typeof jwt !== 'string') {
@@ -1 +1 @@
1
- {"version":3,"names":["_errors","require","_produce","_base","_algorithms","_asn","SignJWT","ProduceJWT","setProtectedHeader","protectedHeader","alg","isAlgSupported","_protectedHeader","JOSENotSupported","toSign","JWSInvalid","encodeBase64","JSON","stringify","payload","_payload","appendSignature","jwtWithoutSignature","signature","JWTInvalid","jwtDecoded","decodeJwtWithoutSignature","header","kty","getKtyFromAlg","encodedJws","derToJose","removePadding","encodedHeader","encodedPayload","length","split","decoded","decodeBase64","parse","decodedPayload","decode","jwt","exports"],"sourceRoot":"../../../src","sources":["jwt/sign.ts"],"mappings":"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"}
1
+ {"version":3,"names":["_errors","require","_produce","_base","_algorithms","_asn","SignJWT","ProduceJWT","_protectedHeader","constructor","crypto","setProtectedHeader","protectedHeader","unsigned","alg","getSelectedSigningAlgorithm","_payload","map","e","JSON","stringify","encodeBase64","join","publicKey","getPublicKey","getAlgFromKey","kty","sign","signature","getSignature","encodedJws","derToJose","removePadding","data","payload","decode","jwt","JWTInvalid","encodedHeader","encodedPayload","length","split","decoded","decodeBase64","parse","isAlgSupported","JOSENotSupported","decodedPayload","exports"],"sourceRoot":"../../../src","sources":["jwt/sign.ts"],"mappings":"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"}
@@ -81,14 +81,14 @@ class UnsecuredJWT extends _produce.ProduceJWT {
81
81
  try {
82
82
  let decoded = (0, _base.decodeBase64)(encodedHeader);
83
83
  header = JSON.parse(decoded);
84
- if (header.alg !== 'none') throw new Error();
84
+ if ('alg' in header && header.alg !== 'none') throw new Error();
85
85
  } catch {
86
86
  throw new _errors.JWTInvalid('Invalid Unsecured JWT');
87
87
  }
88
88
  let payload = UnsecuredJWT.decodePayload(encodedPayload, options);
89
89
  return {
90
90
  payload,
91
- header
91
+ header: JSON.parse((0, _base.decodeBase64)(encodedHeader))
92
92
  };
93
93
  }
94
94
 
@@ -1 +1 @@
1
- {"version":3,"names":["_errors","require","_jwt_claims_set","_interopRequireDefault","_produce","_base","obj","__esModule","default","UnsecuredJWT","ProduceJWT","encode","header","encodeBase64","JSON","stringify","alg","payload","_payload","decode","jwt","options","JWTInvalid","encodedHeader","encodedPayload","signature","length","split","decoded","decodeBase64","parse","Error","decodePayload","decodedPayload","jwtPayload","exports"],"sourceRoot":"../../../src","sources":["jwt/unsecured.ts"],"mappings":"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"}
1
+ {"version":3,"names":["_errors","require","_jwt_claims_set","_interopRequireDefault","_produce","_base","obj","__esModule","default","UnsecuredJWT","ProduceJWT","encode","header","encodeBase64","JSON","stringify","alg","payload","_payload","decode","jwt","options","JWTInvalid","encodedHeader","encodedPayload","signature","length","split","decoded","decodeBase64","parse","Error","decodePayload","decodedPayload","jwtPayload","exports"],"sourceRoot":"../../../src","sources":["jwt/unsecured.ts"],"mappings":"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"}
@@ -7,7 +7,7 @@ exports.WithJWKS = exports.JWK = void 0;
7
7
  var _zod = require("zod");
8
8
  /** Recognized JWS Header Parameters, any other Header Members may also be present. */
9
9
 
10
- /** Recognized Compact JWS Header Parameters, any other Header Members may also be present. */
10
+ /** JOSE Header for an unsecued JWT */
11
11
 
12
12
  /** Recognized JWE Header Parameters, any other Header members may also be present. */
13
13
 
@@ -1 +1 @@
1
- {"version":3,"names":["_zod","require","JWK","z","object","string","optional","boolean","array","d","r","t","exports","WithJWKS","jwks","keys"],"sourceRoot":"../../src","sources":["types.ts"],"mappings":"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"}
1
+ {"version":3,"names":["_zod","require","JWK","z","object","string","optional","boolean","array","d","r","t","exports","WithJWKS","jwks","keys"],"sourceRoot":"../../src","sources":["types.ts"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"names":["_algorithms","require","_proxy","_base","_errors","derToJose","asn1Signature","alg","kty","getKtyFromAlg","unpackedJws","IoReactNativeJwt","unpackBerEncodedASN1","getCoordinateOctetLength","encodedJws","removePadding","replace","JOSENotSupported","exports"],"sourceRoot":"../../../src","sources":["utils/asn1.ts"],"mappings":";;;;;;AAAA,IAAAA,WAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AACA,IAAAE,KAAA,GAAAF,OAAA;AACA,IAAAG,OAAA,GAAAH,OAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMI,SAAS,GAAG,MAAAA,CACvBC,aAAqB,EACrBC,GAAW,KACS;EACpB,MAAMC,GAAG,GAAG,IAAAC,yBAAa,EAACF,GAAG,CAAC;EAC9B,IAAIC,GAAG,KAAK,IAAI,EAAE;IAChB,MAAME,WAAW,GAAG,MAAMC,uBAAgB,CAACC,oBAAoB,CAC7DN,aAAa,EACb,IAAAO,oCAAwB,EAACN,GAAG,CAC9B,CAAC;IACD,MAAMO,UAAU,GAAG,IAAAC,mBAAa,EAACL,WAAW,CAAC,CAACM,OAAO,CACnD,iBAAiB,EACjB,EACF,CAAC;IACD,OAAOF,UAAU;EACnB,CAAC,MAAM;IACL,MAAM,IAAIG,wBAAgB,CAAC,yBAAyB,CAAC;EACvD;AACF,CAAC;AAACC,OAAA,CAAAb,SAAA,GAAAA,SAAA"}
1
+ {"version":3,"names":["_algorithms","require","_proxy","_base","_errors","derToJose","asn1Signature","alg","kty","getKtyFromAlg","unpackedJws","IoReactNativeJwt","unpackBerEncodedASN1","getCoordinateOctetLength","encodedJws","removePadding","replace","JOSENotSupported","exports"],"sourceRoot":"../../../src","sources":["utils/asn1.ts"],"mappings":";;;;;;AAAA,IAAAA,WAAA,GAAAC,OAAA;AAKA,IAAAC,MAAA,GAAAD,OAAA;AACA,IAAAE,KAAA,GAAAF,OAAA;AACA,IAAAG,OAAA,GAAAH,OAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMI,SAAS,GAAG,MAAAA,CACvBC,aAAqB,EACrBC,GAAuB,KACH;EACpB,MAAMC,GAAG,GAAG,IAAAC,yBAAa,EAACF,GAAG,CAAC;EAC9B,IAAIC,GAAG,KAAK,IAAI,EAAE;IAChB,MAAME,WAAW,GAAG,MAAMC,uBAAgB,CAACC,oBAAoB,CAC7DN,aAAa,EACb,IAAAO,oCAAwB,EAACN,GAAG,CAC9B,CAAC;IACD,MAAMO,UAAU,GAAG,IAAAC,mBAAa,EAACL,WAAW,CAAC,CAACM,OAAO,CACnD,iBAAiB,EACjB,EACF,CAAC;IACD,OAAOF,UAAU;EACnB,CAAC,MAAM;IACL,MAAM,IAAIG,wBAAgB,CAAC,yBAAyB,CAAC;EACvD;AACF,CAAC;AAACC,OAAA,CAAAb,SAAA,GAAAA,SAAA"}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ //# sourceMappingURL=crypto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../src","sources":["utils/crypto.ts"],"mappings":""}