cyberchef 10.22.1 → 10.23.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 (101) hide show
  1. package/CHANGELOG.md +131 -0
  2. package/CONTRIBUTING.md +37 -0
  3. package/Dockerfile +2 -0
  4. package/Gruntfile.js +0 -12
  5. package/README.md +1 -1
  6. package/babel.config.js +0 -6
  7. package/package.json +63 -62
  8. package/src/core/Chef.mjs +8 -1
  9. package/src/core/Ingredient.mjs +5 -2
  10. package/src/core/Operation.mjs +6 -1
  11. package/src/core/Recipe.mjs +10 -5
  12. package/src/core/config/Categories.json +18 -3
  13. package/src/core/config/OperationConfig.json +496 -23
  14. package/src/core/config/modules/Ciphers.mjs +6 -0
  15. package/src/core/config/modules/Crypto.mjs +6 -0
  16. package/src/core/config/modules/Default.mjs +6 -0
  17. package/src/core/config/modules/Shellcode.mjs +2 -0
  18. package/src/core/lib/AudioBytes.mjs +103 -0
  19. package/src/core/lib/AudioMetaSchema.mjs +82 -0
  20. package/src/core/lib/AudioParsers.mjs +630 -0
  21. package/src/core/lib/BigIntUtils.mjs +73 -0
  22. package/src/core/lib/Modhex.mjs +2 -0
  23. package/src/core/lib/QRCode.mjs +30 -10
  24. package/src/core/lib/RC6.mjs +625 -0
  25. package/src/core/operations/A1Z26CipherDecode.mjs +1 -1
  26. package/src/core/operations/AddTextToImage.mjs +116 -64
  27. package/src/core/operations/BlurImage.mjs +10 -12
  28. package/src/core/operations/ContainImage.mjs +50 -40
  29. package/src/core/operations/ConvertImageFormat.mjs +33 -39
  30. package/src/core/operations/CoverImage.mjs +39 -37
  31. package/src/core/operations/CropImage.mjs +35 -21
  32. package/src/core/operations/DisassembleARM.mjs +193 -0
  33. package/src/core/operations/DitherImage.mjs +8 -8
  34. package/src/core/operations/EscapeUnicodeCharacters.mjs +0 -17
  35. package/src/core/operations/ExtractAudioMetadata.mjs +175 -0
  36. package/src/core/operations/ExtractLSB.mjs +17 -11
  37. package/src/core/operations/ExtractRGBA.mjs +12 -10
  38. package/src/core/operations/FlaskSessionDecode.mjs +80 -0
  39. package/src/core/operations/FlaskSessionSign.mjs +89 -0
  40. package/src/core/operations/FlaskSessionVerify.mjs +136 -0
  41. package/src/core/operations/FlipImage.mjs +14 -10
  42. package/src/core/operations/GenerateImage.mjs +39 -32
  43. package/src/core/operations/ImageBrightnessContrast.mjs +10 -10
  44. package/src/core/operations/ImageFilter.mjs +14 -13
  45. package/src/core/operations/ImageHueSaturationLightness.mjs +22 -20
  46. package/src/core/operations/ImageOpacity.mjs +6 -8
  47. package/src/core/operations/InvertImage.mjs +4 -6
  48. package/src/core/operations/Jq.mjs +12 -4
  49. package/src/core/operations/NormaliseImage.mjs +5 -7
  50. package/src/core/operations/OffsetChecker.mjs +1 -1
  51. package/src/core/operations/ParseEthernetFrame.mjs +112 -0
  52. package/src/core/operations/ParseIPv4Header.mjs +23 -6
  53. package/src/core/operations/ParseQRCode.mjs +13 -13
  54. package/src/core/operations/PseudoRandomIntegerGenerator.mjs +164 -0
  55. package/src/core/operations/RC6Decrypt.mjs +119 -0
  56. package/src/core/operations/RC6Encrypt.mjs +119 -0
  57. package/src/core/operations/RandomizeColourPalette.mjs +11 -11
  58. package/src/core/operations/ResizeImage.mjs +30 -23
  59. package/src/core/operations/RotateImage.mjs +8 -9
  60. package/src/core/operations/SQLBeautify.mjs +21 -3
  61. package/src/core/operations/SharpenImage.mjs +94 -62
  62. package/src/core/operations/SplitColourChannels.mjs +47 -21
  63. package/src/core/operations/TextIntegerConverter.mjs +123 -0
  64. package/src/core/operations/UnescapeUnicodeCharacters.mjs +17 -0
  65. package/src/core/operations/ViewBitPlane.mjs +16 -20
  66. package/src/core/operations/index.mjs +20 -0
  67. package/src/node/index.mjs +50 -0
  68. package/src/web/HTMLIngredient.mjs +24 -43
  69. package/src/web/Manager.mjs +1 -0
  70. package/src/web/html/index.html +6 -6
  71. package/src/web/static/fonts/bmfonts/Roboto72White.fnt +491 -485
  72. package/src/web/static/fonts/bmfonts/RobotoBlack72White.fnt +494 -488
  73. package/src/web/static/fonts/bmfonts/RobotoMono72White.fnt +110 -103
  74. package/src/web/static/fonts/bmfonts/RobotoSlab72White.fnt +498 -492
  75. package/src/web/stylesheets/layout/_banner.css +30 -0
  76. package/src/web/stylesheets/layout/_modals.css +5 -0
  77. package/src/web/stylesheets/utils/_overrides.css +7 -0
  78. package/src/web/waiters/ControlsWaiter.mjs +82 -0
  79. package/src/web/waiters/InputWaiter.mjs +12 -6
  80. package/src/web/waiters/RecipeWaiter.mjs +2 -2
  81. package/tests/browser/02_ops.js +23 -3
  82. package/tests/node/index.mjs +1 -0
  83. package/tests/node/tests/lib/BigIntUtils.mjs +150 -0
  84. package/tests/node/tests/operations.mjs +9 -7
  85. package/tests/operations/index.mjs +8 -0
  86. package/tests/operations/tests/A1Z26CipherDecode.mjs +33 -0
  87. package/tests/operations/tests/DisassembleARM.mjs +377 -0
  88. package/tests/operations/tests/ExtractAudioMetadata.mjs +287 -0
  89. package/tests/operations/tests/FlaskSession.mjs +246 -0
  90. package/tests/operations/tests/GenerateQRCode.mjs +67 -0
  91. package/tests/operations/tests/JWTSign.mjs +83 -8
  92. package/tests/operations/tests/Jq.mjs +32 -0
  93. package/tests/operations/tests/Modhex.mjs +20 -0
  94. package/tests/operations/tests/ParseEthernetFrame.mjs +45 -0
  95. package/tests/operations/tests/RC6.mjs +487 -0
  96. package/tests/operations/tests/SQLBeautify.mjs +54 -0
  97. package/tests/operations/tests/TextIntegerConverter.mjs +199 -0
  98. package/tests/samples/Audio.mjs +73 -0
  99. package/tests/samples/Images.mjs +0 -12
  100. package/webpack.config.js +10 -7
  101. package/src/core/lib/ImageManipulation.mjs +0 -251
