cyberchef 11.0.0 → 11.2.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 (75) hide show
  1. package/CHANGELOG.md +170 -1
  2. package/Dockerfile +2 -2
  3. package/Gruntfile.js +10 -5
  4. package/README.md +10 -7
  5. package/SECURITY.md +11 -19
  6. package/package.json +35 -34
  7. package/src/core/Chef.mjs +2 -0
  8. package/src/core/config/Categories.json +6 -0
  9. package/src/core/config/OperationConfig.json +144 -19
  10. package/src/core/config/modules/Default.mjs +8 -0
  11. package/src/core/config/modules/PGP.mjs +2 -0
  12. package/src/core/config/scripts/generateOpsIndex.mjs +63 -0
  13. package/src/core/config/scripts/newOperation.mjs +31 -4
  14. package/src/core/dishTypes/DishType.mjs +1 -1
  15. package/src/core/errors/ExcludedOperationError.mjs +1 -1
  16. package/src/core/lib/Charts.mjs +3 -3
  17. package/src/core/lib/Protocol.mjs +8 -6
  18. package/src/core/operations/AESDecrypt.mjs +61 -16
  19. package/src/core/operations/AESEncrypt.mjs +26 -11
  20. package/src/core/operations/BLAKE3.mjs +13 -7
  21. package/src/core/operations/BSONDeserialise.mjs +2 -2
  22. package/src/core/operations/BSONSerialise.mjs +3 -2
  23. package/src/core/operations/Bcrypt.mjs +1 -1
  24. package/src/core/operations/BcryptCompare.mjs +1 -1
  25. package/src/core/operations/DecodeText.mjs +4 -0
  26. package/src/core/operations/EncodeText.mjs +4 -0
  27. package/src/core/operations/EscapeSmartCharacters.mjs +129 -0
  28. package/src/core/operations/GenerateDeBruijnSequence.mjs +8 -0
  29. package/src/core/operations/GenerateLoremIpsum.mjs +34 -3
  30. package/src/core/operations/GeneratePGPKeyPair.mjs +8 -7
  31. package/src/core/operations/PGPSign.mjs +83 -0
  32. package/src/core/operations/ParityBit.mjs +1 -1
  33. package/src/core/operations/ParseEthernetFrame.mjs +1 -1
  34. package/src/core/operations/ParseIPv4Header.mjs +2 -2
  35. package/src/core/operations/ParseObjectIDTimestamp.mjs +2 -2
  36. package/src/core/operations/ParseUserAgent.mjs +1 -1
  37. package/src/core/operations/ROR13.mjs +83 -0
  38. package/src/core/operations/RemoveANSIEscapeCodes.mjs +41 -0
  39. package/src/core/operations/SHA2.mjs +1 -1
  40. package/src/core/operations/SeriesChart.mjs +16 -0
  41. package/src/core/operations/ToHexdump.mjs +7 -1
  42. package/src/core/operations/Wrap.mjs +47 -0
  43. package/src/core/operations/XORChecksum.mjs +10 -3
  44. package/src/core/operations/index.mjs +10 -0
  45. package/src/node/index.mjs +25 -0
  46. package/src/web/App.mjs +19 -1
  47. package/src/web/HTMLIngredient.mjs +1 -0
  48. package/src/web/html/index.html +3 -3
  49. package/src/web/static/sitemap.mjs +3 -3
  50. package/src/web/waiters/RecipeWaiter.mjs +9 -1
  51. package/tests/browser/02_ops.js +7 -7
  52. package/tests/browser/03_recipe_load.js +48 -0
  53. package/tests/browser/browserUtils.js +6 -3
  54. package/tests/node/index.mjs +2 -0
  55. package/tests/node/tests/PGP.mjs +69 -0
  56. package/tests/node/tests/lib/ChartsProtocolPrototypePollution.mjs +90 -0
  57. package/tests/node/tests/operations.mjs +41 -2
  58. package/tests/operations/index.mjs +71 -66
  59. package/tests/operations/tests/BLAKE3.mjs +18 -0
  60. package/tests/operations/tests/CharEnc.mjs +26 -0
  61. package/tests/operations/tests/Charts.mjs +11 -0
  62. package/tests/operations/tests/Crypt.mjs +288 -62
  63. package/tests/operations/tests/EscapeSmartCharacters.mjs +132 -0
  64. package/tests/operations/tests/FlaskSession.mjs +11 -8
  65. package/tests/operations/tests/GenerateLoremIpsum.mjs +80 -0
  66. package/tests/operations/tests/Hexdump.mjs +11 -0
  67. package/tests/operations/tests/IPv6Transition.mjs +4 -4
  68. package/tests/operations/tests/PGP.mjs +178 -154
  69. package/tests/operations/tests/ParseEthernetFrame.mjs +11 -0
  70. package/tests/operations/tests/ParseIPv4Header.mjs +34 -0
  71. package/tests/operations/tests/ParseX509CRL.mjs +16 -16
  72. package/tests/operations/tests/ROR13.mjs +45 -0
  73. package/tests/operations/tests/Register.mjs +3 -1
  74. package/tests/operations/tests/RemoveANSIEscapeCodes.mjs +62 -0
  75. package/tests/operations/tests/Wrap.mjs +44 -0
package/CHANGELOG.md CHANGED
@@ -13,6 +13,86 @@ All major and minor version changes will be documented in this file. Details of
13
13
 
14
14
  ## Details
15
15
 
