jose 5.9.6 → 6.0.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 (291) hide show
  1. package/README.md +21 -19
  2. package/dist/types/index.d.ts +5 -5
  3. package/dist/types/jwe/compact/decrypt.d.ts +4 -4
  4. package/dist/types/jwe/compact/encrypt.d.ts +4 -4
  5. package/dist/types/jwe/flattened/decrypt.d.ts +4 -4
  6. package/dist/types/jwe/flattened/encrypt.d.ts +6 -6
  7. package/dist/types/jwe/general/decrypt.d.ts +4 -4
  8. package/dist/types/jwe/general/encrypt.d.ts +7 -7
  9. package/dist/types/jwk/embedded.d.ts +2 -2
  10. package/dist/types/jwk/thumbprint.d.ts +5 -5
  11. package/dist/types/jwks/local.d.ts +2 -2
  12. package/dist/types/jwks/remote.d.ts +104 -25
  13. package/dist/types/jws/compact/sign.d.ts +4 -4
  14. package/dist/types/jws/compact/verify.d.ts +4 -4
  15. package/dist/types/jws/flattened/sign.d.ts +4 -4
  16. package/dist/types/jws/flattened/verify.d.ts +4 -4
  17. package/dist/types/jws/general/sign.d.ts +6 -6
  18. package/dist/types/jws/general/verify.d.ts +4 -4
  19. package/dist/types/jwt/decrypt.d.ts +5 -5
  20. package/dist/types/jwt/encrypt.d.ts +4 -4
  21. package/dist/types/jwt/produce.d.ts +3 -3
  22. package/dist/types/jwt/sign.d.ts +3 -3
  23. package/dist/types/jwt/unsecured.d.ts +5 -5
  24. package/dist/types/jwt/verify.d.ts +5 -5
  25. package/dist/types/key/export.d.ts +10 -12
  26. package/dist/types/key/generate_key_pair.d.ts +10 -11
  27. package/dist/types/key/generate_secret.d.ts +6 -9
  28. package/dist/types/key/import.d.ts +20 -27
  29. package/dist/types/types.d.ts +38 -59
  30. package/dist/types/util/decode_jwt.d.ts +2 -2
  31. package/dist/types/util/decode_protected_header.d.ts +2 -2
  32. package/dist/types/util/errors.d.ts +6 -6
  33. package/dist/{browser → webapi}/index.js +2 -2
  34. package/dist/{node/esm → webapi}/jwe/flattened/decrypt.js +8 -4
  35. package/dist/{node/esm → webapi}/jwe/flattened/encrypt.js +7 -3
  36. package/dist/{node/esm → webapi}/jwe/general/encrypt.js +8 -3
  37. package/dist/{node/esm → webapi}/jwk/thumbprint.js +18 -8
  38. package/dist/{node/esm → webapi}/jwks/local.js +4 -6
  39. package/dist/{node/esm → webapi}/jwks/remote.js +34 -6
  40. package/dist/{node/esm → webapi}/jws/flattened/sign.js +7 -5
  41. package/dist/{browser → webapi}/jws/flattened/verify.js +8 -14
  42. package/dist/{browser → webapi}/jwt/unsecured.js +1 -1
  43. package/dist/{node/esm → webapi}/key/export.js +2 -3
  44. package/dist/{browser/runtime/generate.js → webapi/key/generate_key_pair.js} +5 -54
  45. package/dist/webapi/key/generate_secret.js +40 -0
  46. package/dist/{browser → webapi}/key/import.js +9 -7
  47. package/dist/{node/esm → webapi}/lib/aesgcmkw.js +3 -3
  48. package/dist/{browser/runtime → webapi/lib}/aeskw.js +9 -16
  49. package/dist/{browser/runtime → webapi/lib}/asn1.js +25 -17
  50. package/dist/{browser/runtime → webapi/lib}/base64url.js +17 -9
  51. package/dist/{browser → webapi}/lib/buffer_utils.js +4 -19
  52. package/dist/{browser → webapi}/lib/cek.js +1 -2
  53. package/dist/{browser/runtime → webapi/lib}/check_cek_length.js +1 -2
  54. package/dist/{browser → webapi}/lib/check_iv_length.js +1 -2
  55. package/dist/webapi/lib/check_key_type.js +126 -0
  56. package/dist/{node/esm → webapi}/lib/crypto_key.js +11 -23
  57. package/dist/{browser/runtime → webapi/lib}/decrypt.js +26 -10
  58. package/dist/{node/esm → webapi}/lib/decrypt_key_management.js +22 -24
  59. package/dist/{browser/runtime → webapi/lib}/digest.js +1 -3
  60. package/dist/webapi/lib/ecdhes.js +46 -0
  61. package/dist/{browser/runtime → webapi/lib}/encrypt.js +8 -10
  62. package/dist/{node/esm → webapi}/lib/encrypt_key_management.js +26 -23
  63. package/dist/webapi/lib/get_sign_verify_key.js +12 -0
  64. package/dist/{node/esm → webapi}/lib/is_disjoint.js +1 -2
  65. package/dist/{browser → webapi}/lib/is_jwk.js +1 -1
  66. package/dist/webapi/lib/is_key_like.js +14 -0
  67. package/dist/{browser → webapi}/lib/is_object.js +2 -2
  68. package/dist/{node/esm → webapi}/lib/iv.js +1 -2
  69. package/dist/{browser/runtime → webapi/lib}/jwk_to_key.js +4 -10
  70. package/dist/webapi/lib/key_to_jwk.js +27 -0
  71. package/dist/webapi/lib/normalize_key.js +164 -0
  72. package/dist/webapi/lib/pbes2kw.js +37 -0
  73. package/dist/webapi/lib/rsaes.js +24 -0
  74. package/dist/{browser/runtime → webapi/lib}/sign.js +1 -3
  75. package/dist/{browser/runtime → webapi/lib}/subtle_dsa.js +5 -4
  76. package/dist/{browser → webapi}/lib/validate_algorithms.js +1 -2
  77. package/dist/{node/esm → webapi}/lib/validate_crit.js +3 -4
  78. package/dist/{browser/runtime → webapi/lib}/verify.js +1 -3
  79. package/dist/{node/esm → webapi}/util/base64url.js +1 -1
  80. package/package.json +36 -219
  81. package/dist/browser/jwe/compact/encrypt.js +0 -26
  82. package/dist/browser/jwe/flattened/decrypt.js +0 -161
  83. package/dist/browser/jwe/flattened/encrypt.js +0 -153
  84. package/dist/browser/jwe/general/encrypt.js +0 -174
  85. package/dist/browser/jwk/thumbprint.js +0 -53
  86. package/dist/browser/jwks/local.js +0 -121
  87. package/dist/browser/jwks/remote.js +0 -139
  88. package/dist/browser/jws/compact/sign.js +0 -17
  89. package/dist/browser/jws/flattened/sign.js +0 -81
  90. package/dist/browser/jws/general/sign.js +0 -67
  91. package/dist/browser/jwt/encrypt.js +0 -68
  92. package/dist/browser/jwt/produce.js +0 -75
  93. package/dist/browser/jwt/sign.js +0 -20
  94. package/dist/browser/key/export.js +0 -12
  95. package/dist/browser/key/generate_key_pair.js +0 -4
  96. package/dist/browser/key/generate_secret.js +0 -4
  97. package/dist/browser/lib/aesgcmkw.js +0 -16
  98. package/dist/browser/lib/check_key_type.js +0 -77
  99. package/dist/browser/lib/check_p2s.js +0 -6
  100. package/dist/browser/lib/crypto_key.js +0 -152
  101. package/dist/browser/lib/decrypt_key_management.js +0 -129
  102. package/dist/browser/lib/encrypt_key_management.js +0 -89
  103. package/dist/browser/lib/format_pem.js +0 -4
  104. package/dist/browser/lib/is_disjoint.js +0 -22
  105. package/dist/browser/lib/iv.js +0 -20
  106. package/dist/browser/lib/validate_crit.js +0 -34
  107. package/dist/browser/package.json +0 -1
  108. package/dist/browser/runtime/bogus.js +0 -6
  109. package/dist/browser/runtime/ecdhes.js +0 -47
  110. package/dist/browser/runtime/fetch_jwks.js +0 -34
  111. package/dist/browser/runtime/get_sign_verify_key.js +0 -24
  112. package/dist/browser/runtime/is_key_like.js +0 -8
  113. package/dist/browser/runtime/key_to_jwk.js +0 -21
  114. package/dist/browser/runtime/normalize_key.js +0 -68
  115. package/dist/browser/runtime/pbes2kw.js +0 -51
  116. package/dist/browser/runtime/random.js +0 -2
  117. package/dist/browser/runtime/rsaes.js +0 -37
  118. package/dist/browser/runtime/runtime.js +0 -1
  119. package/dist/browser/runtime/subtle_rsaes.js +0 -12
  120. package/dist/browser/runtime/timing_safe_equal.js +0 -19
  121. package/dist/browser/runtime/webcrypto.js +0 -2
  122. package/dist/browser/util/base64url.js +0 -3
  123. package/dist/browser/util/errors.js +0 -114
  124. package/dist/browser/util/runtime.js +0 -2
  125. package/dist/node/cjs/index.js +0 -69
  126. package/dist/node/cjs/jwe/compact/decrypt.js +0 -30
  127. package/dist/node/cjs/jwe/compact/encrypt.js +0 -31
  128. package/dist/node/cjs/jwe/flattened/decrypt.js +0 -164
  129. package/dist/node/cjs/jwe/flattened/encrypt.js +0 -165
  130. package/dist/node/cjs/jwe/general/decrypt.js +0 -34
  131. package/dist/node/cjs/jwe/general/encrypt.js +0 -186
  132. package/dist/node/cjs/jwk/embedded.js +0 -20
  133. package/dist/node/cjs/jwk/thumbprint.js +0 -57
  134. package/dist/node/cjs/jwks/local.js +0 -125
  135. package/dist/node/cjs/jwks/remote.js +0 -152
  136. package/dist/node/cjs/jws/compact/sign.js +0 -22
  137. package/dist/node/cjs/jws/compact/verify.js +0 -24
  138. package/dist/node/cjs/jws/flattened/sign.js +0 -88
  139. package/dist/node/cjs/jws/flattened/verify.js +0 -125
  140. package/dist/node/cjs/jws/general/sign.js +0 -77
  141. package/dist/node/cjs/jws/general/verify.js +0 -27
  142. package/dist/node/cjs/jwt/decrypt.js +0 -26
  143. package/dist/node/cjs/jwt/encrypt.js +0 -79
  144. package/dist/node/cjs/jwt/produce.js +0 -80
  145. package/dist/node/cjs/jwt/sign.js +0 -25
  146. package/dist/node/cjs/jwt/unsecured.js +0 -36
  147. package/dist/node/cjs/jwt/verify.js +0 -18
  148. package/dist/node/cjs/key/export.js +0 -17
  149. package/dist/node/cjs/key/generate_key_pair.js +0 -7
  150. package/dist/node/cjs/key/generate_secret.js +0 -7
  151. package/dist/node/cjs/key/import.js +0 -51
  152. package/dist/node/cjs/lib/aesgcmkw.js +0 -20
  153. package/dist/node/cjs/lib/buffer_utils.js +0 -60
  154. package/dist/node/cjs/lib/cek.js +0 -23
  155. package/dist/node/cjs/lib/check_iv_length.js +0 -10
  156. package/dist/node/cjs/lib/check_key_type.js +0 -80
  157. package/dist/node/cjs/lib/check_p2s.js +0 -9
  158. package/dist/node/cjs/lib/crypto_key.js +0 -156
  159. package/dist/node/cjs/lib/decrypt_key_management.js +0 -131
  160. package/dist/node/cjs/lib/encrypt_key_management.js +0 -91
  161. package/dist/node/cjs/lib/epoch.js +0 -3
  162. package/dist/node/cjs/lib/invalid_key_input.js +0 -34
  163. package/dist/node/cjs/lib/is_disjoint.js +0 -24
  164. package/dist/node/cjs/lib/is_jwk.js +0 -19
  165. package/dist/node/cjs/lib/is_object.js +0 -19
  166. package/dist/node/cjs/lib/iv.js +0 -23
  167. package/dist/node/cjs/lib/jwt_claims_set.js +0 -106
  168. package/dist/node/cjs/lib/private_symbols.js +0 -4
  169. package/dist/node/cjs/lib/secs.js +0 -57
  170. package/dist/node/cjs/lib/validate_algorithms.js +0 -13
  171. package/dist/node/cjs/lib/validate_crit.js +0 -36
  172. package/dist/node/cjs/runtime/aeskw.js +0 -55
  173. package/dist/node/cjs/runtime/asn1.js +0 -54
  174. package/dist/node/cjs/runtime/base64url.js +0 -20
  175. package/dist/node/cjs/runtime/cbc_tag.js +0 -11
  176. package/dist/node/cjs/runtime/check_cek_length.js +0 -37
  177. package/dist/node/cjs/runtime/check_key_length.js +0 -18
  178. package/dist/node/cjs/runtime/ciphers.js +0 -8
  179. package/dist/node/cjs/runtime/decrypt.js +0 -103
  180. package/dist/node/cjs/runtime/digest.js +0 -5
  181. package/dist/node/cjs/runtime/dsa_digest.js +0 -25
  182. package/dist/node/cjs/runtime/ecdhes.js +0 -70
  183. package/dist/node/cjs/runtime/encrypt.js +0 -80
  184. package/dist/node/cjs/runtime/fetch_jwks.js +0 -45
  185. package/dist/node/cjs/runtime/generate.js +0 -101
  186. package/dist/node/cjs/runtime/get_named_curve.js +0 -61
  187. package/dist/node/cjs/runtime/get_sign_verify_key.js +0 -31
  188. package/dist/node/cjs/runtime/hmac_digest.js +0 -16
  189. package/dist/node/cjs/runtime/is_key_like.js +0 -11
  190. package/dist/node/cjs/runtime/is_key_object.js +0 -4
  191. package/dist/node/cjs/runtime/jwk_to_key.js +0 -10
  192. package/dist/node/cjs/runtime/key_to_jwk.js +0 -36
  193. package/dist/node/cjs/runtime/node_key.js +0 -106
  194. package/dist/node/cjs/runtime/normalize_key.js +0 -3
  195. package/dist/node/cjs/runtime/pbes2kw.js +0 -48
  196. package/dist/node/cjs/runtime/random.js +0 -5
  197. package/dist/node/cjs/runtime/rsaes.js +0 -71
  198. package/dist/node/cjs/runtime/runtime.js +0 -3
  199. package/dist/node/cjs/runtime/sign.js +0 -19
  200. package/dist/node/cjs/runtime/timing_safe_equal.js +0 -5
  201. package/dist/node/cjs/runtime/verify.js +0 -31
  202. package/dist/node/cjs/runtime/webcrypto.js +0 -9
  203. package/dist/node/cjs/util/base64url.js +0 -6
  204. package/dist/node/cjs/util/decode_jwt.js +0 -35
  205. package/dist/node/cjs/util/decode_protected_header.js +0 -37
  206. package/dist/node/cjs/util/errors.js +0 -117
  207. package/dist/node/cjs/util/runtime.js +0 -4
  208. package/dist/node/esm/index.js +0 -30
  209. package/dist/node/esm/jwe/compact/decrypt.js +0 -27
  210. package/dist/node/esm/jwe/general/decrypt.js +0 -31
  211. package/dist/node/esm/jwk/embedded.js +0 -17
  212. package/dist/node/esm/jws/compact/verify.js +0 -21
  213. package/dist/node/esm/jws/flattened/verify.js +0 -122
  214. package/dist/node/esm/jws/general/verify.js +0 -24
  215. package/dist/node/esm/jwt/decrypt.js +0 -23
  216. package/dist/node/esm/jwt/unsecured.js +0 -32
  217. package/dist/node/esm/jwt/verify.js +0 -15
  218. package/dist/node/esm/key/generate_key_pair.js +0 -4
  219. package/dist/node/esm/key/generate_secret.js +0 -4
  220. package/dist/node/esm/key/import.js +0 -45
  221. package/dist/node/esm/lib/buffer_utils.js +0 -51
  222. package/dist/node/esm/lib/cek.js +0 -20
  223. package/dist/node/esm/lib/check_iv_length.js +0 -8
  224. package/dist/node/esm/lib/check_key_type.js +0 -77
  225. package/dist/node/esm/lib/check_p2s.js +0 -6
  226. package/dist/node/esm/lib/epoch.js +0 -1
  227. package/dist/node/esm/lib/invalid_key_input.js +0 -31
  228. package/dist/node/esm/lib/is_jwk.js +0 -13
  229. package/dist/node/esm/lib/is_object.js +0 -16
  230. package/dist/node/esm/lib/jwt_claims_set.js +0 -104
  231. package/dist/node/esm/lib/private_symbols.js +0 -1
  232. package/dist/node/esm/lib/secs.js +0 -55
  233. package/dist/node/esm/lib/validate_algorithms.js +0 -11
  234. package/dist/node/esm/package.json +0 -1
  235. package/dist/node/esm/runtime/aeskw.js +0 -50
  236. package/dist/node/esm/runtime/asn1.js +0 -46
  237. package/dist/node/esm/runtime/base64url.js +0 -14
  238. package/dist/node/esm/runtime/cbc_tag.js +0 -8
  239. package/dist/node/esm/runtime/check_cek_length.js +0 -35
  240. package/dist/node/esm/runtime/check_key_length.js +0 -16
  241. package/dist/node/esm/runtime/ciphers.js +0 -6
  242. package/dist/node/esm/runtime/decrypt.js +0 -101
  243. package/dist/node/esm/runtime/digest.js +0 -3
  244. package/dist/node/esm/runtime/dsa_digest.js +0 -22
  245. package/dist/node/esm/runtime/ecdhes.js +0 -64
  246. package/dist/node/esm/runtime/encrypt.js +0 -78
  247. package/dist/node/esm/runtime/fetch_jwks.js +0 -43
  248. package/dist/node/esm/runtime/generate.js +0 -97
  249. package/dist/node/esm/runtime/get_named_curve.js +0 -58
  250. package/dist/node/esm/runtime/get_sign_verify_key.js +0 -28
  251. package/dist/node/esm/runtime/hmac_digest.js +0 -13
  252. package/dist/node/esm/runtime/is_key_like.js +0 -8
  253. package/dist/node/esm/runtime/is_key_object.js +0 -2
  254. package/dist/node/esm/runtime/jwk_to_key.js +0 -8
  255. package/dist/node/esm/runtime/key_to_jwk.js +0 -34
  256. package/dist/node/esm/runtime/node_key.js +0 -103
  257. package/dist/node/esm/runtime/normalize_key.js +0 -1
  258. package/dist/node/esm/runtime/pbes2kw.js +0 -43
  259. package/dist/node/esm/runtime/random.js +0 -1
  260. package/dist/node/esm/runtime/rsaes.js +0 -66
  261. package/dist/node/esm/runtime/runtime.js +0 -1
  262. package/dist/node/esm/runtime/sign.js +0 -17
  263. package/dist/node/esm/runtime/timing_safe_equal.js +0 -3
  264. package/dist/node/esm/runtime/verify.js +0 -29
  265. package/dist/node/esm/runtime/webcrypto.js +0 -5
  266. package/dist/node/esm/util/decode_jwt.js +0 -32
  267. package/dist/node/esm/util/decode_protected_header.js +0 -34
  268. package/dist/node/esm/util/runtime.js +0 -2
  269. package/dist/types/util/runtime.d.ts +0 -3
  270. /package/dist/{browser → webapi}/jwe/compact/decrypt.js +0 -0
  271. /package/dist/{node/esm → webapi}/jwe/compact/encrypt.js +0 -0
  272. /package/dist/{browser → webapi}/jwe/general/decrypt.js +0 -0
  273. /package/dist/{browser → webapi}/jwk/embedded.js +0 -0
  274. /package/dist/{node/esm → webapi}/jws/compact/sign.js +0 -0
  275. /package/dist/{browser → webapi}/jws/compact/verify.js +0 -0
  276. /package/dist/{node/esm → webapi}/jws/general/sign.js +0 -0
  277. /package/dist/{browser → webapi}/jws/general/verify.js +0 -0
  278. /package/dist/{browser → webapi}/jwt/decrypt.js +0 -0
  279. /package/dist/{node/esm → webapi}/jwt/encrypt.js +0 -0
  280. /package/dist/{node/esm → webapi}/jwt/produce.js +0 -0
  281. /package/dist/{node/esm → webapi}/jwt/sign.js +0 -0
  282. /package/dist/{browser → webapi}/jwt/verify.js +0 -0
  283. /package/dist/{browser/runtime → webapi/lib}/check_key_length.js +0 -0
  284. /package/dist/{browser → webapi}/lib/epoch.js +0 -0
  285. /package/dist/{browser → webapi}/lib/invalid_key_input.js +0 -0
  286. /package/dist/{browser → webapi}/lib/jwt_claims_set.js +0 -0
  287. /package/dist/{browser → webapi}/lib/private_symbols.js +0 -0
  288. /package/dist/{browser → webapi}/lib/secs.js +0 -0
  289. /package/dist/{browser → webapi}/util/decode_jwt.js +0 -0
  290. /package/dist/{browser → webapi}/util/decode_protected_header.js +0 -0
  291. /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": "5.9.6",