@@ -0,0 +1,123 @@
1
+ /**
2
+ * @author p-leriche [philip.leriche@cantab.net]
3
+ * @copyright Crown Copyright 2025
4
+ * @license Apache-2.0
5
+ */
6
+
7
+ import Operation from "../Operation.mjs";
8
+ import OperationError from "../errors/OperationError.mjs";
9
+
10
+ /* ---------- helper functions ---------- */
11
+
12
+ /**
13
+ * Convert text to BigInt (big-endian byte interpretation)
14
+ */
15
+ function textToBigInt(text) {
16
+ if (text.length === 0) return 0n;
17
+
18
+ let result = 0n;
19
+ for (let i = 0; i < text.length; i++) {
20
+ const charCode = BigInt(text.charCodeAt(i));
21
+ if (charCode > 255n) {
22
+ throw new OperationError(
23
+ `Character at position ${i} exceeds Latin-1 range (0-255).\n` +
24
+ "Only ASCII and Latin-1 characters are supported.");
25
+ }
26
+ result = (result << 8n) | charCode;
27
+ }
28
+ return result;
29
+ }
30
+
31
+ /**
32
+ * Convert BigInt to text (big-endian byte interpretation)
33
+ */
34
+ function bigIntToText(value) {
35
+ if (value === 0n) return "";
36
+
37
+ const bytes = [];
38
+ let num = value;
39
+
40
+ while (num > 0n) {
41
+ bytes.unshift(Number(num & 0xFFn));
42
+ num >>= 8n;
43
+ }
44
+
45
+ return String.fromCharCode(...bytes);
46
+ }
47
+
48
+ /* ---------- operation class ---------- */
49
+
50
+ /**
51
+ * Text/Integer Converter operation
52
+ */
53
+ class TextIntegerConverter extends Operation {
54
+ /**
55
+ * TextIntegerConverter constructor
56
+ */
57
+ constructor() {
58
+ super();
59
+
60
+ this.description =
61
+ "Converts between text strings and large integers (decimal or hexadecimal).<br><br>" +
62
+ "Text is interpreted as a big-endian sequence of character codes. For example:<br>" +
63
+ "ABC is 0x414243 (hex) is 4276803 (decimal)<br>" +
64
+ "<b>Input format detection:</b><br>" +
65
+ "Decimal: digits 0-9 only<br>" +
66
+ "Hexadecimal: 0x... prefix<br>" +
67
+ "Quoted or unquoted text: treated as string<br><br>" +
68
+ "<b>Character limitations:</b><br>" +
69
+ "Text input may only contain ASCII and Latin-1 characters (code point < 256).<br>" +
70
+ "Multi-byte Unicode characters will generate an error.<br><br>." ;
71
+ this.infoURL = "https://wikipedia.org/wiki/Endianness";
72
+ this.inputType = "string";
73
+ this.outputType = "string";
74
+ this.args = [
75
+ {
76
+ name: "Output format",
77
+ type: "option",
78
+ value: ["String", "Decimal", "Hexadecimal"]
79
+ }
80
+ ];
81
+ this.name = "Text-Integer Conversion";
82
+ this.module = "Default";
83
+ }
84
+
85
+ /**
86
+ * @param {string} input
87
+ * @param {Object[]} args
88
+ * @returns {string}
89
+ */
90
+ run(input, args) {
91
+ const outputFormat = args[0];
92
+ const trimmed = input.trim();
93
+
94
+ let bigIntValue;
95
+
96
+ if (!trimmed) {
97
+ // Null input - treat as zero
98
+ bigIntValue = 0;
99
+ } else if (/^0x[0-9a-f]+$/i.test(trimmed) ||
100
+ /^[+-]?[0-9]+$/.test(trimmed)) {
101
+ // Hex or decimal integer
102
+ bigIntValue = BigInt(trimmed);
103
+ } else if (/^["'].*["']$/.test(trimmed)) {
104
+ // Quoted string: Remove quotes and convert text to BigInt
105
+ const text = trimmed.slice(1, -1);
106
+ bigIntValue = textToBigInt(text);
107
+ } else {
108
+ // Assume it's unquoted text
109
+ bigIntValue = textToBigInt(trimmed);
110
+ }
111
+
112
+ // Convert to output format
113
+ if (outputFormat === "String") {
114
+ return bigIntToText(bigIntValue);
115
+ } else if (outputFormat === "Decimal") {
116
+ return bigIntValue.toString();
117
+ } else { // Hexadecimal
118
+ return "0x" + bigIntValue.toString(16);
119
+ }
120
+ }
121
+ }
122
+
123
+ export default TextIntegerConverter;
@@ -30,6 +30,23 @@ class UnescapeUnicodeCharacters extends Operation {
30
30
  "value": ["\\u", "%u", "U+"]
31
31
  }
32
32
  ];
