jose 5.10.0 → 6.0.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/README.md +15 -15
- package/dist/types/index.d.ts +48 -48
- package/dist/types/jwe/compact/decrypt.d.ts +4 -4
- package/dist/types/jwe/compact/encrypt.d.ts +4 -4
- package/dist/types/jwe/flattened/decrypt.d.ts +4 -4
- package/dist/types/jwe/flattened/encrypt.d.ts +6 -6
- package/dist/types/jwe/general/decrypt.d.ts +4 -4
- package/dist/types/jwe/general/encrypt.d.ts +7 -7
- package/dist/types/jwk/embedded.d.ts +2 -2
- package/dist/types/jwk/thumbprint.d.ts +5 -5
- package/dist/types/jwks/local.d.ts +2 -2
- package/dist/types/jwks/remote.d.ts +104 -25
- package/dist/types/jws/compact/sign.d.ts +4 -4
- package/dist/types/jws/compact/verify.d.ts +4 -4
- package/dist/types/jws/flattened/sign.d.ts +4 -4
- package/dist/types/jws/flattened/verify.d.ts +4 -4
- package/dist/types/jws/general/sign.d.ts +6 -6
- package/dist/types/jws/general/verify.d.ts +4 -4
- package/dist/types/jwt/decrypt.d.ts +5 -5
- package/dist/types/jwt/encrypt.d.ts +5 -5
- package/dist/types/jwt/produce.d.ts +3 -3
- package/dist/types/jwt/sign.d.ts +4 -4
- package/dist/types/jwt/unsecured.d.ts +6 -6
- package/dist/types/jwt/verify.d.ts +5 -5
- package/dist/types/key/export.d.ts +10 -12
- package/dist/types/key/generate_key_pair.d.ts +10 -11
- package/dist/types/key/generate_secret.d.ts +6 -9
- package/dist/types/key/import.d.ts +20 -27
- package/dist/types/types.d.ts +27 -29
- package/dist/types/util/decode_jwt.d.ts +2 -2
- package/dist/types/util/decode_protected_header.d.ts +2 -2
- package/dist/types/util/errors.d.ts +6 -6
- package/dist/{browser → webapi}/index.js +2 -2
- package/dist/{node/esm → webapi}/jwe/flattened/decrypt.js +8 -4
- package/dist/{node/esm → webapi}/jwe/flattened/encrypt.js +7 -3
- package/dist/{node/esm → webapi}/jwe/general/encrypt.js +8 -3
- package/dist/{node/esm → webapi}/jwk/thumbprint.js +18 -8
- package/dist/{node/esm → webapi}/jwks/local.js +1 -6
- package/dist/{node/esm → webapi}/jwks/remote.js +34 -6
- package/dist/{node/esm → webapi}/jws/flattened/sign.js +7 -5
- package/dist/{browser → webapi}/jws/flattened/verify.js +8 -14
- package/dist/{browser → webapi}/jwt/unsecured.js +1 -1
- package/dist/{node/esm → webapi}/key/export.js +2 -3
- package/dist/{browser/runtime/generate.js → webapi/key/generate_key_pair.js} +4 -57
- package/dist/webapi/key/generate_secret.js +40 -0
- package/dist/{browser → webapi}/key/import.js +8 -6
- package/dist/{node/esm → webapi}/lib/aesgcmkw.js +3 -3
- package/dist/{browser/runtime → webapi/lib}/aeskw.js +9 -16
- package/dist/{browser/runtime → webapi/lib}/asn1.js +24 -20
- package/dist/{browser/runtime → webapi/lib}/base64url.js +17 -9
- package/dist/{browser → webapi}/lib/buffer_utils.js +4 -19
- package/dist/{browser → webapi}/lib/cek.js +1 -2
- package/dist/{browser/runtime → webapi/lib}/check_cek_length.js +1 -2
- package/dist/{browser → webapi}/lib/check_iv_length.js +1 -2
- package/dist/webapi/lib/check_key_type.js +126 -0
- package/dist/{node/esm → webapi}/lib/crypto_key.js +9 -26
- package/dist/{browser/runtime → webapi/lib}/decrypt.js +26 -10
- package/dist/{node/esm → webapi}/lib/decrypt_key_management.js +22 -24
- package/dist/{browser/runtime → webapi/lib}/digest.js +1 -3
- package/dist/webapi/lib/ecdhes.js +46 -0
- package/dist/{browser/runtime → webapi/lib}/encrypt.js +8 -10
- package/dist/{node/esm → webapi}/lib/encrypt_key_management.js +26 -23
- package/dist/webapi/lib/get_sign_verify_key.js +12 -0
- package/dist/{node/esm → webapi}/lib/is_disjoint.js +1 -2
- package/dist/{browser → webapi}/lib/is_jwk.js +1 -1
- package/dist/webapi/lib/is_key_like.js +14 -0
- package/dist/{browser → webapi}/lib/is_object.js +2 -2
- package/dist/{node/esm → webapi}/lib/iv.js +1 -2
- package/dist/{browser/runtime → webapi/lib}/jwk_to_key.js +3 -13
- package/dist/webapi/lib/key_to_jwk.js +27 -0
- package/dist/webapi/lib/normalize_key.js +164 -0
- package/dist/webapi/lib/pbes2kw.js +37 -0
- package/dist/webapi/lib/rsaes.js +24 -0
- package/dist/{browser/runtime → webapi/lib}/sign.js +1 -3
- package/dist/{browser/runtime → webapi/lib}/subtle_dsa.js +4 -5
- package/dist/{browser → webapi}/lib/validate_algorithms.js +1 -2
- package/dist/{node/esm → webapi}/lib/validate_crit.js +3 -4
- package/dist/{browser/runtime → webapi/lib}/verify.js +1 -3
- package/dist/{node/esm → webapi}/util/base64url.js +1 -1
- package/package.json +36 -219
- package/dist/browser/jwe/compact/encrypt.js +0 -26
- package/dist/browser/jwe/flattened/decrypt.js +0 -161
- package/dist/browser/jwe/flattened/encrypt.js +0 -153
- package/dist/browser/jwe/general/encrypt.js +0 -174
- package/dist/browser/jwk/thumbprint.js +0 -53
- package/dist/browser/jwks/local.js +0 -124
- package/dist/browser/jwks/remote.js +0 -139
- package/dist/browser/jws/compact/sign.js +0 -17
- package/dist/browser/jws/flattened/sign.js +0 -81
- package/dist/browser/jws/general/sign.js +0 -67
- package/dist/browser/jwt/encrypt.js +0 -68
- package/dist/browser/jwt/produce.js +0 -75
- package/dist/browser/jwt/sign.js +0 -20
- package/dist/browser/key/export.js +0 -12
- package/dist/browser/key/generate_key_pair.js +0 -4
- package/dist/browser/key/generate_secret.js +0 -4
- package/dist/browser/lib/aesgcmkw.js +0 -16
- package/dist/browser/lib/check_key_type.js +0 -77
- package/dist/browser/lib/check_p2s.js +0 -6
- package/dist/browser/lib/crypto_key.js +0 -157
- package/dist/browser/lib/decrypt_key_management.js +0 -129
- package/dist/browser/lib/encrypt_key_management.js +0 -89
- package/dist/browser/lib/format_pem.js +0 -4
- package/dist/browser/lib/is_disjoint.js +0 -22
- package/dist/browser/lib/iv.js +0 -20
- package/dist/browser/lib/validate_crit.js +0 -34
- package/dist/browser/package.json +0 -1
- package/dist/browser/runtime/bogus.js +0 -6
- package/dist/browser/runtime/ecdhes.js +0 -47
- package/dist/browser/runtime/fetch_jwks.js +0 -34
- package/dist/browser/runtime/get_sign_verify_key.js +0 -24
- package/dist/browser/runtime/is_key_like.js +0 -8
- package/dist/browser/runtime/key_to_jwk.js +0 -21
- package/dist/browser/runtime/normalize_key.js +0 -68
- package/dist/browser/runtime/pbes2kw.js +0 -51
- package/dist/browser/runtime/random.js +0 -2
- package/dist/browser/runtime/rsaes.js +0 -37
- package/dist/browser/runtime/runtime.js +0 -1
- package/dist/browser/runtime/subtle_rsaes.js +0 -12
- package/dist/browser/runtime/timing_safe_equal.js +0 -19
- package/dist/browser/runtime/webcrypto.js +0 -2
- package/dist/browser/util/base64url.js +0 -3
- package/dist/browser/util/errors.js +0 -114
- package/dist/browser/util/runtime.js +0 -2
- package/dist/node/cjs/index.js +0 -69
- package/dist/node/cjs/jwe/compact/decrypt.js +0 -30
- package/dist/node/cjs/jwe/compact/encrypt.js +0 -31
- package/dist/node/cjs/jwe/flattened/decrypt.js +0 -164
- package/dist/node/cjs/jwe/flattened/encrypt.js +0 -165
- package/dist/node/cjs/jwe/general/decrypt.js +0 -34
- package/dist/node/cjs/jwe/general/encrypt.js +0 -186
- package/dist/node/cjs/jwk/embedded.js +0 -20
- package/dist/node/cjs/jwk/thumbprint.js +0 -57
- package/dist/node/cjs/jwks/local.js +0 -128
- package/dist/node/cjs/jwks/remote.js +0 -152
- package/dist/node/cjs/jws/compact/sign.js +0 -22
- package/dist/node/cjs/jws/compact/verify.js +0 -24
- package/dist/node/cjs/jws/flattened/sign.js +0 -88
- package/dist/node/cjs/jws/flattened/verify.js +0 -125
- package/dist/node/cjs/jws/general/sign.js +0 -77
- package/dist/node/cjs/jws/general/verify.js +0 -27
- package/dist/node/cjs/jwt/decrypt.js +0 -26
- package/dist/node/cjs/jwt/encrypt.js +0 -79
- package/dist/node/cjs/jwt/produce.js +0 -80
- package/dist/node/cjs/jwt/sign.js +0 -25
- package/dist/node/cjs/jwt/unsecured.js +0 -36
- package/dist/node/cjs/jwt/verify.js +0 -18
- package/dist/node/cjs/key/export.js +0 -17
- package/dist/node/cjs/key/generate_key_pair.js +0 -7
- package/dist/node/cjs/key/generate_secret.js +0 -7
- package/dist/node/cjs/key/import.js +0 -51
- package/dist/node/cjs/lib/aesgcmkw.js +0 -20
- package/dist/node/cjs/lib/buffer_utils.js +0 -60
- package/dist/node/cjs/lib/cek.js +0 -23
- package/dist/node/cjs/lib/check_iv_length.js +0 -10
- package/dist/node/cjs/lib/check_key_type.js +0 -80
- package/dist/node/cjs/lib/check_p2s.js +0 -9
- package/dist/node/cjs/lib/crypto_key.js +0 -161
- package/dist/node/cjs/lib/decrypt_key_management.js +0 -131
- package/dist/node/cjs/lib/encrypt_key_management.js +0 -91
- package/dist/node/cjs/lib/epoch.js +0 -3
- package/dist/node/cjs/lib/invalid_key_input.js +0 -34
- package/dist/node/cjs/lib/is_disjoint.js +0 -24
- package/dist/node/cjs/lib/is_jwk.js +0 -19
- package/dist/node/cjs/lib/is_object.js +0 -19
- package/dist/node/cjs/lib/iv.js +0 -23
- package/dist/node/cjs/lib/jwt_claims_set.js +0 -106
- package/dist/node/cjs/lib/private_symbols.js +0 -4
- package/dist/node/cjs/lib/secs.js +0 -57
- package/dist/node/cjs/lib/validate_algorithms.js +0 -13
- package/dist/node/cjs/lib/validate_crit.js +0 -36
- package/dist/node/cjs/runtime/aeskw.js +0 -55
- package/dist/node/cjs/runtime/asn1.js +0 -54
- package/dist/node/cjs/runtime/base64url.js +0 -20
- package/dist/node/cjs/runtime/cbc_tag.js +0 -11
- package/dist/node/cjs/runtime/check_cek_length.js +0 -37
- package/dist/node/cjs/runtime/check_key_length.js +0 -18
- package/dist/node/cjs/runtime/ciphers.js +0 -8
- package/dist/node/cjs/runtime/decrypt.js +0 -103
- package/dist/node/cjs/runtime/digest.js +0 -5
- package/dist/node/cjs/runtime/dsa_digest.js +0 -26
- package/dist/node/cjs/runtime/ecdhes.js +0 -70
- package/dist/node/cjs/runtime/encrypt.js +0 -80
- package/dist/node/cjs/runtime/fetch_jwks.js +0 -45
- package/dist/node/cjs/runtime/generate.js +0 -103
- package/dist/node/cjs/runtime/get_named_curve.js +0 -61
- package/dist/node/cjs/runtime/get_sign_verify_key.js +0 -31
- package/dist/node/cjs/runtime/hmac_digest.js +0 -16
- package/dist/node/cjs/runtime/is_key_like.js +0 -11
- package/dist/node/cjs/runtime/is_key_object.js +0 -4
- package/dist/node/cjs/runtime/jwk_to_key.js +0 -10
- package/dist/node/cjs/runtime/key_to_jwk.js +0 -36
- package/dist/node/cjs/runtime/node_key.js +0 -111
- package/dist/node/cjs/runtime/normalize_key.js +0 -3
- package/dist/node/cjs/runtime/pbes2kw.js +0 -48
- package/dist/node/cjs/runtime/random.js +0 -5
- package/dist/node/cjs/runtime/rsaes.js +0 -71
- package/dist/node/cjs/runtime/runtime.js +0 -3
- package/dist/node/cjs/runtime/sign.js +0 -19
- package/dist/node/cjs/runtime/timing_safe_equal.js +0 -5
- package/dist/node/cjs/runtime/verify.js +0 -31
- package/dist/node/cjs/runtime/webcrypto.js +0 -9
- package/dist/node/cjs/util/base64url.js +0 -6
- package/dist/node/cjs/util/decode_jwt.js +0 -35
- package/dist/node/cjs/util/decode_protected_header.js +0 -37
- package/dist/node/cjs/util/errors.js +0 -117
- package/dist/node/cjs/util/runtime.js +0 -4
- package/dist/node/esm/index.js +0 -30
- package/dist/node/esm/jwe/compact/decrypt.js +0 -27
- package/dist/node/esm/jwe/general/decrypt.js +0 -31
- package/dist/node/esm/jwk/embedded.js +0 -17
- package/dist/node/esm/jws/compact/verify.js +0 -21
- package/dist/node/esm/jws/flattened/verify.js +0 -122
- package/dist/node/esm/jws/general/verify.js +0 -24
- package/dist/node/esm/jwt/decrypt.js +0 -23
- package/dist/node/esm/jwt/unsecured.js +0 -32
- package/dist/node/esm/jwt/verify.js +0 -15
- package/dist/node/esm/key/generate_key_pair.js +0 -4
- package/dist/node/esm/key/generate_secret.js +0 -4
- package/dist/node/esm/key/import.js +0 -45
- package/dist/node/esm/lib/buffer_utils.js +0 -51
- package/dist/node/esm/lib/cek.js +0 -20
- package/dist/node/esm/lib/check_iv_length.js +0 -8
- package/dist/node/esm/lib/check_key_type.js +0 -77
- package/dist/node/esm/lib/check_p2s.js +0 -6
- package/dist/node/esm/lib/epoch.js +0 -1
- package/dist/node/esm/lib/invalid_key_input.js +0 -31
- package/dist/node/esm/lib/is_jwk.js +0 -13
- package/dist/node/esm/lib/is_object.js +0 -16
- package/dist/node/esm/lib/jwt_claims_set.js +0 -104
- package/dist/node/esm/lib/private_symbols.js +0 -1
- package/dist/node/esm/lib/secs.js +0 -55
- package/dist/node/esm/lib/validate_algorithms.js +0 -11
- package/dist/node/esm/package.json +0 -1
- package/dist/node/esm/runtime/aeskw.js +0 -50
- package/dist/node/esm/runtime/asn1.js +0 -46
- package/dist/node/esm/runtime/base64url.js +0 -14
- package/dist/node/esm/runtime/cbc_tag.js +0 -8
- package/dist/node/esm/runtime/check_cek_length.js +0 -35
- package/dist/node/esm/runtime/check_key_length.js +0 -16
- package/dist/node/esm/runtime/ciphers.js +0 -6
- package/dist/node/esm/runtime/decrypt.js +0 -101
- package/dist/node/esm/runtime/digest.js +0 -3
- package/dist/node/esm/runtime/dsa_digest.js +0 -23
- package/dist/node/esm/runtime/ecdhes.js +0 -64
- package/dist/node/esm/runtime/encrypt.js +0 -78
- package/dist/node/esm/runtime/fetch_jwks.js +0 -43
- package/dist/node/esm/runtime/generate.js +0 -99
- package/dist/node/esm/runtime/get_named_curve.js +0 -58
- package/dist/node/esm/runtime/get_sign_verify_key.js +0 -28
- package/dist/node/esm/runtime/hmac_digest.js +0 -13
- package/dist/node/esm/runtime/is_key_like.js +0 -8
- package/dist/node/esm/runtime/is_key_object.js +0 -2
- package/dist/node/esm/runtime/jwk_to_key.js +0 -8
- package/dist/node/esm/runtime/key_to_jwk.js +0 -34
- package/dist/node/esm/runtime/node_key.js +0 -108
- package/dist/node/esm/runtime/normalize_key.js +0 -1
- package/dist/node/esm/runtime/pbes2kw.js +0 -43
- package/dist/node/esm/runtime/random.js +0 -1
- package/dist/node/esm/runtime/rsaes.js +0 -66
- package/dist/node/esm/runtime/runtime.js +0 -1
- package/dist/node/esm/runtime/sign.js +0 -17
- package/dist/node/esm/runtime/timing_safe_equal.js +0 -3
- package/dist/node/esm/runtime/verify.js +0 -29
- package/dist/node/esm/runtime/webcrypto.js +0 -5
- package/dist/node/esm/util/decode_jwt.js +0 -32
- package/dist/node/esm/util/decode_protected_header.js +0 -34
- package/dist/node/esm/util/runtime.js +0 -2
- package/dist/types/util/runtime.d.ts +0 -3
- /package/dist/{browser → webapi}/jwe/compact/decrypt.js +0 -0
- /package/dist/{node/esm → webapi}/jwe/compact/encrypt.js +0 -0
- /package/dist/{browser → webapi}/jwe/general/decrypt.js +0 -0
- /package/dist/{browser → webapi}/jwk/embedded.js +0 -0
- /package/dist/{node/esm → webapi}/jws/compact/sign.js +0 -0
- /package/dist/{browser → webapi}/jws/compact/verify.js +0 -0
- /package/dist/{node/esm → webapi}/jws/general/sign.js +0 -0
- /package/dist/{browser → webapi}/jws/general/verify.js +0 -0
- /package/dist/{browser → webapi}/jwt/decrypt.js +0 -0
- /package/dist/{node/esm → webapi}/jwt/encrypt.js +0 -0
- /package/dist/{node/esm → webapi}/jwt/produce.js +0 -0
- /package/dist/{node/esm → webapi}/jwt/sign.js +0 -0
- /package/dist/{browser → webapi}/jwt/verify.js +0 -0
- /package/dist/{browser/runtime → webapi/lib}/check_key_length.js +0 -0
- /package/dist/{browser → webapi}/lib/epoch.js +0 -0
- /package/dist/{browser → webapi}/lib/invalid_key_input.js +0 -0
- /package/dist/{browser → webapi}/lib/jwt_claims_set.js +0 -0
- /package/dist/{browser → webapi}/lib/private_symbols.js +0 -0
- /package/dist/{browser → webapi}/lib/secs.js +0 -0
- /package/dist/{browser → webapi}/util/decode_jwt.js +0 -0
- /package/dist/{browser → webapi}/util/decode_protected_header.js +0 -0
- /package/dist/{node/esm → webapi}/util/errors.js +0 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "jose",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "6.0.1",
|
|
4
4
|
"description": "JWA, JWS, JWE, JWT, JWK, JWKS for Node.js, Browser, Cloudflare Workers, Deno, Bun, and other Web-interoperable runtimes",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"browser",
|
|
@@ -13,6 +13,7 @@
|
|
|
13
13
|
"detached",
|
|
14
14
|
"ec",
|
|
15
15
|
"ecdsa",
|
|
16
|
+
"ed25519",
|
|
16
17
|
"eddsa",
|
|
17
18
|
"edge",
|
|
18
19
|
"electron",
|
|
@@ -39,7 +40,6 @@
|
|
|
39
40
|
"pem",
|
|
40
41
|
"pkcs8",
|
|
41
42
|
"rsa",
|
|
42
|
-
"secp256k1",
|
|
43
43
|
"sign",
|
|
44
44
|
"signature",
|
|
45
45
|
"spki",
|
|
@@ -59,323 +59,140 @@
|
|
|
59
59
|
"license": "MIT",
|
|
60
60
|
"author": "Filip Skokan <panva.ip@gmail.com>",
|
|
61
61
|
"sideEffects": false,
|
|
62
|
+
"type": "module",
|
|
62
63
|
"exports": {
|
|
63
64
|
".": {
|
|
64
65
|
"types": "./dist/types/index.d.ts",
|
|
65
|
-
"
|
|
66
|
-
"deno": "./dist/browser/index.js",
|
|
67
|
-
"browser": "./dist/browser/index.js",
|
|
68
|
-
"worker": "./dist/browser/index.js",
|
|
69
|
-
"workerd": "./dist/browser/index.js",
|
|
70
|
-
"import": "./dist/node/esm/index.js",
|
|
71
|
-
"require": "./dist/node/cjs/index.js"
|
|
66
|
+
"default": "./dist/webapi/index.js"
|
|
72
67
|
},
|
|
73
68
|
"./jwk/embedded": {
|
|
74
69
|
"types": "./dist/types/jwk/embedded.d.ts",
|
|
75
|
-
"
|
|
76
|
-
"deno": "./dist/browser/jwk/embedded.js",
|
|
77
|
-
"browser": "./dist/browser/jwk/embedded.js",
|
|
78
|
-
"worker": "./dist/browser/jwk/embedded.js",
|
|
79
|
-
"workerd": "./dist/browser/jwk/embedded.js",
|
|
80
|
-
"import": "./dist/node/esm/jwk/embedded.js",
|
|
81
|
-
"require": "./dist/node/cjs/jwk/embedded.js"
|
|
70
|
+
"default": "./dist/webapi/jwk/embedded.js"
|
|
82
71
|
},
|
|
83
72
|
"./jwk/thumbprint": {
|
|
84
73
|
"types": "./dist/types/jwk/thumbprint.d.ts",
|
|
85
|
-
"
|
|
86
|
-
"deno": "./dist/browser/jwk/thumbprint.js",
|
|
87
|
-
"browser": "./dist/browser/jwk/thumbprint.js",
|
|
88
|
-
"worker": "./dist/browser/jwk/thumbprint.js",
|
|
89
|
-
"workerd": "./dist/browser/jwk/thumbprint.js",
|
|
90
|
-
"import": "./dist/node/esm/jwk/thumbprint.js",
|
|
91
|
-
"require": "./dist/node/cjs/jwk/thumbprint.js"
|
|
74
|
+
"default": "./dist/webapi/jwk/thumbprint.js"
|
|
92
75
|
},
|
|
93
76
|
"./key/import": {
|
|
94
77
|
"types": "./dist/types/key/import.d.ts",
|
|
95
|
-
"
|
|
96
|
-
"deno": "./dist/browser/key/import.js",
|
|
97
|
-
"browser": "./dist/browser/key/import.js",
|
|
98
|
-
"worker": "./dist/browser/key/import.js",
|
|
99
|
-
"workerd": "./dist/browser/key/import.js",
|
|
100
|
-
"import": "./dist/node/esm/key/import.js",
|
|
101
|
-
"require": "./dist/node/cjs/key/import.js"
|
|
78
|
+
"default": "./dist/webapi/key/import.js"
|
|
102
79
|
},
|
|
103
80
|
"./key/export": {
|
|
104
81
|
"types": "./dist/types/key/export.d.ts",
|
|
105
|
-
"
|
|
106
|
-
"deno": "./dist/browser/key/export.js",
|
|
107
|
-
"browser": "./dist/browser/key/export.js",
|
|
108
|
-
"worker": "./dist/browser/key/export.js",
|
|
109
|
-
"workerd": "./dist/browser/key/export.js",
|
|
110
|
-
"import": "./dist/node/esm/key/export.js",
|
|
111
|
-
"require": "./dist/node/cjs/key/export.js"
|
|
82
|
+
"default": "./dist/webapi/key/export.js"
|
|
112
83
|
},
|
|
113
84
|
"./key/generate/keypair": {
|
|
114
85
|
"types": "./dist/types/key/generate_key_pair.d.ts",
|
|
115
|
-
"
|
|
116
|
-
"deno": "./dist/browser/key/generate_key_pair.js",
|
|
117
|
-
"browser": "./dist/browser/key/generate_key_pair.js",
|
|
118
|
-
"worker": "./dist/browser/key/generate_key_pair.js",
|
|
119
|
-
"workerd": "./dist/browser/key/generate_key_pair.js",
|
|
120
|
-
"import": "./dist/node/esm/key/generate_key_pair.js",
|
|
121
|
-
"require": "./dist/node/cjs/key/generate_key_pair.js"
|
|
86
|
+
"default": "./dist/webapi/key/generate_key_pair.js"
|
|
122
87
|
},
|
|
123
88
|
"./key/generate/secret": {
|
|
124
89
|
"types": "./dist/types/key/generate_secret.d.ts",
|
|
125
|
-
"
|
|
126
|
-
"deno": "./dist/browser/key/generate_secret.js",
|
|
127
|
-
"browser": "./dist/browser/key/generate_secret.js",
|
|
128
|
-
"worker": "./dist/browser/key/generate_secret.js",
|
|
129
|
-
"workerd": "./dist/browser/key/generate_secret.js",
|
|
130
|
-
"import": "./dist/node/esm/key/generate_secret.js",
|
|
131
|
-
"require": "./dist/node/cjs/key/generate_secret.js"
|
|
90
|
+
"default": "./dist/webapi/key/generate_secret.js"
|
|
132
91
|
},
|
|
133
92
|
"./jwks/remote": {
|
|
134
93
|
"types": "./dist/types/jwks/remote.d.ts",
|
|
135
|
-
"
|
|
136
|
-
"deno": "./dist/browser/jwks/remote.js",
|
|
137
|
-
"browser": "./dist/browser/jwks/remote.js",
|
|
138
|
-
"worker": "./dist/browser/jwks/remote.js",
|
|
139
|
-
"workerd": "./dist/browser/jwks/remote.js",
|
|
140
|
-
"import": "./dist/node/esm/jwks/remote.js",
|
|
141
|
-
"require": "./dist/node/cjs/jwks/remote.js"
|
|
94
|
+
"default": "./dist/webapi/jwks/remote.js"
|
|
142
95
|
},
|
|
143
96
|
"./jwks/local": {
|
|
144
97
|
"types": "./dist/types/jwks/local.d.ts",
|
|
145
|
-
"
|
|
146
|
-
"deno": "./dist/browser/jwks/local.js",
|
|
147
|
-
"browser": "./dist/browser/jwks/local.js",
|
|
148
|
-
"worker": "./dist/browser/jwks/local.js",
|
|
149
|
-
"workerd": "./dist/browser/jwks/local.js",
|
|
150
|
-
"import": "./dist/node/esm/jwks/local.js",
|
|
151
|
-
"require": "./dist/node/cjs/jwks/local.js"
|
|
98
|
+
"default": "./dist/webapi/jwks/local.js"
|
|
152
99
|
},
|
|
153
100
|
"./jwt/sign": {
|
|
154
101
|
"types": "./dist/types/jwt/sign.d.ts",
|
|
155
|
-
"
|
|
156
|
-
"deno": "./dist/browser/jwt/sign.js",
|
|
157
|
-
"browser": "./dist/browser/jwt/sign.js",
|
|
158
|
-
"worker": "./dist/browser/jwt/sign.js",
|
|
159
|
-
"workerd": "./dist/browser/jwt/sign.js",
|
|
160
|
-
"import": "./dist/node/esm/jwt/sign.js",
|
|
161
|
-
"require": "./dist/node/cjs/jwt/sign.js"
|
|
102
|
+
"default": "./dist/webapi/jwt/sign.js"
|
|
162
103
|
},
|
|
163
104
|
"./jwt/verify": {
|
|
164
105
|
"types": "./dist/types/jwt/verify.d.ts",
|
|
165
|
-
"
|
|
166
|
-
"deno": "./dist/browser/jwt/verify.js",
|
|
167
|
-
"browser": "./dist/browser/jwt/verify.js",
|
|
168
|
-
"worker": "./dist/browser/jwt/verify.js",
|
|
169
|
-
"workerd": "./dist/browser/jwt/verify.js",
|
|
170
|
-
"import": "./dist/node/esm/jwt/verify.js",
|
|
171
|
-
"require": "./dist/node/cjs/jwt/verify.js"
|
|
106
|
+
"default": "./dist/webapi/jwt/verify.js"
|
|
172
107
|
},
|
|
173
108
|
"./jwt/encrypt": {
|
|
174
109
|
"types": "./dist/types/jwt/encrypt.d.ts",
|
|
175
|
-
"
|
|
176
|
-
"deno": "./dist/browser/jwt/encrypt.js",
|
|
177
|
-
"browser": "./dist/browser/jwt/encrypt.js",
|
|
178
|
-
"worker": "./dist/browser/jwt/encrypt.js",
|
|
179
|
-
"workerd": "./dist/browser/jwt/encrypt.js",
|
|
180
|
-
"import": "./dist/node/esm/jwt/encrypt.js",
|
|
181
|
-
"require": "./dist/node/cjs/jwt/encrypt.js"
|
|
110
|
+
"default": "./dist/webapi/jwt/encrypt.js"
|
|
182
111
|
},
|
|
183
112
|
"./jwt/decrypt": {
|
|
184
113
|
"types": "./dist/types/jwt/decrypt.d.ts",
|
|
185
|
-
"
|
|
186
|
-
"deno": "./dist/browser/jwt/decrypt.js",
|
|
187
|
-
"browser": "./dist/browser/jwt/decrypt.js",
|
|
188
|
-
"worker": "./dist/browser/jwt/decrypt.js",
|
|
189
|
-
"workerd": "./dist/browser/jwt/decrypt.js",
|
|
190
|
-
"import": "./dist/node/esm/jwt/decrypt.js",
|
|
191
|
-
"require": "./dist/node/cjs/jwt/decrypt.js"
|
|
114
|
+
"default": "./dist/webapi/jwt/decrypt.js"
|
|
192
115
|
},
|
|
193
116
|
"./jwt/unsecured": {
|
|
194
117
|
"types": "./dist/types/jwt/unsecured.d.ts",
|
|
195
|
-
"
|
|
196
|
-
"deno": "./dist/browser/jwt/unsecured.js",
|
|
197
|
-
"browser": "./dist/browser/jwt/unsecured.js",
|
|
198
|
-
"worker": "./dist/browser/jwt/unsecured.js",
|
|
199
|
-
"workerd": "./dist/browser/jwt/unsecured.js",
|
|
200
|
-
"import": "./dist/node/esm/jwt/unsecured.js",
|
|
201
|
-
"require": "./dist/node/cjs/jwt/unsecured.js"
|
|
118
|
+
"default": "./dist/webapi/jwt/unsecured.js"
|
|
202
119
|
},
|
|
203
120
|
"./jwt/decode": {
|
|
204
121
|
"types": "./dist/types/util/decode_jwt.d.ts",
|
|
205
|
-
"
|
|
206
|
-
"deno": "./dist/browser/util/decode_jwt.js",
|
|
207
|
-
"browser": "./dist/browser/util/decode_jwt.js",
|
|
208
|
-
"worker": "./dist/browser/util/decode_jwt.js",
|
|
209
|
-
"workerd": "./dist/browser/util/decode_jwt.js",
|
|
210
|
-
"import": "./dist/node/esm/util/decode_jwt.js",
|
|
211
|
-
"require": "./dist/node/cjs/util/decode_jwt.js"
|
|
122
|
+
"default": "./dist/webapi/util/decode_jwt.js"
|
|
212
123
|
},
|
|
213
124
|
"./decode/protected_header": {
|
|
214
125
|
"types": "./dist/types/util/decode_protected_header.d.ts",
|
|
215
|
-
"
|
|
216
|
-
"deno": "./dist/browser/util/decode_protected_header.js",
|
|
217
|
-
"browser": "./dist/browser/util/decode_protected_header.js",
|
|
218
|
-
"worker": "./dist/browser/util/decode_protected_header.js",
|
|
219
|
-
"workerd": "./dist/browser/util/decode_protected_header.js",
|
|
220
|
-
"import": "./dist/node/esm/util/decode_protected_header.js",
|
|
221
|
-
"require": "./dist/node/cjs/util/decode_protected_header.js"
|
|
126
|
+
"default": "./dist/webapi/util/decode_protected_header.js"
|
|
222
127
|
},
|
|
223
128
|
"./jws/compact/sign": {
|
|
224
129
|
"types": "./dist/types/jws/compact/sign.d.ts",
|
|
225
|
-
"
|
|
226
|
-
"deno": "./dist/browser/jws/compact/sign.js",
|
|
227
|
-
"browser": "./dist/browser/jws/compact/sign.js",
|
|
228
|
-
"worker": "./dist/browser/jws/compact/sign.js",
|
|
229
|
-
"workerd": "./dist/browser/jws/compact/sign.js",
|
|
230
|
-
"import": "./dist/node/esm/jws/compact/sign.js",
|
|
231
|
-
"require": "./dist/node/cjs/jws/compact/sign.js"
|
|
130
|
+
"default": "./dist/webapi/jws/compact/sign.js"
|
|
232
131
|
},
|
|
233
132
|
"./jws/compact/verify": {
|
|
234
133
|
"types": "./dist/types/jws/compact/verify.d.ts",
|
|
235
|
-
"
|
|
236
|
-
"deno": "./dist/browser/jws/compact/verify.js",
|
|
237
|
-
"browser": "./dist/browser/jws/compact/verify.js",
|
|
238
|
-
"worker": "./dist/browser/jws/compact/verify.js",
|
|
239
|
-
"workerd": "./dist/browser/jws/compact/verify.js",
|
|
240
|
-
"import": "./dist/node/esm/jws/compact/verify.js",
|
|
241
|
-
"require": "./dist/node/cjs/jws/compact/verify.js"
|
|
134
|
+
"default": "./dist/webapi/jws/compact/verify.js"
|
|
242
135
|
},
|
|
243
136
|
"./jws/flattened/sign": {
|
|
244
137
|
"types": "./dist/types/jws/flattened/sign.d.ts",
|
|
245
|
-
"
|
|
246
|
-
"deno": "./dist/browser/jws/flattened/sign.js",
|
|
247
|
-
"browser": "./dist/browser/jws/flattened/sign.js",
|
|
248
|
-
"worker": "./dist/browser/jws/flattened/sign.js",
|
|
249
|
-
"workerd": "./dist/browser/jws/flattened/sign.js",
|
|
250
|
-
"import": "./dist/node/esm/jws/flattened/sign.js",
|
|
251
|
-
"require": "./dist/node/cjs/jws/flattened/sign.js"
|
|
138
|
+
"default": "./dist/webapi/jws/flattened/sign.js"
|
|
252
139
|
},
|
|
253
140
|
"./jws/flattened/verify": {
|
|
254
141
|
"types": "./dist/types/jws/flattened/verify.d.ts",
|
|
255
|
-
"
|
|
256
|
-
"deno": "./dist/browser/jws/flattened/verify.js",
|
|
257
|
-
"browser": "./dist/browser/jws/flattened/verify.js",
|
|
258
|
-
"worker": "./dist/browser/jws/flattened/verify.js",
|
|
259
|
-
"workerd": "./dist/browser/jws/flattened/verify.js",
|
|
260
|
-
"import": "./dist/node/esm/jws/flattened/verify.js",
|
|
261
|
-
"require": "./dist/node/cjs/jws/flattened/verify.js"
|
|
142
|
+
"default": "./dist/webapi/jws/flattened/verify.js"
|
|
262
143
|
},
|
|
263
144
|
"./jws/general/sign": {
|
|
264
145
|
"types": "./dist/types/jws/general/sign.d.ts",
|
|
265
|
-
"
|
|
266
|
-
"deno": "./dist/browser/jws/general/sign.js",
|
|
267
|
-
"browser": "./dist/browser/jws/general/sign.js",
|
|
268
|
-
"worker": "./dist/browser/jws/general/sign.js",
|
|
269
|
-
"workerd": "./dist/browser/jws/general/sign.js",
|
|
270
|
-
"import": "./dist/node/esm/jws/general/sign.js",
|
|
271
|
-
"require": "./dist/node/cjs/jws/general/sign.js"
|
|
146
|
+
"default": "./dist/webapi/jws/general/sign.js"
|
|
272
147
|
},
|
|
273
148
|
"./jws/general/verify": {
|
|
274
149
|
"types": "./dist/types/jws/general/verify.d.ts",
|
|
275
|
-
"
|
|
276
|
-
"deno": "./dist/browser/jws/general/verify.js",
|
|
277
|
-
"browser": "./dist/browser/jws/general/verify.js",
|
|
278
|
-
"worker": "./dist/browser/jws/general/verify.js",
|
|
279
|
-
"workerd": "./dist/browser/jws/general/verify.js",
|
|
280
|
-
"import": "./dist/node/esm/jws/general/verify.js",
|
|
281
|
-
"require": "./dist/node/cjs/jws/general/verify.js"
|
|
150
|
+
"default": "./dist/webapi/jws/general/verify.js"
|
|
282
151
|
},
|
|
283
152
|
"./jwe/compact/encrypt": {
|
|
284
153
|
"types": "./dist/types/jwe/compact/encrypt.d.ts",
|
|
285
|
-
"
|
|
286
|
-
"deno": "./dist/browser/jwe/compact/encrypt.js",
|
|
287
|
-
"browser": "./dist/browser/jwe/compact/encrypt.js",
|
|
288
|
-
"worker": "./dist/browser/jwe/compact/encrypt.js",
|
|
289
|
-
"workerd": "./dist/browser/jwe/compact/encrypt.js",
|
|
290
|
-
"import": "./dist/node/esm/jwe/compact/encrypt.js",
|
|
291
|
-
"require": "./dist/node/cjs/jwe/compact/encrypt.js"
|
|
154
|
+
"default": "./dist/webapi/jwe/compact/encrypt.js"
|
|
292
155
|
},
|
|
293
156
|
"./jwe/compact/decrypt": {
|
|
294
157
|
"types": "./dist/types/jwe/compact/decrypt.d.ts",
|
|
295
|
-
"
|
|
296
|
-
"deno": "./dist/browser/jwe/compact/decrypt.js",
|
|
297
|
-
"browser": "./dist/browser/jwe/compact/decrypt.js",
|
|
298
|
-
"worker": "./dist/browser/jwe/compact/decrypt.js",
|
|
299
|
-
"workerd": "./dist/browser/jwe/compact/decrypt.js",
|
|
300
|
-
"import": "./dist/node/esm/jwe/compact/decrypt.js",
|
|
301
|
-
"require": "./dist/node/cjs/jwe/compact/decrypt.js"
|
|
158
|
+
"default": "./dist/webapi/jwe/compact/decrypt.js"
|
|
302
159
|
},
|
|
303
160
|
"./jwe/flattened/encrypt": {
|
|
304
161
|
"types": "./dist/types/jwe/flattened/encrypt.d.ts",
|
|
305
|
-
"
|
|
306
|
-
"deno": "./dist/browser/jwe/flattened/encrypt.js",
|
|
307
|
-
"browser": "./dist/browser/jwe/flattened/encrypt.js",
|
|
308
|
-
"worker": "./dist/browser/jwe/flattened/encrypt.js",
|
|
309
|
-
"workerd": "./dist/browser/jwe/flattened/encrypt.js",
|
|
310
|
-
"import": "./dist/node/esm/jwe/flattened/encrypt.js",
|
|
311
|
-
"require": "./dist/node/cjs/jwe/flattened/encrypt.js"
|
|
162
|
+
"default": "./dist/webapi/jwe/flattened/encrypt.js"
|
|
312
163
|
},
|
|
313
164
|
"./jwe/flattened/decrypt": {
|
|
314
165
|
"types": "./dist/types/jwe/flattened/decrypt.d.ts",
|
|
315
|
-
"
|
|
316
|
-
"deno": "./dist/browser/jwe/flattened/decrypt.js",
|
|
317
|
-
"browser": "./dist/browser/jwe/flattened/decrypt.js",
|
|
318
|
-
"worker": "./dist/browser/jwe/flattened/decrypt.js",
|
|
319
|
-
"workerd": "./dist/browser/jwe/flattened/decrypt.js",
|
|
320
|
-
"import": "./dist/node/esm/jwe/flattened/decrypt.js",
|
|
321
|
-
"require": "./dist/node/cjs/jwe/flattened/decrypt.js"
|
|
166
|
+
"default": "./dist/webapi/jwe/flattened/decrypt.js"
|
|
322
167
|
},
|
|
323
168
|
"./jwe/general/encrypt": {
|
|
324
169
|
"types": "./dist/types/jwe/general/encrypt.d.ts",
|
|
325
|
-
"
|
|
326
|
-
"deno": "./dist/browser/jwe/general/encrypt.js",
|
|
327
|
-
"browser": "./dist/browser/jwe/general/encrypt.js",
|
|
328
|
-
"worker": "./dist/browser/jwe/general/encrypt.js",
|
|
329
|
-
"workerd": "./dist/browser/jwe/general/encrypt.js",
|
|
330
|
-
"import": "./dist/node/esm/jwe/general/encrypt.js",
|
|
331
|
-
"require": "./dist/node/cjs/jwe/general/encrypt.js"
|
|
170
|
+
"default": "./dist/webapi/jwe/general/encrypt.js"
|
|
332
171
|
},
|
|
333
172
|
"./jwe/general/decrypt": {
|
|
334
173
|
"types": "./dist/types/jwe/general/decrypt.d.ts",
|
|
335
|
-
"
|
|
336
|
-
"deno": "./dist/browser/jwe/general/decrypt.js",
|
|
337
|
-
"browser": "./dist/browser/jwe/general/decrypt.js",
|
|
338
|
-
"worker": "./dist/browser/jwe/general/decrypt.js",
|
|
339
|
-
"workerd": "./dist/browser/jwe/general/decrypt.js",
|
|
340
|
-
"import": "./dist/node/esm/jwe/general/decrypt.js",
|
|
341
|
-
"require": "./dist/node/cjs/jwe/general/decrypt.js"
|
|
174
|
+
"default": "./dist/webapi/jwe/general/decrypt.js"
|
|
342
175
|
},
|
|
343
176
|
"./errors": {
|
|
344
177
|
"types": "./dist/types/util/errors.d.ts",
|
|
345
|
-
"
|
|
346
|
-
"deno": "./dist/browser/util/errors.js",
|
|
347
|
-
"browser": "./dist/browser/util/errors.js",
|
|
348
|
-
"worker": "./dist/browser/util/errors.js",
|
|
349
|
-
"workerd": "./dist/browser/util/errors.js",
|
|
350
|
-
"import": "./dist/node/esm/util/errors.js",
|
|
351
|
-
"require": "./dist/node/cjs/util/errors.js"
|
|
178
|
+
"default": "./dist/webapi/util/errors.js"
|
|
352
179
|
},
|
|
353
180
|
"./base64url": {
|
|
354
181
|
"types": "./dist/types/util/base64url.d.ts",
|
|
355
|
-
"
|
|
356
|
-
"deno": "./dist/browser/util/base64url.js",
|
|
357
|
-
"browser": "./dist/browser/util/base64url.js",
|
|
358
|
-
"worker": "./dist/browser/util/base64url.js",
|
|
359
|
-
"workerd": "./dist/browser/util/base64url.js",
|
|
360
|
-
"import": "./dist/node/esm/util/base64url.js",
|
|
361
|
-
"require": "./dist/node/cjs/util/base64url.js"
|
|
182
|
+
"default": "./dist/webapi/util/base64url.js"
|
|
362
183
|
},
|
|
363
184
|
"./package.json": "./package.json"
|
|
364
185
|
},
|
|
365
|
-
"main": "./dist/
|
|
366
|
-
"browser": "./dist/browser/index.js",
|
|
186
|
+
"main": "./dist/webapi/index.js",
|
|
367
187
|
"types": "./dist/types/index.d.ts",
|
|
368
188
|
"files": [
|
|
369
|
-
"dist
|
|
370
|
-
"dist/**/*.js",
|
|
189
|
+
"dist/webapi/**/*.js",
|
|
371
190
|
"dist/types/**/*.d.ts",
|
|
372
191
|
"!dist/**/*.bundle.js",
|
|
373
192
|
"!dist/**/*.umd.js",
|
|
374
193
|
"!dist/**/*.min.js",
|
|
375
|
-
"!dist/node/webcrypto/**/*",
|
|
376
194
|
"!dist/types/runtime/*",
|
|
377
195
|
"!dist/types/lib/*",
|
|
378
196
|
"!dist/deno/**/*"
|
|
379
|
-
]
|
|
380
|
-
"deno": "./dist/browser/index.js"
|
|
197
|
+
]
|
|
381
198
|
}
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import { FlattenedEncrypt } from '../flattened/encrypt.js';
|
|
2
|
-
export class CompactEncrypt {
|
|
3
|
-
constructor(plaintext) {
|
|
4
|
-
this._flattened = new FlattenedEncrypt(plaintext);
|
|
5
|
-
}
|
|
6
|
-
setContentEncryptionKey(cek) {
|
|
7
|
-
this._flattened.setContentEncryptionKey(cek);
|
|
8
|
-
return this;
|
|
9
|
-
}
|
|
10
|
-
setInitializationVector(iv) {
|
|
11
|
-
this._flattened.setInitializationVector(iv);
|
|
12
|
-
return this;
|
|
13
|
-
}
|
|
14
|
-
setProtectedHeader(protectedHeader) {
|
|
15
|
-
this._flattened.setProtectedHeader(protectedHeader);
|
|
16
|
-
return this;
|
|
17
|
-
}
|
|
18
|
-
setKeyManagementParameters(parameters) {
|
|
19
|
-
this._flattened.setKeyManagementParameters(parameters);
|
|
20
|
-
return this;
|
|
21
|
-
}
|
|
22
|
-
async encrypt(key, options) {
|
|
23
|
-
const jwe = await this._flattened.encrypt(key, options);
|
|
24
|
-
return [jwe.protected, jwe.encrypted_key, jwe.iv, jwe.ciphertext, jwe.tag].join('.');
|
|
25
|
-
}
|
|
26
|
-
}
|
|
@@ -1,161 +0,0 @@
|
|
|
1
|
-
import { decode as base64url } from '../../runtime/base64url.js';
|
|
2
|
-
import decrypt from '../../runtime/decrypt.js';
|
|
3
|
-
import { JOSEAlgNotAllowed, JOSENotSupported, JWEInvalid } from '../../util/errors.js';
|
|
4
|
-
import isDisjoint from '../../lib/is_disjoint.js';
|
|
5
|
-
import isObject from '../../lib/is_object.js';
|
|
6
|
-
import decryptKeyManagement from '../../lib/decrypt_key_management.js';
|
|
7
|
-
import { encoder, decoder, concat } from '../../lib/buffer_utils.js';
|
|
8
|
-
import generateCek from '../../lib/cek.js';
|
|
9
|
-
import validateCrit from '../../lib/validate_crit.js';
|
|
10
|
-
import validateAlgorithms from '../../lib/validate_algorithms.js';
|
|
11
|
-
export async function flattenedDecrypt(jwe, key, options) {
|
|
12
|
-
if (!isObject(jwe)) {
|
|
13
|
-
throw new JWEInvalid('Flattened JWE must be an object');
|
|
14
|
-
}
|
|
15
|
-
if (jwe.protected === undefined && jwe.header === undefined && jwe.unprotected === undefined) {
|
|
16
|
-
throw new JWEInvalid('JOSE Header missing');
|
|
17
|
-
}
|
|
18
|
-
if (jwe.iv !== undefined && typeof jwe.iv !== 'string') {
|
|
19
|
-
throw new JWEInvalid('JWE Initialization Vector incorrect type');
|
|
20
|
-
}
|
|
21
|
-
if (typeof jwe.ciphertext !== 'string') {
|
|
22
|
-
throw new JWEInvalid('JWE Ciphertext missing or incorrect type');
|
|
23
|
-
}
|
|
24
|
-
if (jwe.tag !== undefined && typeof jwe.tag !== 'string') {
|
|
25
|
-
throw new JWEInvalid('JWE Authentication Tag incorrect type');
|
|
26
|
-
}
|
|
27
|
-
if (jwe.protected !== undefined && typeof jwe.protected !== 'string') {
|
|
28
|
-
throw new JWEInvalid('JWE Protected Header incorrect type');
|
|
29
|
-
}
|
|
30
|
-
if (jwe.encrypted_key !== undefined && typeof jwe.encrypted_key !== 'string') {
|
|
31
|
-
throw new JWEInvalid('JWE Encrypted Key incorrect type');
|
|
32
|
-
}
|
|
33
|
-
if (jwe.aad !== undefined && typeof jwe.aad !== 'string') {
|
|
34
|
-
throw new JWEInvalid('JWE AAD incorrect type');
|
|
35
|
-
}
|
|
36
|
-
if (jwe.header !== undefined && !isObject(jwe.header)) {
|
|
37
|
-
throw new JWEInvalid('JWE Shared Unprotected Header incorrect type');
|
|
38
|
-
}
|
|
39
|
-
if (jwe.unprotected !== undefined && !isObject(jwe.unprotected)) {
|
|
40
|
-
throw new JWEInvalid('JWE Per-Recipient Unprotected Header incorrect type');
|
|
41
|
-
}
|
|
42
|
-
let parsedProt;
|
|
43
|
-
if (jwe.protected) {
|
|
44
|
-
try {
|
|
45
|
-
const protectedHeader = base64url(jwe.protected);
|
|
46
|
-
parsedProt = JSON.parse(decoder.decode(protectedHeader));
|
|
47
|
-
}
|
|
48
|
-
catch {
|
|
49
|
-
throw new JWEInvalid('JWE Protected Header is invalid');
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
if (!isDisjoint(parsedProt, jwe.header, jwe.unprotected)) {
|
|
53
|
-
throw new JWEInvalid('JWE Protected, JWE Unprotected Header, and JWE Per-Recipient Unprotected Header Parameter names must be disjoint');
|
|
54
|
-
}
|
|
55
|
-
const joseHeader = {
|
|
56
|
-
...parsedProt,
|
|
57
|
-
...jwe.header,
|
|
58
|
-
...jwe.unprotected,
|
|
59
|
-
};
|
|
60
|
-
validateCrit(JWEInvalid, new Map(), options?.crit, parsedProt, joseHeader);
|
|
61
|
-
if (joseHeader.zip !== undefined) {
|
|
62
|
-
throw new JOSENotSupported('JWE "zip" (Compression Algorithm) Header Parameter is not supported.');
|
|
63
|
-
}
|
|
64
|
-
const { alg, enc } = joseHeader;
|
|
65
|
-
if (typeof alg !== 'string' || !alg) {
|
|
66
|
-
throw new JWEInvalid('missing JWE Algorithm (alg) in JWE Header');
|
|
67
|
-
}
|
|
68
|
-
if (typeof enc !== 'string' || !enc) {
|
|
69
|
-
throw new JWEInvalid('missing JWE Encryption Algorithm (enc) in JWE Header');
|
|
70
|
-
}
|
|
71
|
-
const keyManagementAlgorithms = options && validateAlgorithms('keyManagementAlgorithms', options.keyManagementAlgorithms);
|
|
72
|
-
const contentEncryptionAlgorithms = options &&
|
|
73
|
-
validateAlgorithms('contentEncryptionAlgorithms', options.contentEncryptionAlgorithms);
|
|
74
|
-
if ((keyManagementAlgorithms && !keyManagementAlgorithms.has(alg)) ||
|
|
75
|
-
(!keyManagementAlgorithms && alg.startsWith('PBES2'))) {
|
|
76
|
-
throw new JOSEAlgNotAllowed('"alg" (Algorithm) Header Parameter value not allowed');
|
|
77
|
-
}
|
|
78
|
-
if (contentEncryptionAlgorithms && !contentEncryptionAlgorithms.has(enc)) {
|
|
79
|
-
throw new JOSEAlgNotAllowed('"enc" (Encryption Algorithm) Header Parameter value not allowed');
|
|
80
|
-
}
|
|
81
|
-
let encryptedKey;
|
|
82
|
-
if (jwe.encrypted_key !== undefined) {
|
|
83
|
-
try {
|
|
84
|
-
encryptedKey = base64url(jwe.encrypted_key);
|
|
85
|
-
}
|
|
86
|
-
catch {
|
|
87
|
-
throw new JWEInvalid('Failed to base64url decode the encrypted_key');
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
let resolvedKey = false;
|
|
91
|
-
if (typeof key === 'function') {
|
|
92
|
-
key = await key(parsedProt, jwe);
|
|
93
|
-
resolvedKey = true;
|
|
94
|
-
}
|
|
95
|
-
let cek;
|
|
96
|
-
try {
|
|
97
|
-
cek = await decryptKeyManagement(alg, key, encryptedKey, joseHeader, options);
|
|
98
|
-
}
|
|
99
|
-
catch (err) {
|
|
100
|
-
if (err instanceof TypeError || err instanceof JWEInvalid || err instanceof JOSENotSupported) {
|
|
101
|
-
throw err;
|
|
102
|
-
}
|
|
103
|
-
cek = generateCek(enc);
|
|
104
|
-
}
|
|
105
|
-
let iv;
|
|
106
|
-
let tag;
|
|
107
|
-
if (jwe.iv !== undefined) {
|
|
108
|
-
try {
|
|
109
|
-
iv = base64url(jwe.iv);
|
|
110
|
-
}
|
|
111
|
-
catch {
|
|
112
|
-
throw new JWEInvalid('Failed to base64url decode the iv');
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
if (jwe.tag !== undefined) {
|
|
116
|
-
try {
|
|
117
|
-
tag = base64url(jwe.tag);
|
|
118
|
-
}
|
|
119
|
-
catch {
|
|
120
|
-
throw new JWEInvalid('Failed to base64url decode the tag');
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
const protectedHeader = encoder.encode(jwe.protected ?? '');
|
|
124
|
-
let additionalData;
|
|
125
|
-
if (jwe.aad !== undefined) {
|
|
126
|
-
additionalData = concat(protectedHeader, encoder.encode('.'), encoder.encode(jwe.aad));
|
|
127
|
-
}
|
|
128
|
-
else {
|
|
129
|
-
additionalData = protectedHeader;
|
|
130
|
-
}
|
|
131
|
-
let ciphertext;
|
|
132
|
-
try {
|
|
133
|
-
ciphertext = base64url(jwe.ciphertext);
|
|
134
|
-
}
|
|
135
|
-
catch {
|
|
136
|
-
throw new JWEInvalid('Failed to base64url decode the ciphertext');
|
|
137
|
-
}
|
|
138
|
-
const plaintext = await decrypt(enc, cek, ciphertext, iv, tag, additionalData);
|
|
139
|
-
const result = { plaintext };
|
|
140
|
-
if (jwe.protected !== undefined) {
|
|
141
|
-
result.protectedHeader = parsedProt;
|
|
142
|
-
}
|
|
143
|
-
if (jwe.aad !== undefined) {
|
|
144
|
-
try {
|
|
145
|
-
result.additionalAuthenticatedData = base64url(jwe.aad);
|
|
146
|
-
}
|
|
147
|
-
catch {
|
|
148
|
-
throw new JWEInvalid('Failed to base64url decode the aad');
|
|
149
|
-
}
|
|
150
|
-
}
|
|
151
|
-
if (jwe.unprotected !== undefined) {
|
|
152
|
-
result.sharedUnprotectedHeader = jwe.unprotected;
|
|
153
|
-
}
|
|
154
|
-
if (jwe.header !== undefined) {
|
|
155
|
-
result.unprotectedHeader = jwe.header;
|
|
156
|
-
}
|
|
157
|
-
if (resolvedKey) {
|
|
158
|
-
return { ...result, key };
|
|
159
|
-
}
|
|
160
|
-
return result;
|
|
161
|
-
}
|