16
+ ### [11.2.0] - 2026-06-17
17
+ This release includes a security fix ([#2569])
18
+ - Security: Chart operation prototype protection [@C85297] | [#2569]
19
+ - Update website references [@C85297] | [#2566]
20
+ - Fix: Add input validation for XOR Checksum blocksize (#2537) [@dweep-js] | [#2542]
21
+ - Fix: Reverse highlights unwind incorrectly [@kendallgoto] [@C85297] | [#2022]
22
+ - Fix Uint8Array concat crash in Parse IPv4 header [@Zish19] | [#2409]
23
+ - Fix typos and documentation errors (bytes→bits, wrong release link, spelling) [@qa2me] [@GCHQDeveloper581] | [#2404]
24
+ - Add integer check for alphabet size [@heapframe] [@GCHQDeveloper581] | [#2458]
25
+ - fix: validate hexdump width upper bound [@skyswordw] | [#2514]
26
+
27
+ ### [11.1.0] - 2026-06-13
28
+ This release includes a security fix ([#2557])
29
+ - Security: Add fix, and tests, for Lorem Ipsum DoS issue [@GCHQDeveloper581] | [#2557]
30
+ - chore (deps): bump the patch-updates group with 4 updates | [#2552]
31
+ - chore (deps): bump the actions-dependencies group with 2 updates | [#2551]
32
+ - chore (deps): bump the docker-dependencies group with 2 updates | [#2550]
33
+ - chore (deps): bump protobufjs from 8.5.0 to 8.6.2 in the minor-updates group | [#2553]
34
+ - Security Policy Update [@C85297] | [#2547]
35
+ - Fix spurious error messages generated during webpack build [@GCHQDeveloper581] | [#2545]
36
+ - chore (deps): bump shell-quote from 1.8.3 to 1.8.4 | [#2543]
37
+ - Implementing ROR13 feature [@Fufu-btw] | [#2539]
38
+ - New operation improvements [@jl5193] [@GCHQDeveloper581] | [#1431]
39
+ - Npm and yarn/major version updates [@GCHQDeveloper581] | [#2527]
40
+ - Update README to reflect AES Decrypt changes [@andreasrtv] | [#2502]
41
+ - feat: add Escape Smart Characters operation [@HarelKatz] | [#2391]
42
+ - feat: Get AES IV from input (QoL) [@andreasrtv] | [#2471]
43
+ - fix: validate text encoding options [@SyedIshmumAhnaf] | [#2497]
44
+ - chore (deps): bump the minor-updates group with 5 updates [@GCHQDeveloper581] | [#2500]
45
+ - chore (deps): bump the patch-updates group with 2 updates | [#2499]
46
+ - chore (deps): bump nginxinc/nginx-unprivileged from `df0e9ed` to `0a1e718` in the docker-dependencies group | [#2498]
47
+ - Add remove ANSI escape codes operation [@Louis-Ladd] [@GCHQDeveloper581] | [#2143]
48
+ - Fix option ingredients being overwriten [@C85297] | [#2341]
49
+ - chore (deps): bump qs and express | [#2478]
50
+ - chore (deps): bump tmp from 0.2.5 to 0.2.7 | [#2479]
51
+ - chore (deps): bump the patch-updates group across 1 directory with 6 updates | [#2463]
52
+ - chore (deps): bump the docker-dependencies group across 1 directory with 2 updates | [#2468]
53
+ - chore (deps): bump terser from 5.46.2 to 5.48.0 | [#2385]
54
+ - Make dependabot quieter [@GCHQDeveloper581] | [#2467]
55
+ - update sitemap [@Blank0120] | [#2443]
56
+ - Bump webpack-dev-server to 5.2.4 [@GCHQDeveloper581] | [#2417]
57
+ - Fix pgp tests [@GCHQDeveloper581] [@C85297] | [#2461]
58
+ - chore (deps): bump the patch-updates group across 1 directory with 4 updates | [#2438]
59
+ - chore (deps): bump docker/setup-buildx-action from 4.0.0 to 4.1.0 | [#2439]
60
+ - chore (deps): bump docker/login-action from 4.1.0 to 4.2.0 | [#2441]
61
+ - chore (deps): bump docker/metadata-action from 6.0.0 to 6.1.0 | [#2442]
62
+ - update bson [@Blank0120] [@GCHQDeveloper581] | [#2425]
63
+ - chore (deps): bump webpack from 5.106.2 to 5.107.1 | [#2428]
64
+ - chore (deps): bump protobufjs from 7.5.8 to 7.6.0 | [#2429]
65
+ - chore (deps): bump sql-formatter from 15.7.4 to 15.8.0 | [#2430]
66
+ - chore (deps): bump docker/build-push-action from 7.1.0 to 7.2.0 | [#2431]
67
+ - Fix flaky `npm run testui` [@lzandman] | [#2412]
68
+ - Include git ref in website download zip name [@C85297] | [#2339]
69
+ - Bump nginxinc/nginx-unprivileged from `808f784` to `b9f7ba1` | [#2389]
70
+ - Series Chart HTML Formatting fix [@C85297] | [#2403]
71
+ - Parse Ethernet Frame HTML formatting fix [@C85297] | [#2402]
72
+ - Parse IPv4 Header HTML formatting fix [@C85297] | [#2401]
73
+ - Update chromedriver, and install corresponding chrome in workflows (fixes build) [@GCHQDeveloper581] | [#2387]
74
+ - chore (deps): bump @codemirror/view from 6.41.1 to 6.43.0 | [#2384]
75
+ - chore (deps): bump globals from 17.5.0 to 17.6.0 | [#2386]
76
+ - chore (deps): bump the patch-updates group across 1 directory with 3 updates | [#2388]
77
+ - [StepSecurity] Apply security best practices [@GCHQDeveloper581] StepSecurity Bot <bot@stepsecurity.io> | [#2378]
78
+ - Build docker container for arm v7 as well [@GCHQDeveloper581] | [#2379]
79
+ - chore (deps): bump fast-uri from 3.1.0 to 3.1.2 | [#2372]
80
+ - update bcryptjs [@C85297] [@GCHQDeveloper581] | [#2368]
81
+ - chore (deps): bump picomatch from 2.3.1 to 2.3.2 | [#2370]
82
+ - chore (deps): bump ip-address from 10.1.0 to 10.2.0 | [#2371]
83
+ - chore (deps): bump axios from 1.15.0 to 1.16.0 | [#2369]
84
+ - feat(operation-wrap): add new Wrap operation to format text at specified line width [@0xff1ce] | [#1882]
85
+ - chore (deps): bump the patch-updates group across 1 directory with 5 updates | [#2354]
86
+ - chore (deps): bump docker/login-action from 3 to 4 | [#2363]
87
+ - chore (deps): bump docker/setup-buildx-action from 3 to 4 | [#2364]
88
+ - chore (deps): bump crazy-max/ghaction-github-pages from 3 to 5 | [#2365]
89
+ - chore (deps): bump docker/metadata-action from 4 to 6 | [#2366]
90
+ - chore (deps): bump docker/setup-qemu-action from 3 to 4 | [#2367]
91
+ - Update dependabot for Node 24. [@GCHQDeveloper581] | [#2361]
92
+ - chore (deps): bump uuid from 13.0.0 to 14.0.0 | [#2332]
93
+ - chore (deps): bump webpack-bundle-analyzer from 5.2.0 to 5.3.0 | [#2353]
94
+ - Fix all zeros after 16384 bytes with Blake3 [@zachbowden] [@GCHQDeveloper581] | [#2351]
95
+
16
96
  ## [11.0.0] - 2026-04-28
17
97
  - Revert sitemap to v8.0.X to fix build/deploy on master [@GCHQDeveloper581] | [#2348]
18
98
  - Node version update from 22 to 24 [@lzandman] [@GCHQDeveloper581] | [#2347]
@@ -638,6 +718,8 @@ Breaking changes:
638
718
  ## [4.0.0] - 2016-11-28
639
719
  - Initial open source commit [@n1474335] | [b1d73a72](https://github.com/gchq/CyberChef/commit/b1d73a725dc7ab9fb7eb789296efd2b7e4b08306)
640
720
 
721
+ [11.2.0]: https://github.com/gchq/CyberChef/releases/tag/v11.2.0
722
+ [11.1.0]: https://github.com/gchq/CyberChef/releases/tag/v11.1.0
641
723
  [11.0.0]: https://github.com/gchq/CyberChef/releases/tag/v11.0.0
642
724
  [10.24.0]: https://github.com/gchq/CyberChef/releases/tag/v10.24.0
643
725
  [10.23.0]: https://github.com/gchq/CyberChef/releases/tag/v10.23.0
@@ -655,7 +737,7 @@ Breaking changes:
655
737
  [10.11.0]: https://github.com/gchq/CyberChef/releases/tag/v10.11.0
656
738
  [10.10.0]: https://github.com/gchq/CyberChef/releases/tag/v10.10.0
657
739
  [10.9.0]: https://github.com/gchq/CyberChef/releases/tag/v10.9.0
658
- [10.8.0]: https://github.com/gchq/CyberChef/releases/tag/v10.7.0
740
+ [10.8.0]: https://github.com/gchq/CyberChef/releases/tag/v10.8.0
659
741
  [10.7.0]: https://github.com/gchq/CyberChef/releases/tag/v10.7.0
660
742
  [10.6.0]: https://github.com/gchq/CyberChef/releases/tag/v10.6.0
661
743
  [10.5.0]: https://github.com/gchq/CyberChef/releases/tag/v10.5.0
@@ -923,6 +1005,19 @@ Breaking changes:
923
1005
  [@hsolberg]: https://github.com/hsolberg
924
1006
  [@lzandman]: https://github.com/lzandman
925
1007
  [@engin0223]: https://github.com/engin0223
1008
+ [@Fufu-btw]: https://github.com/Fufu-btw
1009
+ [@jl5193]: https://github.com/jl5193
1010
+ [@andreasrtv]: https://github.com/andreasrtv
1011
+ [@HarelKatz]: https://github.com/HarelKatz
1012
+ [@SyedIshmumAhnaf]: https://github.com/SyedIshmumAhnaf
1013
+ [@Louis-Ladd]: https://github.com/Louis-Ladd
1014
+ [@Blank0120]: https://github.com/Blank0120
1015
+ [@zachbowden]: https://github.com/zachbowden
1016
+ [@dweep-js]: https://github.com/dweep-js
1017
+ [@Zish19]: https://github.com/Zish19
1018
+ [@qa2me]: https://github.com/qa2me
1019
+ [@heapframe]: https://github.com/heapframe
1020
+ [@skyswordw]: https://github.com/skyswordw
926
1021
 
927
1022
 
928
1023
  [8ad18b]: https://github.com/gchq/CyberChef/commit/8ad18bc7db6d9ff184ba3518686293a7685bf7b7
@@ -1220,4 +1315,78 @@ Breaking changes:
1220
1315
  [#2273]: https://github.com/gchq/CyberChef/pull/2273
1221
1316
  [#2342]: https://github.com/gchq/CyberChef/pull/2342
1222
1317
  [#1922]: https://github.com/gchq/CyberChef/pull/1922
1318
+ [#2557]: https://github.com/gchq/CyberChef/pull/2557
1319
+ [#2552]: https://github.com/gchq/CyberChef/pull/2552
1320
+ [#2551]: https://github.com/gchq/CyberChef/pull/2551
1321
+ [#2550]: https://github.com/gchq/CyberChef/pull/2550
1322
+ [#2553]: https://github.com/gchq/CyberChef/pull/2553
1323
+ [#2547]: https://github.com/gchq/CyberChef/pull/2547
1324
+ [#2545]: https://github.com/gchq/CyberChef/pull/2545
1325
+ [#2543]: https://github.com/gchq/CyberChef/pull/2543
1326
+ [#2539]: https://github.com/gchq/CyberChef/pull/2539
1327
+ [#1431]: https://github.com/gchq/CyberChef/pull/1431
1328
+ [#2527]: https://github.com/gchq/CyberChef/pull/2527
1329
+ [#2502]: https://github.com/gchq/CyberChef/pull/2502
1330
+ [#2391]: https://github.com/gchq/CyberChef/pull/2391
1331
+ [#2471]: https://github.com/gchq/CyberChef/pull/2471
1332
+ [#2497]: https://github.com/gchq/CyberChef/pull/2497
1333
+ [#2500]: https://github.com/gchq/CyberChef/pull/2500
1334
+ [#2499]: https://github.com/gchq/CyberChef/pull/2499
1335
+ [#2498]: https://github.com/gchq/CyberChef/pull/2498
1336
+ [#2143]: https://github.com/gchq/CyberChef/pull/2143
1337
+ [#2341]: https://github.com/gchq/CyberChef/pull/2341
1338
+ [#2478]: https://github.com/gchq/CyberChef/pull/2478
1339
+ [#2479]: https://github.com/gchq/CyberChef/pull/2479
1340
+ [#2463]: https://github.com/gchq/CyberChef/pull/2463
1341
+ [#2468]: https://github.com/gchq/CyberChef/pull/2468
1342
+ [#2385]: https://github.com/gchq/CyberChef/pull/2385
1343
+ [#2467]: https://github.com/gchq/CyberChef/pull/2467
1344
+ [#2443]: https://github.com/gchq/CyberChef/pull/2443
1345
+ [#2417]: https://github.com/gchq/CyberChef/pull/2417
1346
+ [#2461]: https://github.com/gchq/CyberChef/pull/2461
1347
+ [#2438]: https://github.com/gchq/CyberChef/pull/2438
1348
+ [#2439]: https://github.com/gchq/CyberChef/pull/2439
1349
+ [#2441]: https://github.com/gchq/CyberChef/pull/2441
1350
+ [#2442]: https://github.com/gchq/CyberChef/pull/2442
1351
+ [#2425]: https://github.com/gchq/CyberChef/pull/2425
1352
+ [#2428]: https://github.com/gchq/CyberChef/pull/2428
1353
+ [#2429]: https://github.com/gchq/CyberChef/pull/2429
1354
+ [#2430]: https://github.com/gchq/CyberChef/pull/2430
1355
+ [#2431]: https://github.com/gchq/CyberChef/pull/2431
1356
+ [#2412]: https://github.com/gchq/CyberChef/pull/2412
1357
+ [#2339]: https://github.com/gchq/CyberChef/pull/2339
1358
+ [#2389]: https://github.com/gchq/CyberChef/pull/2389
1359
+ [#2403]: https://github.com/gchq/CyberChef/pull/2403
1360
+ [#2402]: https://github.com/gchq/CyberChef/pull/2402
1361
+ [#2401]: https://github.com/gchq/CyberChef/pull/2401
1362
+ [#2387]: https://github.com/gchq/CyberChef/pull/2387
1363
+ [#2384]: https://github.com/gchq/CyberChef/pull/2384
1364
+ [#2386]: https://github.com/gchq/CyberChef/pull/2386
1365
+ [#2388]: https://github.com/gchq/CyberChef/pull/2388
1366
+ [#2378]: https://github.com/gchq/CyberChef/pull/2378
1367
+ [#2379]: https://github.com/gchq/CyberChef/pull/2379
1368
+ [#2372]: https://github.com/gchq/CyberChef/pull/2372
1369
+ [#2368]: https://github.com/gchq/CyberChef/pull/2368
1370
+ [#2370]: https://github.com/gchq/CyberChef/pull/2370
1371
+ [#2371]: https://github.com/gchq/CyberChef/pull/2371
1372
+ [#2369]: https://github.com/gchq/CyberChef/pull/2369
1373
+ [#1882]: https://github.com/gchq/CyberChef/pull/1882
1374
+ [#2354]: https://github.com/gchq/CyberChef/pull/2354
1375
+ [#2363]: https://github.com/gchq/CyberChef/pull/2363
1376
+ [#2364]: https://github.com/gchq/CyberChef/pull/2364
1377
+ [#2365]: https://github.com/gchq/CyberChef/pull/2365
1378
+ [#2366]: https://github.com/gchq/CyberChef/pull/2366
1379
+ [#2367]: https://github.com/gchq/CyberChef/pull/2367
1380
+ [#2361]: https://github.com/gchq/CyberChef/pull/2361
1381
+ [#2332]: https://github.com/gchq/CyberChef/pull/2332
1382
+ [#2353]: https://github.com/gchq/CyberChef/pull/2353
1383
+ [#2351]: https://github.com/gchq/CyberChef/pull/2351
1384
+ [#2569]: https://github.com/gchq/CyberChef/pull/2569
1385
+ [#2566]: https://github.com/gchq/CyberChef/pull/2566
1386
+ [#2542]: https://github.com/gchq/CyberChef/pull/2542
1387
+ [#2022]: https://github.com/gchq/CyberChef/pull/2022
1388
+ [#2409]: https://github.com/gchq/CyberChef/pull/2409
1389
+ [#2404]: https://github.com/gchq/CyberChef/pull/2404
1390
+ [#2458]: https://github.com/gchq/CyberChef/pull/2458
1391
+ [#2514]: https://github.com/gchq/CyberChef/pull/2514
1223
1392
 
package/Dockerfile CHANGED
@@ -4,7 +4,7 @@
4
4
  # Modifier --platform=$BUILDPLATFORM limits the platform to "BUILDPLATFORM" during buildx multi-platform builds
5
5
  # This is because npm "chromedriver" package is not compatiable with all platforms
6
6
  # For more info see: https://docs.docker.com/build/building/multi-platform/#cross-compilation
7
- FROM --platform=$BUILDPLATFORM node:24-alpine AS builder
7
+ FROM --platform=$BUILDPLATFORM node:24-alpine@sha256:fb71d01345f11b708a3553c66e7c74074f2d506400ea81973343d915cb64eef0 AS builder
8
8
 
9
9
  WORKDIR /app
10
10
 
@@ -27,7 +27,7 @@ RUN npm run build
27
27
  #########################################
28
28
  # Package static build files into nginx #
29
29
  #########################################
30
- FROM nginxinc/nginx-unprivileged:stable-alpine AS cyberchef
30
+ FROM nginxinc/nginx-unprivileged:stable-alpine@sha256:37f356a5eba5d187365b4f59cd6cc29f1f922ad18146d554b576a80983377e6a AS cyberchef
31
31
 
32
32
  LABEL maintainer="GCHQ <oss@gchq.gov.uk>"
33
33
 
package/Gruntfile.js CHANGED
@@ -89,6 +89,8 @@ module.exports = function (grunt) {
89
89
  const compileYear = grunt.template.today("UTC:yyyy"),
90
90
  compileTime = grunt.template.today("UTC:dd/mm/yyyy HH:MM:ss") + " UTC",
91
91
  pkg = grunt.file.readJSON("package.json"),
92
+ version = process.env.GITHUB_SHA || `v${pkg.version}`,
93
+ downloadZipFilename = `CyberChef_${version}.zip`,
92
94
  webpackConfig = require("./webpack.config.js"),
93
95
  BUILD_CONSTANTS = {
94
96
  COMPILE_YEAR: JSON.stringify(compileYear),
@@ -129,7 +131,9 @@ module.exports = function (grunt) {
129
131
  chunks: ["main"],
130
132
  compileYear: compileYear,
131
133
  compileTime: compileTime,
132
- version: pkg.version,
134
+ version: version,
135
+ latestReleaseVersion: pkg.version,
136
+ downloadZipFilename: downloadZipFilename,
133
137
  minify: {
134
138
  removeComments: true,
135
139
  collapseWhitespace: true,
@@ -140,7 +144,8 @@ module.exports = function (grunt) {
140
144
  new BundleAnalyzerPlugin({
141
145
  analyzerMode: "static",
142
146
  reportFilename: "BundleAnalyzerReport.html",
143
- openAnalyzer: false
147
+ openAnalyzer: false,
148
+ excludeAssets: /.*Worker.js/
144
149
  }),
145
150
  ]
146
151
  };
@@ -245,7 +250,7 @@ module.exports = function (grunt) {
245
250
  "!build/prod/index.html",
246
251
  "!build/prod/BundleAnalyzerReport.html",
247
252
  ],
248
- dest: `build/prod/CyberChef_v${pkg.version}.zip`
253
+ dest: `build/prod/${downloadZipFilename}`
249
254
  }
250
255
  },
251
256
  connect: {
@@ -333,12 +338,12 @@ module.exports = function (grunt) {
333
338
  switch (process.platform) {
334
339
  case "darwin":
335
340
  return chainCommands([
336
- `shasum -a 256 build/prod/CyberChef_v${pkg.version}.zip | awk '{print $1;}' > build/prod/sha256digest.txt`,
341
+ `shasum -a 256 build/prod/${downloadZipFilename} | awk '{print $1;}' > build/prod/sha256digest.txt`,
337
342
  `sed -i '' -e "s/DOWNLOAD_HASH_PLACEHOLDER/$(cat build/prod/sha256digest.txt)/" build/prod/index.html`
338
343
  ]);
339
344
  default:
340
345
  return chainCommands([
341
- `sha256sum build/prod/CyberChef_v${pkg.version}.zip | awk '{print $1;}' > build/prod/sha256digest.txt`,
346
+ `sha256sum build/prod/${downloadZipFilename} | awk '{print $1;}' > build/prod/sha256digest.txt`,
342
347
  `sed -i -e "s/DOWNLOAD_HASH_PLACEHOLDER/$(cat build/prod/sha256digest.txt)/" build/prod/index.html`
343
348
  ]);
344
349
  }
package/README.md CHANGED
@@ -12,13 +12,9 @@ CyberChef is a simple, intuitive web app for carrying out all manner of "cyber"
12
12
 
13
13
  The tool is designed to enable both technical and non-technical analysts to manipulate data in complex ways without having to deal with complex tools or algorithms. It was conceived, designed, built and incrementally improved by an analyst in their 10% innovation time over several years.
14
14
 
15
- ## Live demo
15
+ ## Official website
16
16
 
17
- CyberChef is still under active development. As a result, it shouldn't be considered a finished product. There is still testing and bug fixing to do, new features to be added and additional documentation to write. Please contribute!
18
-
19
- Cryptographic operations in CyberChef should not be relied upon to provide security in any situation. No guarantee is offered for their correctness.
20
-
21
- [A live demo can be found here][1] - have fun!
17
+ [CyberChef's official website can be found here][1] - have fun!
22
18
 
23
19
  ## Running Locally with Docker
24
20
 
@@ -72,6 +68,7 @@ You can use as many operations as you like in simple or complex ways. Some examp
72
68
  - [Carry out different operations on data of different types][8]
73
69
  - [Use parts of the input as arguments to operations][9]
74
70
  - [Perform AES decryption, extracting the IV from the beginning of the cipher stream][10]
71
+ - [A simpler way to perform the same AES Decryption][13]
75
72
  - [Automagically detect several layers of nested encoding][12]
76
73
 
77
74
 
@@ -123,6 +120,11 @@ CyberChef is built to support
123
120
  CyberChef is built to fully support Node.js `v24`. For more information, see the ["Node API" wiki page](https://github.com/gchq/CyberChef/wiki/Node-API)
124
121
 
125
122
 
123
+ ## Security
124
+
125
+ Please see the [CyberChef security policy](./SECURITY.md).
126
+
127
+
126
128
  ## Contributing
127
129
 
128
130
  Contributing a new operation to CyberChef is super easy! The quickstart script will walk you through the process. If you can write basic JavaScript, you can write a CyberChef operation.
@@ -147,6 +149,7 @@ CyberChef is released under the [Apache 2.0 Licence](https://www.apache.org/lice
147
149
  [7]: https://gchq.github.io/CyberChef/#recipe=Fork('%5C%5Cn','%5C%5Cn',false)From_UNIX_Timestamp('Seconds%20(s)')&input=OTc4MzQ2ODAwCjEwMTI2NTEyMDAKMTA0NjY5NjQwMAoxMDgxMDg3MjAwCjExMTUzMDUyMDAKMTE0OTYwOTYwMA
148
150
  [8]: https://gchq.github.io/CyberChef/#recipe=Fork('%5C%5Cn','%5C%5Cn',false)Conditional_Jump('1',false,'base64',10)To_Hex('Space')Return()Label('base64')To_Base64('A-Za-z0-9%2B/%3D')&input=U29tZSBkYXRhIHdpdGggYSAxIGluIGl0ClNvbWUgZGF0YSB3aXRoIGEgMiBpbiBpdA
149
151
  [9]: https://gchq.github.io/CyberChef/#recipe=Register('key%3D(%5B%5C%5Cda-f%5D*)',true,false)Find_/_Replace(%7B'option':'Regex','string':'.*data%3D(.*)'%7D,'$1',true,false,true)RC4(%7B'option':'Hex','string':'$R0'%7D,'Hex','Latin1')&input=aHR0cDovL21hbHdhcmV6LmJpei9iZWFjb24ucGhwP2tleT0wZTkzMmE1YyZkYXRhPThkYjdkNWViZTM4NjYzYTU0ZWNiYjMzNGUzZGIxMQ
150
- [10]: https://gchq.github.io/CyberChef/#recipe=Register('(.%7B32%7D)',true,false)Drop_bytes(0,32,false)AES_Decrypt(%7B'option':'Hex','string':'1748e7179bd56570d51fa4ba287cc3e5'%7D,%7B'option':'Hex','string':'$R0'%7D,'CTR','Hex','Raw',%7B'option':'Hex','string':''%7D)&input=NTFlMjAxZDQ2MzY5OGVmNWY3MTdmNzFmNWI0NzEyYWYyMGJlNjc0YjNiZmY1M2QzODU0NjM5NmVlNjFkYWFjNDkwOGUzMTljYTNmY2Y3MDg5YmZiNmIzOGVhOTllNzgxZDI2ZTU3N2JhOWRkNmYzMTFhMzk0MjBiODk3OGU5MzAxNGIwNDJkNDQ3MjZjYWVkZjU0MzZlYWY2NTI0MjljMGRmOTRiNTIxNjc2YzdjMmNlODEyMDk3YzI3NzI3M2M3YzcyY2Q4OWFlYzhkOWZiNGEyNzU4NmNjZjZhYTBhZWUyMjRjMzRiYTNiZmRmN2FlYjFkZGQ0Nzc2MjJiOTFlNzJjOWU3MDlhYjYwZjhkYWY3MzFlYzBjYzg1Y2UwZjc0NmZmMTU1NGE1YTNlYzI5MWNhNDBmOWU2MjlhODcyNTkyZDk4OGZkZDgzNDUzNGFiYTc5YzFhZDE2NzY3NjlhN2MwMTBiZjA0NzM5ZWNkYjY1ZDk1MzAyMzcxZDYyOWQ5ZTM3ZTdiNGEzNjFkYTQ2OGYxZWQ1MzU4OTIyZDJlYTc1MmRkMTFjMzY2ZjMwMTdiMTRhYTAxMWQyYWYwM2M0NGY5NTU3OTA5OGExNWUzY2Y5YjQ0ODZmOGZmZTljMjM5ZjM0ZGU3MTUxZjZjYTY1MDBmZTRiODUwYzNmMWMwMmU4MDFjYWYzYTI0NDY0NjE0ZTQyODAxNjE1YjhmZmFhMDdhYzgyNTE0OTNmZmRhN2RlNWRkZjMzNjg4ODBjMmI5NWIwMzBmNDFmOGYxNTA2NmFkZDA3MWE2NmNmNjBlNWY0NmYzYTIzMGQzOTdiNjUyOTYzYTIxYTUzZg
152
+ [10]: https://gchq.github.io/CyberChef/#recipe=Register('(.%7B32%7D)',true,false,false)Drop_bytes(0,32,false)AES_Decrypt(%7B'option':'Hex','string':'1748e7179bd56570d51fa4ba287cc3e5'%7D,%7B'option':'Hex','string':'$R0'%7D,16,'CTR','Hex','Raw',%7B'option':'Hex','string':''%7D,%7B'option':'Hex','string':''%7D,'Off')&input=NTFlMjAxZDQ2MzY5OGVmNWY3MTdmNzFmNWI0NzEyYWYyMGJlNjc0YjNiZmY1M2QzODU0NjM5NmVlNjFkYWFjNDkwOGUzMTljYTNmY2Y3MDg5YmZiNmIzOGVhOTllNzgxZDI2ZTU3N2JhOWRkNmYzMTFhMzk0MjBiODk3OGU5MzAxNGIwNDJkNDQ3MjZjYWVkZjU0MzZlYWY2NTI0MjljMGRmOTRiNTIxNjc2YzdjMmNlODEyMDk3YzI3NzI3M2M3YzcyY2Q4OWFlYzhkOWZiNGEyNzU4NmNjZjZhYTBhZWUyMjRjMzRiYTNiZmRmN2FlYjFkZGQ0Nzc2MjJiOTFlNzJjOWU3MDlhYjYwZjhkYWY3MzFlYzBjYzg1Y2UwZjc0NmZmMTU1NGE1YTNlYzI5MWNhNDBmOWU2MjlhODcyNTkyZDk4OGZkZDgzNDUzNGFiYTc5YzFhZDE2NzY3NjlhN2MwMTBiZjA0NzM5ZWNkYjY1ZDk1MzAyMzcxZDYyOWQ5ZTM3ZTdiNGEzNjFkYTQ2OGYxZWQ1MzU4OTIyZDJlYTc1MmRkMTFjMzY2ZjMwMTdiMTRhYTAxMWQyYWYwM2M0NGY5NTU3OTA5OGExNWUzY2Y5YjQ0ODZmOGZmZTljMjM5ZjM0ZGU3MTUxZjZjYTY1MDBmZTRiODUwYzNmMWMwMmU4MDFjYWYzYTI0NDY0NjE0ZTQyODAxNjE1YjhmZmFhMDdhYzgyNTE0OTNmZmRhN2RlNWRkZjMzNjg4ODBjMmI5NWIwMzBmNDFmOGYxNTA2NmFkZDA3MWE2NmNmNjBlNWY0NmYzYTIzMGQzOTdiNjUyOTYzYTIxYTUzZg
151
153
  [11]: https://gchq.github.io/CyberChef/#recipe=XOR(%7B'option':'Hex','string':'3a'%7D,'Standard',false)To_Hexdump(16,false,false)&input=VGhlIGFuc3dlciB0byB0aGUgdWx0aW1hdGUgcXVlc3Rpb24gb2YgbGlmZSwgdGhlIFVuaXZlcnNlLCBhbmQgZXZlcnl0aGluZyBpcyA0Mi4
152
154
  [12]: https://gchq.github.io/CyberChef/#recipe=Magic(3,false,false)&input=V1VhZ3dzaWFlNm1QOGdOdENDTFVGcENwQ0IyNlJtQkRvREQ4UGFjZEFtekF6QlZqa0syUXN0RlhhS2hwQzZpVVM3UkhxWHJKdEZpc29SU2dvSjR3aGptMWFybTg2NHFhTnE0UmNmVW1MSHJjc0FhWmM1VFhDWWlmTmRnUzgzZ0RlZWpHWDQ2Z2FpTXl1QlY2RXNrSHQxc2NnSjg4eDJ0TlNvdFFEd2JHWTFtbUNvYjJBUkdGdkNLWU5xaU45aXBNcTFaVTFtZ2tkYk51R2NiNzZhUnRZV2hDR1VjOGc5M1VKdWRoYjhodHNoZVpud1RwZ3FoeDgzU1ZKU1pYTVhVakpUMnptcEM3dVhXdHVtcW9rYmRTaTg4WXRrV0RBYzFUb291aDJvSDRENGRkbU5LSldVRHBNd21uZ1VtSzE0eHdtb21jY1BRRTloTTE3MkFQblNxd3hkS1ExNzJSa2NBc3lzbm1qNWdHdFJtVk5OaDJzMzU5d3I2bVMyUVJQ
155
+ [13]: https://gchq.github.io/CyberChef/#recipe=AES_Decrypt(%7B'option':'Hex','string':'1748e7179bd56570d51fa4ba287cc3e5'%7D,%7B'option':'Hex','string':'$R0'%7D,16,'CTR','Hex','Raw',%7B'option':'Hex','string':''%7D,%7B'option':'Hex','string':''%7D,'From%20start')&input=NTFlMjAxZDQ2MzY5OGVmNWY3MTdmNzFmNWI0NzEyYWYyMGJlNjc0YjNiZmY1M2QzODU0NjM5NmVlNjFkYWFjNDkwOGUzMTljYTNmY2Y3MDg5YmZiNmIzOGVhOTllNzgxZDI2ZTU3N2JhOWRkNmYzMTFhMzk0MjBiODk3OGU5MzAxNGIwNDJkNDQ3MjZjYWVkZjU0MzZlYWY2NTI0MjljMGRmOTRiNTIxNjc2YzdjMmNlODEyMDk3YzI3NzI3M2M3YzcyY2Q4OWFlYzhkOWZiNGEyNzU4NmNjZjZhYTBhZWUyMjRjMzRiYTNiZmRmN2FlYjFkZGQ0Nzc2MjJiOTFlNzJjOWU3MDlhYjYwZjhkYWY3MzFlYzBjYzg1Y2UwZjc0NmZmMTU1NGE1YTNlYzI5MWNhNDBmOWU2MjlhODcyNTkyZDk4OGZkZDgzNDUzNGFiYTc5YzFhZDE2NzY3NjlhN2MwMTBiZjA0NzM5ZWNkYjY1ZDk1MzAyMzcxZDYyOWQ5ZTM3ZTdiNGEzNjFkYTQ2OGYxZWQ1MzU4OTIyZDJlYTc1MmRkMTFjMzY2ZjMwMTdiMTRhYTAxMWQyYWYwM2M0NGY5NTU3OTA5OGExNWUzY2Y5YjQ0ODZmOGZmZTljMjM5ZjM0ZGU3MTUxZjZjYTY1MDBmZTRiODUwYzNmMWMwMmU4MDFjYWYzYTI0NDY0NjE0ZTQyODAxNjE1YjhmZmFhMDdhYzgyNTE0OTNmZmRhN2RlNWRkZjMzNjg4ODBjMmI5NWIwMzBmNDFmOGYxNTA2NmFkZDA3MWE2NmNmNjBlNWY0NmYzYTIzMGQzOTdiNjUyOTYzYTIxYTUzZg
package/SECURITY.md CHANGED
@@ -1,26 +1,18 @@
1
1
  # Security Policy
2
2
 
3
- ## Supported Versions
3
+ ## Support
4
4
 
5
- CyberChef is supported on a best endeavours basis. Patches will be applied to
6
- the latest version rather than retroactively to older versions. To ensure you
7
- are using the most secure version of CyberChef, please make sure you have the
8
- [latest release](https://github.com/gchq/CyberChef/releases/latest). The
9
- official [live demo](https://gchq.github.io/CyberChef/) is always up to date.
5
+ CyberChef is supported on a best endeavours basis.
6
+ Patches will be applied to the latest version rather than retroactively to older versions.
7
+ To ensure you are using the most secure version of CyberChef, please make sure you have the [latest release](https://github.com/gchq/CyberChef/releases/latest). [The official website](https://gchq.github.io/CyberChef/) is always up to date.
8
+
9
+ No guarantee is offered for the correctness or security of CyberChef. In paticular, the security of cryptographic operations should not be relied upon.
10
10
 
11
11
  ## Reporting a Vulnerability
12
12
 
13
- In most scenarios, the most appropriate way to report a vulnerability is to
14
- [raise a new issue](https://github.com/gchq/CyberChef/issues/new/choose)
15
- describing the problem in as much detail as possible, ideally with examples.
16
- This will obviously be public. If you feel that the vulnerability is
17
- significant enough to warrant a private disclosure, please email
18
- [oss@gchq.gov.uk](mailto:oss@gchq.gov.uk) and
19
- [n1474335@gmail.com](mailto:n1474335@gmail.com).
13
+ If you discover a vulnerability in CyberChef, please do not publicly disclose it, and do not create a GitHub issue.
14
+
15
+ Instead, send an email as soon as possible to [CyberChefSecurity@gchq.gov.uk](mailto:CyberChefSecurity@gchq.gov.uk).
16
+ The report will be acknowledged and actioned urgently by the CyberChef maintainers.
20
17
 
21
- Disclosures of vulnerabilities in CyberChef are always welcomed. Whilst we aim
22
- to write clean and secure code free from bugs, we recognise that this is an open
23
- source project written by analysts in their spare time, relying on dozens of
24
- open source libraries that are modified and updated on a regular basis. We hope
25
- that the community will continue to support us as we endeavour to maintain and
26
- develop this tool together.
18
+ If you do not receive a timely acknowledgement, please notify [oss@gchq.gov.uk](mailto:oss@gchq.gov.uk) and [CyberChef@gchq.gov.uk](mailto:CyberChef@gchq.gov.uk) of your vulnerability report.
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "cyberchef",
3
- "version": "11.0.0",
3
+ "version": "11.2.0",
4
4
  "description": "The Cyber Swiss Army Knife for encryption, encoding, compression and data analysis.",
5
- "author": "n1474335 <n1474335@gmail.com>",
5
+ "author": "GCHQ <CyberChef@gchq.gov.uk>",
6
6
  "homepage": "https://gchq.github.io/CyberChef",
7
7
  "copyright": "Crown copyright 2016",
8
8
  "license": "Apache-2.0",
@@ -39,30 +39,31 @@
39
39
  "node >= 24"
40
40
  ],
41
41
  "devDependencies": {
42
- "@babel/eslint-parser": "^7.28.6",
42
+ "@babel/eslint-parser": "^7.29.7",
43
43
  "@babel/plugin-syntax-import-assertions": "^7.28.6",
44
- "@babel/plugin-transform-runtime": "^7.29.0",
45
- "@babel/preset-env": "^7.29.2",
46
- "@babel/runtime": "^7.29.2",
44
+ "@babel/plugin-transform-runtime": "^7.29.7",
45
+ "@babel/preset-env": "^7.29.7",
46
+ "@babel/runtime": "^7.29.7",
47
47
  "@codemirror/commands": "^6.10.3",
48
48
  "@codemirror/language": "^6.12.3",
49
49
  "@codemirror/search": "^6.7.0",
50
50
  "@codemirror/state": "^6.5.4",
51
- "@codemirror/view": "^6.41.1",
51
+ "@codemirror/view": "^6.43.1",
52
+ "@puppeteer/browsers": "3.0.4",
52
53
  "autoprefixer": "^10.5.0",
53
54
  "babel-loader": "^10.1.1",
54
55
  "base64-loader": "^1.0.0",
55
- "chromedriver": "^146.0.6",
56
+ "chromedriver": "^148.0.4",
56
57
  "cli-progress": "^3.12.0",
57
58
  "colors": "^1.4.0",
58
59
  "compression-webpack-plugin": "^12.0.0",
59
60
  "copy-webpack-plugin": "^14.0.0",
60
61
  "core-js": "^3.49.0",
61
- "cspell": "^9.7.0",
62
+ "cspell": "^10.0.1",
62
63
  "css-loader": "^7.1.4",
63
64
  "eslint": "^9.39.4",
64
65
  "eslint-plugin-jsdoc": "^50.8.0",
65
- "globals": "^17.4.0",
66
+ "globals": "^17.6.0",
66
67
  "grunt": "^1.6.2",
67
68
  "grunt-chmod": "~1.1.1",
68
69
  "grunt-concurrent": "^3.0.0",
@@ -70,25 +71,25 @@
70
71
  "grunt-contrib-connect": "^5.0.1",
71
72
  "grunt-contrib-copy": "~1.0.0",
72
73
  "grunt-contrib-watch": "^1.1.0",
73
- "grunt-eslint": "^25.0.0",
74
+ "grunt-eslint": "^26.0.0",
74
75
  "grunt-exec": "~3.0.0",
75
- "grunt-webpack": "^6.0.0",
76
+ "grunt-webpack": "^8.0.0",
76
77
  "grunt-zip": "^1.0.0",
77
78
  "html-webpack-plugin": "^5.6.7",
78
79
  "imports-loader": "^5.0.0",
79
80
  "mini-css-extract-plugin": "2.10.2",
80
81
  "modify-source-webpack-plugin": "^4.1.0",
81
- "nightwatch": "^3.15.0",
82
- "postcss": "^8.5.10",
82
+ "nightwatch": "^3.16.0",
83
+ "postcss": "^8.5.15",
83
84
  "postcss-css-variables": "^0.19.0",
84
85
  "postcss-import": "^16.1.1",
85
86
  "postcss-loader": "^8.2.1",
86
87
  "prompt": "^1.3.0",
87
- "sitemap": "^8.0.3",
88
- "terser": "^5.46.2",
89
- "webpack": "^5.106.2",
90
- "webpack-bundle-analyzer": "^5.0.0",
91
- "webpack-dev-server": "^5.0.4",
88
+ "sitemap": "^9.0.1",
89
+ "terser": "^5.48.0",
90
+ "webpack": "^5.107.2",
91
+ "webpack-bundle-analyzer": "^5.3.0",
92
+ "webpack-dev-server": "^5.2.4",
92
93
  "webpack-node-externals": "^3.0.0",
93
94
  "worker-loader": "^3.0.8"
94
95
  },
@@ -96,22 +97,23 @@
96
97
  "@alexaltea/capstone-js": "^3.0.5",
97
98
  "@astronautlabs/amf": "^0.0.6",
98
99
  "@blu3r4y/lzma": "^2.3.3",
100
+ "@noble/hashes": "2.2.0",
99
101
  "@wavesenterprise/crypto-gost-js": "^2.1.0-RC1",
100
102
  "@xmldom/xmldom": "^0.8.13",
101
103
  "argon2-browser": "^1.18.0",
102
104
  "arrive": "^2.5.3",
103
105
  "assert": "^2.1.0",
104
106
  "avsc": "^5.7.9",
105
- "bcryptjs": "^2.4.3",
106
- "bignumber.js": "^9.3.1",
107
+ "bcryptjs": "^3.0.3",
108
+ "bignumber.js": "^11.1.3",
107
109
  "blakejs": "^1.2.1",
108
110
  "bootstrap": "4.6.2",
109
111
  "bootstrap-colorpicker": "^3.4.0",
110
112
  "bootstrap-material-design": "^4.1.3",
111
113
  "browserify-zlib": "^0.2.0",
112
- "bson": "^4.7.2",
114
+ "bson": "^7.2.0",
113
115
  "buffer": "^6.0.3",
114
- "cbor": "9.0.2",
116
+ "cbor": "10.0.12",
115
117
  "chi-squared": "^1.1.0",
116
118
  "codepage": "^1.15.0",
117
119
  "crypto-api": "^0.8.5",
@@ -120,8 +122,8 @@
120
122
  "ctph.js": "0.0.5",
121
123
  "d3": "7.9.0",
122
124
  "d3-hexbin": "^0.2.2",
123
- "diff": "^5.2.2",
124
- "dompurify": "^3.4.1",
125
+ "diff": "^9.0.0",
126
+ "dompurify": "^3.4.8",
125
127
  "es6-promisify": "^7.0.0",
126
128
  "escodegen": "^2.1.0",
127
129
  "esprima": "^4.0.1",
@@ -132,7 +134,6 @@
132
134
  "flat": "^6.0.1",
133
135
  "geodesy": "1.1.3",
134
136
  "handlebars": "^4.7.9",
135
- "hash-wasm": "^4.12.0",
136
137
  "highlight.js": "^11.11.1",
137
138
  "ieee754": "^1.2.1",
138
139
  "jimp": "1.6.0",
@@ -141,7 +142,7 @@
141
142
  "js-sha3": "^0.9.3",
142
143
  "jsesc": "^3.1.0",
143
144
  "json5": "^2.2.3",
144
- "jsonata": "^2.1.0",
145
+ "jsonata": "^2.2.1",
145
146
  "jsonpath-plus": "^10.4.0",
146
147
  "jsonwebtoken": "9.0.3",
147
148
  "jsqr": "^1.4.0",
@@ -154,9 +155,9 @@
154
155
  "loglevel-message-prefix": "^3.0.0",
155
156
  "lz-string": "^1.5.0",
156
157
  "lz4js": "^0.2.0",
157
- "markdown-it": "^14.1.1",
158
+ "markdown-it": "^14.2.0",
158
159
  "moment": "^2.30.1",
159
- "moment-timezone": "^0.6.1",
160
+ "moment-timezone": "^0.6.2",
160
161
  "ngeohash": "^0.6.3",
161
162
  "node-forge": "^1.4.0",
162
163
  "node-md6": "^0.1.0",
@@ -168,7 +169,7 @@
168
169
  "path": "^0.12.7",
169
170
  "popper.js": "^1.16.1",
170
171
  "process": "^0.11.10",
171
- "protobufjs": "^7.5.5",
172
+ "protobufjs": "^8.6.2",
172
173
  "punycode.js": "^2.3.1",
173
174
  "qr-image": "^3.2.0",
174
175
  "reflect-metadata": "^0.2.2",
@@ -177,15 +178,15 @@
177
178
  "snackbarjs": "^1.1.0",
178
179
  "sortablejs": "^1.15.7",
179
180
  "split.js": "^1.6.5",
180
- "sql-formatter": "^15.7.3",
181
+ "sql-formatter": "^15.8.1",
181
182
  "ssdeep.js": "0.0.3",
182
183
  "stream-browserify": "^3.0.0",
183
- "tesseract.js": "^6.0.1",
184
- "ua-parser-js": "^1.0.41",
184
+ "tesseract.js": "^7.0.0",
185
+ "ua-parser-js": "^2.0.10",
185
186
  "unorm": "^1.6.0",
186
187
  "url": "^0.11.4",
187
188
  "utf8": "^3.0.0",
188
- "uuid": "^13.0.0",
189
+ "uuid": "^14.0.0",
189
190
  "vkbeautify": "^0.99.3",
190
191
  "xpath": "0.0.34",
191
192
  "xregexp": "^5.1.2",
package/src/core/Chef.mjs CHANGED
@@ -138,6 +138,8 @@ class Chef {
138
138
 
139
139
  if (!highlights) return false;
140
140
 
141
+ if (direction === "reverse") highlights.reverse();
142
+
141
143
  for (let i = 0; i < highlights.length; i++) {
142
144
  // Remove multiple highlights before processing again
143
145
  pos = [pos[0]];
@@ -49,6 +49,7 @@
49
49
  "Escape Unicode Characters",
50
50
  "Unescape Unicode Characters",
51
51
  "Normalise Unicode",
52
+ "Escape Smart Characters",
52
53
  "To Quoted Printable",
53
54
  "From Quoted Printable",
54
55
  "To Punycode",
@@ -118,6 +119,7 @@
118
119
  "GOST Verify",
119
120
  "GOST Key Wrap",
120
121
  "GOST Key Unwrap",
122
+ "ROR13",
121
123
  "ROT13",
122
124
  "ROT13 Brute Force",
123
125
  "ROT47",
@@ -188,6 +190,7 @@
188
190
  "Generate PGP Key Pair",
189
191
  "PGP Encrypt",
190
192
  "PGP Decrypt",
193
+ "PGP Sign",
191
194
  "PGP Verify",
192
195
  "PGP Encrypt and Sign",
193
196
  "PGP Decrypt and Verify",
@@ -238,6 +241,7 @@
238
241
  "Bit shift right",
239
242
  "Rotate left",
240
243
  "Rotate right",
244
+ "ROR13",
241
245
  "ROT13",
242
246
  "ROT8000"
243
247
  ]
@@ -303,6 +307,7 @@
303
307
  "Diff",
304
308
  "Remove whitespace",
305
309
  "Remove null bytes",
310
+ "Remove ANSI Escape Codes",
306
311
  "To Upper case",
307
312
  "To Lower case",
308
313
  "Swap case",
@@ -348,6 +353,7 @@
348
353
  "Pseudo-Random Number Generator",
349
354
  "Sleep",
350
355
  "File Tree",
356
+ "Wrap",
351
357
  "Take nth bytes",
352
358
  "Drop nth bytes"
353
359
  ]