33
+ this.checks = [
34
+ {
35
+ pattern: "\\\\u(?:[\\da-f]{4,6})",
36
+ flags: "i",
37
+ args: ["\\u"]
38
+ },
39
+ {
40
+ pattern: "%u(?:[\\da-f]{4,6})",
41
+ flags: "i",
42
+ args: ["%u"]
43
+ },
44
+ {
45
+ pattern: "U\\+(?:[\\da-f]{4,6})",
46
+ flags: "i",
47
+ args: ["U+"]
48
+ }
49
+ ];
33
50
  }
34
51
 
35
52
  /**
@@ -9,13 +9,12 @@ import OperationError from "../errors/OperationError.mjs";
9
9
  import Utils from "../Utils.mjs";
10
10
  import { isImage } from "../lib/FileType.mjs";
11
11
  import { toBase64 } from "../lib/Base64.mjs";
12
- import Jimp from "jimp/es/index.js";
12
+ import { Jimp } from "jimp";
13
13
 
14
14
  /**
15
15
  * View Bit Plane operation
16
16
  */
17
17
  class ViewBitPlane extends Operation {
18
-
19
18
  /**
20
19
  * ViewBitPlane constructor
21
20
  */
@@ -24,7 +23,8 @@ class ViewBitPlane extends Operation {
24
23
 
25
24
  this.name = "View Bit Plane";
26
25
  this.module = "Image";
27
- this.description = "Extracts and displays a bit plane of any given image. These show only a single bit from each pixel, and can be used to hide messages in Steganography.";
26
+ this.description =
27
+ "Extracts and displays a bit plane of any given image. These show only a single bit from each pixel, and can be used to hide messages in Steganography.";
28
28
  this.infoURL = "https://wikipedia.org/wiki/Bit_plane";
29
29
  this.inputType = "ArrayBuffer";
30
30
  this.outputType = "ArrayBuffer";
@@ -33,13 +33,13 @@ class ViewBitPlane extends Operation {
33
33
  {
34
34
  name: "Colour",
35
35
  type: "option",
36
- value: COLOUR_OPTIONS
36
+ value: COLOUR_OPTIONS,
37
37
  },
38
38
  {
39
39
  name: "Bit",
40
40
  type: "number",
41
- value: 0
42
- }
41
+ value: 0,
42
+ },
43
43
  ];
44
44
  }
45
45
 