3
+ "version": "6.0.0",
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
- "bun": "./dist/browser/index.js",
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
- "bun": "./dist/browser/jwk/embedded.js",
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
- "bun": "./dist/browser/jwk/thumbprint.js",
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
- "bun": "./dist/browser/key/import.js",
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
- "bun": "./dist/browser/key/export.js",
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
- "bun": "./dist/browser/key/generate_key_pair.js",
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
- "bun": "./dist/browser/key/generate_secret.js",
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
- "bun": "./dist/browser/jwks/remote.js",
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
- "bun": "./dist/browser/jwks/local.js",
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
- "bun": "./dist/browser/jwt/sign.js",
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
- "bun": "./dist/browser/jwt/verify.js",
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
- "bun": "./dist/browser/jwt/encrypt.js",
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
- "bun": "./dist/browser/jwt/decrypt.js",
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
- "bun": "./dist/browser/jwt/unsecured.js",
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
- "bun": "./dist/browser/util/decode_jwt.js",
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
- "bun": "./dist/browser/util/decode_protected_header.js",
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
- "bun": "./dist/browser/jws/compact/sign.js",
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
- "bun": "./dist/browser/jws/compact/verify.js",
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
- "bun": "./dist/browser/jws/flattened/sign.js",
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
- "bun": "./dist/browser/jws/flattened/verify.js",
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
- "bun": "./dist/browser/jws/general/sign.js",
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
- "bun": "./dist/browser/jws/general/verify.js",
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
- "bun": "./dist/browser/jwe/compact/encrypt.js",
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
- "bun": "./dist/browser/jwe/compact/decrypt.js",
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
- "bun": "./dist/browser/jwe/flattened/encrypt.js",
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
- "bun": "./dist/browser/jwe/flattened/decrypt.js",
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
- "bun": "./dist/browser/jwe/general/encrypt.js",
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
- "bun": "./dist/browser/jwe/general/decrypt.js",
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
- "bun": "./dist/browser/util/errors.js",
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
- "bun": "./dist/browser/util/base64url.js",
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/node/cjs/index.js",
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/**/package.json",
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
- }