@@ -49,36 +49,38 @@ class ViewBitPlane extends Operation {
49
49
  * @returns {ArrayBuffer}
50
50
  */
51
51
  async run(input, args) {
52
- if (!isImage(input)) throw new OperationError("Please enter a valid image file.");
52
+ if (!isImage(input))
53
+ throw new OperationError("Please enter a valid image file.");
53
54
 
54
55
  const [colour, bit] = args,
55
56
  parsedImage = await Jimp.read(input),
56
57
  width = parsedImage.bitmap.width,
57
58
  height = parsedImage.bitmap.height,
58
59
  colourIndex = COLOUR_OPTIONS.indexOf(colour),
59
- bitIndex = 7-bit;
60
+ bitIndex = 7 - bit;
60
61
 
61
62
  if (bit < 0 || bit > 7) {
62
- throw new OperationError("Error: Bit argument must be between 0 and 7");
63
+ throw new OperationError(
64
+ "Error: Bit argument must be between 0 and 7",
65
+ );
63
66
  }
64
67
 
65
68
  let pixel, bin, newPixelValue;
66
69
 
67
- parsedImage.scan(0, 0, width, height, function(x, y, idx) {
70
+ parsedImage.scan(0, 0, width, height, function (x, y, idx) {
68
71
  pixel = this.bitmap.data[idx + colourIndex];
69
72
  bin = Utils.bin(pixel);
70
73
  newPixelValue = 255;
71
74
 
72
75
  if (bin.charAt(bitIndex) === "1") newPixelValue = 0;
73
76
 
74
- for (let i=0; i < 3; i++) {
77
+ for (let i = 0; i < 3; i++) {
75
78
  this.bitmap.data[idx + i] = newPixelValue;
76
79
  }
77
80
  this.bitmap.data[idx + 3] = 255;
78
-
79
81
  });
80
82
 
81
- const imageBuffer = await parsedImage.getBufferAsync(Jimp.AUTO);
83
+ const imageBuffer = await parsedImage.getBuffer(parsedImage.mime);
82
84
 
83
85
  return new Uint8Array(imageBuffer).buffer;
84
86
  }
@@ -94,14 +96,8 @@ class ViewBitPlane extends Operation {
94
96
 
95
97
  return `<img src="data:${type};base64,${toBase64(data)}">`;
96
98
  }
97
-
98
99
  }
99
100
 
100
- const COLOUR_OPTIONS = [
101
- "Red",
102
- "Green",
103
- "Blue",
104
- "Alpha"
105
- ];
101
+ const COLOUR_OPTIONS = ["Red", "Green", "Blue", "Alpha"];
106
102
 
107
103
  export default ViewBitPlane;
@@ -100,6 +100,7 @@ import DeriveHKDFKey from "./DeriveHKDFKey.mjs";
100
100
  import DerivePBKDF2Key from "./DerivePBKDF2Key.mjs";
101
101
  import DetectFileType from "./DetectFileType.mjs";
102
102
  import Diff from "./Diff.mjs";
103
+ import DisassembleARM from "./DisassembleARM.mjs";
103
104
  import DisassembleX86 from "./DisassembleX86.mjs";
104
105
  import DitherImage from "./DitherImage.mjs";
105
106
  import Divide from "./Divide.mjs";
@@ -116,6 +117,7 @@ import Entropy from "./Entropy.mjs";
116
117
  import EscapeString from "./EscapeString.mjs";
117
118
  import EscapeUnicodeCharacters from "./EscapeUnicodeCharacters.mjs";
118
119
  import ExpandAlphabetRange from "./ExpandAlphabetRange.mjs";
120
+ import ExtractAudioMetadata from "./ExtractAudioMetadata.mjs";
119
121
  import ExtractDates from "./ExtractDates.mjs";
120
122
  import ExtractDomains from "./ExtractDomains.mjs";
121
123
  import ExtractEXIF from "./ExtractEXIF.mjs";
@@ -135,6 +137,9 @@ import FernetEncrypt from "./FernetEncrypt.mjs";
135
137
  import FileTree from "./FileTree.mjs";
136
138
  import Filter from "./Filter.mjs";
137
139
  import FindReplace from "./FindReplace.mjs";
140
+ import FlaskSessionDecode from "./FlaskSessionDecode.mjs";
141
+ import FlaskSessionSign from "./FlaskSessionSign.mjs";
142
+ import FlaskSessionVerify from "./FlaskSessionVerify.mjs";
138
143
  import Fletcher16Checksum from "./Fletcher16Checksum.mjs";
139
144
  import Fletcher32Checksum from "./Fletcher32Checksum.mjs";
140
145
  import Fletcher64Checksum from "./Fletcher64Checksum.mjs";
@@ -287,6 +292,7 @@ import ParseASN1HexString from "./ParseASN1HexString.mjs";
287
292
  import ParseCSR from "./ParseCSR.mjs";
288
293
  import ParseColourCode from "./ParseColourCode.mjs";
289
294
  import ParseDateTime from "./ParseDateTime.mjs";
295
+ import ParseEthernetFrame from "./ParseEthernetFrame.mjs";
290
296
  import ParseIPRange from "./ParseIPRange.mjs";
291
297
  import ParseIPv4Header from "./ParseIPv4Header.mjs";
292
298
  import ParseIPv6Address from "./ParseIPv6Address.mjs";
@@ -306,6 +312,7 @@ import PlayMedia from "./PlayMedia.mjs";
306
312
  import PowerSet from "./PowerSet.mjs";
307
313
  import ProtobufDecode from "./ProtobufDecode.mjs";
308
314
  import ProtobufEncode from "./ProtobufEncode.mjs";
315
+ import PseudoRandomIntegerGenerator from "./PseudoRandomIntegerGenerator.mjs";
309
316
  import PseudoRandomNumberGenerator from "./PseudoRandomNumberGenerator.mjs";
310
317
  import PubKeyFromCert from "./PubKeyFromCert.mjs";
311
318
  import PubKeyFromPrivKey from "./PubKeyFromPrivKey.mjs";
@@ -314,6 +321,8 @@ import RC2Decrypt from "./RC2Decrypt.mjs";
314
321
  import RC2Encrypt from "./RC2Encrypt.mjs";
315
322
  import RC4 from "./RC4.mjs";
316
323
  import RC4Drop from "./RC4Drop.mjs";
324
+ import RC6Decrypt from "./RC6Decrypt.mjs";
325
+ import RC6Encrypt from "./RC6Encrypt.mjs";
317
326
  import RIPEMD from "./RIPEMD.mjs";
318
327
  import ROT13 from "./ROT13.mjs";
319
328
  import ROT13BruteForce from "./ROT13BruteForce.mjs";
@@ -402,6 +411,7 @@ import TakeNthBytes from "./TakeNthBytes.mjs";
402
411
  import Tar from "./Tar.mjs";
403
412
  import Template from "./Template.mjs";
404
413
  import TextEncodingBruteForce from "./TextEncodingBruteForce.mjs";
414
+ import TextIntegerConverter from "./TextIntegerConverter.mjs";
405
415
  import ToBCD from "./ToBCD.mjs";
406
416
  import ToBase from "./ToBase.mjs";
407
417
  import ToBase32 from "./ToBase32.mjs";
@@ -567,6 +577,7 @@ export {
567
577
  DerivePBKDF2Key,
568
578
  DetectFileType,
569
579
  Diff,
580
+ DisassembleARM,
570
581
  DisassembleX86,
571
582
  DitherImage,
572
583
  Divide,
@@ -583,6 +594,7 @@ export {
583
594
  EscapeString,
584
595
  EscapeUnicodeCharacters,
585
596
  ExpandAlphabetRange,
597
+ ExtractAudioMetadata,
586
598
  ExtractDates,
587
599
  ExtractDomains,
588
600
  ExtractEXIF,
@@ -602,6 +614,9 @@ export {
602
614
  FileTree,
603
615
  Filter,
604
616
  FindReplace,
617
+ FlaskSessionDecode,
618
+ FlaskSessionSign,
619
+ FlaskSessionVerify,
605
620
  Fletcher16Checksum,
606
621
  Fletcher32Checksum,
607
622
  Fletcher64Checksum,
@@ -754,6 +769,7 @@ export {
754
769
  ParseCSR,
755
770
  ParseColourCode,
756
771
  ParseDateTime,
772
+ ParseEthernetFrame,
757
773
  ParseIPRange,
758
774
  ParseIPv4Header,
759
775
  ParseIPv6Address,
@@ -773,6 +789,7 @@ export {
773
789
  PowerSet,
774
790
  ProtobufDecode,
775
791
  ProtobufEncode,
792
+ PseudoRandomIntegerGenerator,
776
793
  PseudoRandomNumberGenerator,
777
794
  PubKeyFromCert,
778
795
  PubKeyFromPrivKey,
@@ -781,6 +798,8 @@ export {
781
798
  RC2Encrypt,
782
799
  RC4,
783
800
  RC4Drop,
801
+ RC6Decrypt,
802
+ RC6Encrypt,
784
803
  RIPEMD,
785
804
  ROT13,
786
805
  ROT13BruteForce,
@@ -869,6 +888,7 @@ export {
869
888
  Tar,
870
889
  Template,
871
890
  TextEncodingBruteForce,
891
+ TextIntegerConverter,
872
892
  ToBCD,
873
893
  ToBase,
874
894
  ToBase32,
@@ -108,6 +108,7 @@ import {
108
108
  DerivePBKDF2Key as core_DerivePBKDF2Key,
109
109
  DetectFileType as core_DetectFileType,
110
110
  Diff as core_Diff,
111
+ DisassembleARM as core_DisassembleARM,
111
112
  DisassembleX86 as core_DisassembleX86,
112
113
  DitherImage as core_DitherImage,
113
114
  Divide as core_Divide,
@@ -124,6 +125,7 @@ import {
124
125
  EscapeString as core_EscapeString,
125
126
  EscapeUnicodeCharacters as core_EscapeUnicodeCharacters,
126
127
  ExpandAlphabetRange as core_ExpandAlphabetRange,
128
+ ExtractAudioMetadata as core_ExtractAudioMetadata,
127
129
  ExtractDates as core_ExtractDates,
128
130
  ExtractDomains as core_ExtractDomains,
129
131
  ExtractEXIF as core_ExtractEXIF,
@@ -143,6 +145,9 @@ import {
143
145
  FileTree as core_FileTree,
144
146
  Filter as core_Filter,
145
147
  FindReplace as core_FindReplace,
148
+ FlaskSessionDecode as core_FlaskSessionDecode,
149
+ FlaskSessionSign as core_FlaskSessionSign,
150
+ FlaskSessionVerify as core_FlaskSessionVerify,
146
151
  Fletcher16Checksum as core_Fletcher16Checksum,
147
152
  Fletcher32Checksum as core_Fletcher32Checksum,
148
153
  Fletcher64Checksum as core_Fletcher64Checksum,
@@ -288,6 +293,7 @@ import {
288
293
  ParseCSR as core_ParseCSR,
289
294
  ParseColourCode as core_ParseColourCode,
290
295
  ParseDateTime as core_ParseDateTime,
296
+ ParseEthernetFrame as core_ParseEthernetFrame,
291
297
  ParseIPRange as core_ParseIPRange,
292
298
  ParseIPv4Header as core_ParseIPv4Header,
293
299
  ParseIPv6Address as core_ParseIPv6Address,
@@ -307,6 +313,7 @@ import {
307
313
  PowerSet as core_PowerSet,
308
314
  ProtobufDecode as core_ProtobufDecode,
309
315
  ProtobufEncode as core_ProtobufEncode,
316
+ PseudoRandomIntegerGenerator as core_PseudoRandomIntegerGenerator,
310
317
  PseudoRandomNumberGenerator as core_PseudoRandomNumberGenerator,
311
318
  PubKeyFromCert as core_PubKeyFromCert,
312
319
  PubKeyFromPrivKey as core_PubKeyFromPrivKey,
@@ -315,6 +322,8 @@ import {
315
322
  RC2Encrypt as core_RC2Encrypt,
316
323
  RC4 as core_RC4,
317
324
  RC4Drop as core_RC4Drop,
325
+ RC6Decrypt as core_RC6Decrypt,
326
+ RC6Encrypt as core_RC6Encrypt,
318
327
  RIPEMD as core_RIPEMD,
319
328
  ROT13 as core_ROT13,
320
329
  ROT13BruteForce as core_ROT13BruteForce,
@@ -402,6 +411,7 @@ import {
402
411
  Tar as core_Tar,
403
412
  Template as core_Template,
404
413
  TextEncodingBruteForce as core_TextEncodingBruteForce,
414
+ TextIntegerConverter as core_TextIntegerConverter,
405
415
  ToBCD as core_ToBCD,
406
416
  ToBase as core_ToBase,
407
417
  ToBase32 as core_ToBase32,
@@ -575,6 +585,7 @@ function generateChef() {
575
585
  "derivePBKDF2Key": _wrap(core_DerivePBKDF2Key),
576
586
  "detectFileType": _wrap(core_DetectFileType),
577
587
  "diff": _wrap(core_Diff),
588
+ "disassembleARM": _wrap(core_DisassembleARM),
578
589
  "disassembleX86": _wrap(core_DisassembleX86),
579
590
  "ditherImage": _wrap(core_DitherImage),
580
591
  "divide": _wrap(core_Divide),
@@ -591,6 +602,7 @@ function generateChef() {
591
602
  "escapeString": _wrap(core_EscapeString),
592
603
  "escapeUnicodeCharacters": _wrap(core_EscapeUnicodeCharacters),
593
604
  "expandAlphabetRange": _wrap(core_ExpandAlphabetRange),
605
+ "extractAudioMetadata": _wrap(core_ExtractAudioMetadata),
594
606
  "extractDates": _wrap(core_ExtractDates),
595
607
  "extractDomains": _wrap(core_ExtractDomains),
596
608
  "extractEXIF": _wrap(core_ExtractEXIF),
@@ -610,6 +622,9 @@ function generateChef() {
610
622
  "fileTree": _wrap(core_FileTree),
611
623
  "filter": _wrap(core_Filter),
612
624
  "findReplace": _wrap(core_FindReplace),
625
+ "flaskSessionDecode": _wrap(core_FlaskSessionDecode),
626
+ "flaskSessionSign": _wrap(core_FlaskSessionSign),
627
+ "flaskSessionVerify": _wrap(core_FlaskSessionVerify),
613
628
  "fletcher16Checksum": _wrap(core_Fletcher16Checksum),
614
629
  "fletcher32Checksum": _wrap(core_Fletcher32Checksum),
615
630
  "fletcher64Checksum": _wrap(core_Fletcher64Checksum),
@@ -755,6 +770,7 @@ function generateChef() {
755
770
  "parseCSR": _wrap(core_ParseCSR),
756
771
  "parseColourCode": _wrap(core_ParseColourCode),
757
772
  "parseDateTime": _wrap(core_ParseDateTime),
773
+ "parseEthernetFrame": _wrap(core_ParseEthernetFrame),
758
774
  "parseIPRange": _wrap(core_ParseIPRange),
759
775
  "parseIPv4Header": _wrap(core_ParseIPv4Header),
760
776
  "parseIPv6Address": _wrap(core_ParseIPv6Address),
@@ -774,6 +790,7 @@ function generateChef() {
774
790
  "powerSet": _wrap(core_PowerSet),
775
791
  "protobufDecode": _wrap(core_ProtobufDecode),
776
792
  "protobufEncode": _wrap(core_ProtobufEncode),
793
+ "pseudoRandomIntegerGenerator": _wrap(core_PseudoRandomIntegerGenerator),
777
794
  "pseudoRandomNumberGenerator": _wrap(core_PseudoRandomNumberGenerator),
778
795
  "pubKeyFromCert": _wrap(core_PubKeyFromCert),
779
796
  "pubKeyFromPrivKey": _wrap(core_PubKeyFromPrivKey),
@@ -782,6 +799,8 @@ function generateChef() {
782
799
  "RC2Encrypt": _wrap(core_RC2Encrypt),
783
800
  "RC4": _wrap(core_RC4),
784
801
  "RC4Drop": _wrap(core_RC4Drop),
802
+ "RC6Decrypt": _wrap(core_RC6Decrypt),
803
+ "RC6Encrypt": _wrap(core_RC6Encrypt),
785
804
  "RIPEMD": _wrap(core_RIPEMD),
786
805
  "ROT13": _wrap(core_ROT13),
787
806
  "ROT13BruteForce": _wrap(core_ROT13BruteForce),
@@ -869,6 +888,7 @@ function generateChef() {
869
888
  "tar": _wrap(core_Tar),
870
889
  "template": _wrap(core_Template),
871
890
  "textEncodingBruteForce": _wrap(core_TextEncodingBruteForce),
891
+ "textIntegerConverter": _wrap(core_TextIntegerConverter),
872
892
  "toBCD": _wrap(core_ToBCD),
873
893
  "toBase": _wrap(core_ToBase),
874
894
  "toBase32": _wrap(core_ToBase32),
@@ -1052,6 +1072,7 @@ const deriveHKDFKey = chef.deriveHKDFKey;
1052
1072
  const derivePBKDF2Key = chef.derivePBKDF2Key;
1053
1073
  const detectFileType = chef.detectFileType;
1054
1074
  const diff = chef.diff;
1075
+ const disassembleARM = chef.disassembleARM;
1055
1076
  const disassembleX86 = chef.disassembleX86;
1056
1077
  const ditherImage = chef.ditherImage;
1057
1078
  const divide = chef.divide;
@@ -1068,6 +1089,7 @@ const entropy = chef.entropy;
1068
1089
  const escapeString = chef.escapeString;
1069
1090
  const escapeUnicodeCharacters = chef.escapeUnicodeCharacters;
1070
1091
  const expandAlphabetRange = chef.expandAlphabetRange;
1092
+ const extractAudioMetadata = chef.extractAudioMetadata;
1071
1093
  const extractDates = chef.extractDates;
1072
1094
  const extractDomains = chef.extractDomains;
1073
1095
  const extractEXIF = chef.extractEXIF;
@@ -1087,6 +1109,9 @@ const fernetEncrypt = chef.fernetEncrypt;
1087
1109
  const fileTree = chef.fileTree;
1088
1110
  const filter = chef.filter;
1089
1111
  const findReplace = chef.findReplace;
1112
+ const flaskSessionDecode = chef.flaskSessionDecode;
1113
+ const flaskSessionSign = chef.flaskSessionSign;
1114
+ const flaskSessionVerify = chef.flaskSessionVerify;
1090
1115
  const fletcher16Checksum = chef.fletcher16Checksum;
1091
1116
  const fletcher32Checksum = chef.fletcher32Checksum;
1092
1117
  const fletcher64Checksum = chef.fletcher64Checksum;
@@ -1239,6 +1264,7 @@ const parseASN1HexString = chef.parseASN1HexString;
1239
1264
  const parseCSR = chef.parseCSR;
1240
1265
  const parseColourCode = chef.parseColourCode;
1241
1266
  const parseDateTime = chef.parseDateTime;
1267
+ const parseEthernetFrame = chef.parseEthernetFrame;
1242
1268
  const parseIPRange = chef.parseIPRange;
1243
1269
  const parseIPv4Header = chef.parseIPv4Header;
1244
1270
  const parseIPv6Address = chef.parseIPv6Address;
@@ -1258,6 +1284,7 @@ const playMedia = chef.playMedia;
1258
1284
  const powerSet = chef.powerSet;
1259
1285
  const protobufDecode = chef.protobufDecode;
1260
1286
  const protobufEncode = chef.protobufEncode;
1287
+ const pseudoRandomIntegerGenerator = chef.pseudoRandomIntegerGenerator;
1261
1288
  const pseudoRandomNumberGenerator = chef.pseudoRandomNumberGenerator;
1262
1289
  const pubKeyFromCert = chef.pubKeyFromCert;
1263
1290
  const pubKeyFromPrivKey = chef.pubKeyFromPrivKey;
@@ -1266,6 +1293,8 @@ const RC2Decrypt = chef.RC2Decrypt;
1266
1293
  const RC2Encrypt = chef.RC2Encrypt;
1267
1294
  const RC4 = chef.RC4;
1268
1295
  const RC4Drop = chef.RC4Drop;
1296
+ const RC6Decrypt = chef.RC6Decrypt;
1297
+ const RC6Encrypt = chef.RC6Encrypt;
1269
1298
  const RIPEMD = chef.RIPEMD;
1270
1299
  const ROT13 = chef.ROT13;
1271
1300
  const ROT13BruteForce = chef.ROT13BruteForce;
@@ -1354,6 +1383,7 @@ const takeNthBytes = chef.takeNthBytes;
1354
1383
  const tar = chef.tar;
1355
1384
  const template = chef.template;
1356
1385
  const textEncodingBruteForce = chef.textEncodingBruteForce;
1386
+ const textIntegerConverter = chef.textIntegerConverter;
1357
1387
  const toBCD = chef.toBCD;
1358
1388
  const toBase = chef.toBase;
1359
1389
  const toBase32 = chef.toBase32;
@@ -1521,6 +1551,7 @@ const operations = [
1521
1551
  derivePBKDF2Key,
1522
1552
  detectFileType,
1523
1553
  diff,
1554
+ disassembleARM,
1524
1555
  disassembleX86,
1525
1556
  ditherImage,
1526
1557
  divide,
@@ -1537,6 +1568,7 @@ const operations = [
1537
1568
  escapeString,
1538
1569
  escapeUnicodeCharacters,
1539
1570
  expandAlphabetRange,
1571
+ extractAudioMetadata,
1540
1572
  extractDates,
1541
1573
  extractDomains,
1542
1574
  extractEXIF,
@@ -1556,6 +1588,9 @@ const operations = [
1556
1588
  fileTree,
1557
1589
  filter,
1558
1590
  findReplace,
1591
+ flaskSessionDecode,
1592
+ flaskSessionSign,
1593
+ flaskSessionVerify,
1559
1594
  fletcher16Checksum,
1560
1595
  fletcher32Checksum,
1561
1596
  fletcher64Checksum,
@@ -1708,6 +1743,7 @@ const operations = [
1708
1743
  parseCSR,
1709
1744
  parseColourCode,
1710
1745
  parseDateTime,
1746
+ parseEthernetFrame,
1711
1747
  parseIPRange,
1712
1748
  parseIPv4Header,
1713
1749
  parseIPv6Address,
@@ -1727,6 +1763,7 @@ const operations = [
1727
1763
  powerSet,
1728
1764
  protobufDecode,
1729
1765
  protobufEncode,
1766
+ pseudoRandomIntegerGenerator,
1730
1767
  pseudoRandomNumberGenerator,
1731
1768
  pubKeyFromCert,
1732
1769
  pubKeyFromPrivKey,
@@ -1735,6 +1772,8 @@ const operations = [
1735
1772
  RC2Encrypt,
1736
1773
  RC4,
1737
1774
  RC4Drop,
1775
+ RC6Decrypt,
1776
+ RC6Encrypt,
1738
1777
  RIPEMD,
1739
1778
  ROT13,
1740
1779
  ROT13BruteForce,
@@ -1823,6 +1862,7 @@ const operations = [
1823
1862
  tar,
1824
1863
  template,
1825
1864
  textEncodingBruteForce,
1865
+ textIntegerConverter,
1826
1866
  toBCD,
1827
1867
  toBase,
1828
1868
  toBase32,
@@ -1994,6 +2034,7 @@ export {
1994
2034
  derivePBKDF2Key,
1995
2035
  detectFileType,
1996
2036
  diff,
2037
+ disassembleARM,
1997
2038
  disassembleX86,
1998
2039
  ditherImage,
1999
2040
  divide,
@@ -2010,6 +2051,7 @@ export {
2010
2051
  escapeString,
2011
2052
  escapeUnicodeCharacters,
2012
2053
  expandAlphabetRange,
2054
+ extractAudioMetadata,
2013
2055
  extractDates,
2014
2056
  extractDomains,
2015
2057
  extractEXIF,
@@ -2029,6 +2071,9 @@ export {
2029
2071
  fileTree,
2030
2072
  filter,
2031
2073
  findReplace,
2074
+ flaskSessionDecode,
2075
+ flaskSessionSign,
2076
+ flaskSessionVerify,
2032
2077
  fletcher16Checksum,
2033
2078
  fletcher32Checksum,
2034
2079
  fletcher64Checksum,
@@ -2181,6 +2226,7 @@ export {
2181
2226
  parseCSR,
2182
2227
  parseColourCode,
2183
2228
  parseDateTime,
2229
+ parseEthernetFrame,
2184
2230
  parseIPRange,
2185
2231
  parseIPv4Header,
2186
2232
  parseIPv6Address,
@@ -2200,6 +2246,7 @@ export {
2200
2246
  powerSet,
2201
2247
  protobufDecode,
2202
2248
  protobufEncode,
2249
+ pseudoRandomIntegerGenerator,
2203
2250
  pseudoRandomNumberGenerator,
2204
2251
  pubKeyFromCert,
2205
2252
  pubKeyFromPrivKey,
@@ -2208,6 +2255,8 @@ export {
2208
2255
  RC2Encrypt,
2209
2256
  RC4,
2210
2257
  RC4Drop,
2258
+ RC6Decrypt,
2259
+ RC6Encrypt,
2211
2260
  RIPEMD,
2212
2261
  ROT13,
2213
2262
  ROT13BruteForce,
@@ -2296,6 +2345,7 @@ export {
2296
2345
  tar,
2297
2346
  template,
2298
2347
  textEncodingBruteForce,
2348
+ textIntegerConverter,
2299
2349
  toBCD,
2300
2350
  toBase,
2301
2351
  toBase32,