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
@@ -6566,6 +6566,58 @@
6566
6566
  }
6567
6567
  ]
6568
6568
  },
6569
+ "Disassemble ARM": {
6570
+ "module": "Shellcode",
6571
+ "description": "Disassembles ARM machine code into assembly language.<br><br>Supports ARM (32-bit), Thumb, and ARM64 (AArch64) architectures using the Capstone disassembly framework.<br><br>Input should be in hexadecimal.",
6572
+ "infoURL": "https://wikipedia.org/wiki/ARM_architecture_family",
6573
+ "inputType": "string",
6574
+ "outputType": "string",
6575
+ "flowControl": false,
6576
+ "manualBake": false,
6577
+ "args": [
6578
+ {
6579
+ "name": "Architecture",
6580
+ "type": "option",
6581
+ "value": [
6582
+ "ARM (32-bit)",
6583
+ "ARM64 (AArch64)"
6584
+ ]
6585
+ },
6586
+ {
6587
+ "name": "Mode",
6588
+ "type": "option",
6589
+ "value": [
6590
+ "ARM",
6591
+ "Thumb",
6592
+ "Thumb + Cortex-M",
6593
+ "ARMv8"
6594
+ ]
6595
+ },
6596
+ {
6597
+ "name": "Endianness",
6598
+ "type": "option",
6599
+ "value": [
6600
+ "Little Endian",
6601
+ "Big Endian"
6602
+ ]
6603
+ },
6604
+ {
6605
+ "name": "Starting address (hex)",
6606
+ "type": "number",
6607
+ "value": 0
6608
+ },
6609
+ {
6610
+ "name": "Show instruction hex",
6611
+ "type": "boolean",
6612
+ "value": true
6613
+ },
6614
+ {
6615
+ "name": "Show instruction position",
6616
+ "type": "boolean",
6617
+ "value": true
6618
+ }
6619
+ ]
6620
+ },
6569
6621
  "Disassemble x86": {
6570
6622
  "module": "Shellcode",
6571
6623
  "description": "Disassembly is the process of translating machine language into assembly language.<br><br>This operation supports 64-bit, 32-bit and 16-bit code written for Intel or AMD x86 processors. It is particularly useful for reverse engineering shellcode.<br><br>Input should be in hexadecimal.",
@@ -7571,29 +7623,6 @@
7571
7623
  "type": "boolean",
7572
7624
  "value": true
7573
7625
  }
7574
- ],
7575
- "checks": [
7576
- {
7577
- "pattern": "\\\\u(?:[\\da-f]{4,6})",
7578
- "flags": "i",
7579
- "args": [
7580
- "\\u"
7581
- ]
7582
- },
7583
- {
7584
- "pattern": "%u(?:[\\da-f]{4,6})",
7585
- "flags": "i",
7586
- "args": [
7587
- "%u"
7588
- ]
7589
- },
7590
- {
7591
- "pattern": "U\\+(?:[\\da-f]{4,6})",
7592
- "flags": "i",
7593
- "args": [
7594
- "U+"
7595
- ]
7596
- }
7597
7626
  ]
7598
7627
  },
7599
7628
  "Expand alphabet range": {
@@ -7612,6 +7641,27 @@
7612
7641
  }
7613
7642
  ]
7614
7643
  },
7644
+ "Extract Audio Metadata": {
7645
+ "module": "Default",
7646
+ "description": "Extract common audio metadata across MP3 (ID3v2/ID3v1/GEOB), WAV/BWF/BW64 (INFO/bext/iXML/axml), FLAC (Vorbis Comment/Picture), OGG (Vorbis/OpusTags), AAC (ADTS), AC3 (Dolby Digital), WMA (ASF), plus best-effort MP4/M4A and AIFF scanning. Outputs normalized JSON.",
7647
+ "infoURL": "https://wikipedia.org/wiki/Audio_file_format",
7648
+ "inputType": "ArrayBuffer",
7649
+ "outputType": "html",
7650
+ "flowControl": false,
7651
+ "manualBake": false,
7652
+ "args": [
7653
+ {
7654
+ "name": "Filename (optional)",
7655
+ "type": "string",
7656
+ "value": ""
7657
+ },
7658
+ {
7659
+ "name": "Max embedded text bytes (iXML/axml/etc)",
7660
+ "type": "number",
7661
+ "value": 524288
7662
+ }
7663
+ ]
7664
+ },
7615
7665
  "Extract dates": {
7616
7666
  "module": "Regex",
7617
7667
  "description": "Extracts dates in the following formats<ul><li><code>yyyy-mm-dd</code></li><li><code>dd/mm/yyyy</code></li><li><code>mm/dd/yyyy</code></li></ul>Dividers can be any of /, -, . or space",
@@ -8188,6 +8238,117 @@
8188
8238
  }
8189
8239
  ]
8190
8240
  },
8241
+ "Flask Session Decode": {
8242
+ "module": "Crypto",
8243
+ "description": "Decodes the payload of a Flask session cookie (itsdangerous) into JSON.",
8244
+ "infoURL": null,
8245
+ "inputType": "string",
8246
+ "outputType": "JSON",
8247
+ "flowControl": false,
8248
+ "manualBake": false,
8249
+ "args": [
8250
+ {
8251
+ "name": "View TimeStamp",
8252
+ "type": "boolean",
8253
+ "value": false
8254
+ }
8255
+ ]
8256
+ },
8257
+ "Flask Session Sign": {
8258
+ "module": "Crypto",
8259
+ "description": "Signs a JSON payload to produce a Flask session cookie (itsdangerous HMAC).",
8260
+ "infoURL": null,
8261
+ "inputType": "JSON",
8262
+ "outputType": "string",
8263
+ "flowControl": false,
8264
+ "manualBake": false,
8265
+ "args": [
8266
+ {
8267
+ "name": "Key",
8268
+ "type": "toggleString",
8269
+ "value": "",
8270
+ "toggleValues": [
8271
+ "Hex",
8272
+ "Decimal",
8273
+ "Binary",
8274
+ "Base64",
8275
+ "UTF8",
8276
+ "Latin1"
8277
+ ]
8278
+ },
8279
+ {
8280
+ "name": "Salt",
8281
+ "type": "toggleString",
8282
+ "value": "cookie-session",
8283
+ "toggleValues": [
8284
+ "UTF8",
8285
+ "Hex",
8286
+ "Decimal",
8287
+ "Binary",
8288
+ "Base64",
8289
+ "Latin1"
8290
+ ]
8291
+ },
8292
+ {
8293
+ "name": "Algorithm",
8294
+ "type": "option",
8295
+ "value": [
8296
+ "sha1",
8297
+ "sha256"
8298
+ ]
8299
+ }
8300
+ ]
8301
+ },
8302
+ "Flask Session Verify": {
8303
+ "module": "Crypto",
8304
+ "description": "Verifies the HMAC signature of a Flask session cookie (itsdangerous) generated.",
8305
+ "infoURL": null,
8306
+ "inputType": "string",
8307
+ "outputType": "JSON",
8308
+ "flowControl": false,
8309
+ "manualBake": false,
8310
+ "args": [
8311
+ {
8312
+ "name": "Key",
8313
+ "type": "toggleString",
8314
+ "value": "",
8315
+ "toggleValues": [
8316
+ "Hex",
8317
+ "Decimal",
8318
+ "Binary",
8319
+ "Base64",
8320
+ "UTF8",
8321
+ "Latin1"
8322
+ ]
8323
+ },
8324
+ {
8325
+ "name": "Salt",
8326
+ "type": "toggleString",
8327
+ "value": "cookie-session",
8328
+ "toggleValues": [
8329
+ "UTF8",
8330
+ "Hex",
8331
+ "Decimal",
8332
+ "Binary",
8333
+ "Base64",
8334
+ "Latin1"
8335
+ ]
8336
+ },
8337
+ {
8338
+ "name": "Algorithm",
8339
+ "type": "option",
8340
+ "value": [
8341
+ "sha1",
8342
+ "sha256"
8343
+ ]
8344
+ },
8345
+ {
8346
+ "name": "View TimeStamp",
8347
+ "type": "boolean",
8348
+ "value": true
8349
+ }
8350
+ ]
8351
+ },
8191
8352
  "Fletcher-16 Checksum": {
8192
8353
  "module": "Crypto",
8193
8354
  "description": "The Fletcher checksum is an algorithm for computing a position-dependent checksum devised by John Gould Fletcher at Lawrence Livermore Labs in the late 1970s.<br><br>The objective of the Fletcher checksum was to provide error-detection properties approaching those of a cyclic redundancy check but with the lower computational effort associated with summation techniques.",
@@ -11822,6 +11983,11 @@
11822
11983
  "name": "Query",
11823
11984
  "type": "string",
11824
11985
  "value": ""
11986
+ },
11987
+ {
11988
+ "name": "Raw",
11989
+ "type": "boolean",
11990
+ "value": false
11825
11991
  }
11826
11992
  ]
11827
11993
  },
@@ -13263,6 +13429,7 @@
13263
13429
  "America/Coral_Harbour",
13264
13430
  "America/Cordoba",
13265
13431
  "America/Costa_Rica",
13432
+ "America/Coyhaique",
13266
13433
  "America/Creston",
13267
13434
  "America/Cuiaba",
13268
13435
  "America/Curacao",
@@ -13764,6 +13931,34 @@
13764
13931
  }
13765
13932
  ]
13766
13933
  },
13934
+ "Parse Ethernet frame": {
13935
+ "module": "Default",
13936
+ "description": "Parses an Ethernet frame and either shows the deduced values (Source and destination MAC, VLANs) or returns the packet data.<br /><br />Good for use in conjunction with the Parse IPv4, and Parse TCP/UDP recipes.",
13937
+ "infoURL": "https://en.wikipedia.org/wiki/Ethernet_frame#Frame_%E2%80%93_data_link_layer",
13938
+ "inputType": "string",
13939
+ "outputType": "html",
13940
+ "flowControl": false,
13941
+ "manualBake": false,
13942
+ "args": [
13943
+ {
13944
+ "name": "Input type",
13945
+ "type": "option",
13946
+ "value": [
13947
+ "Raw",
13948
+ "Hex"
13949
+ ]
13950
+ },
13951
+ {
13952
+ "name": "Return type",
13953
+ "type": "option",
13954
+ "value": [
13955
+ "Text output",
13956
+ "Packet data",
13957
+ "Packet data (hex)"
13958
+ ]
13959
+ }
13960
+ ]
13961
+ },
13767
13962
  "Parse IP range": {
13768
13963
  "module": "Default",
13769
13964
  "description": "Given a CIDR range (e.g. <code>10.0.0.0/24</code>), hyphenated range (e.g. <code>10.0.0.0 - 10.0.1.0</code>), or a list of IPs and/or CIDR ranges (separated by a new line), this operation provides network information and enumerates all IP addresses in the range.<br><br>IPv6 is supported but will not be enumerated.",
@@ -13806,6 +14001,15 @@
13806
14001
  "Hex",
13807
14002
  "Raw"
13808
14003
  ]
14004
+ },
14005
+ {
14006
+ "name": "Output format",
14007
+ "type": "option",
14008
+ "value": [
14009
+ "Table",
14010
+ "Data (hex)",
14011
+ "Data (raw)"
14012
+ ]
13809
14013
  }
13810
14014
  ]
13811
14015
  },
@@ -14144,6 +14348,58 @@
14144
14348
  }
14145
14349
  ]
14146
14350
  },
14351
+ "Pseudo-Random Integer Generator": {
14352
+ "module": "Ciphers",
14353
+ "description": "A cryptographically-secure pseudo-random number generator (PRNG).<br><br>Generates random integers within a specified range using the browser's built-in <code>crypto.getRandomValues()</code> method if available.<br><br>The supported range of integers is from <code>-(2^53 - 1)</code> to <code>(2^53 - 1)</code>.",
14354
+ "infoURL": "https://wikipedia.org/wiki/Pseudorandom_number_generator",
14355
+ "inputType": "string",
14356
+ "outputType": "string",
14357
+ "flowControl": false,
14358
+ "manualBake": false,
14359
+ "args": [
14360
+ {
14361
+ "name": "Number of Integers",
14362
+ "type": "number",
14363
+ "value": 1,
14364
+ "min": 1
14365
+ },
14366
+ {
14367
+ "name": "Min Value",
14368
+ "type": "number",
14369
+ "value": 0,
14370
+ "min": -9007199254740991,
14371
+ "max": 9007199254740991
14372
+ },
14373
+ {
14374
+ "name": "Max Value",
14375
+ "type": "number",
14376
+ "value": 99,
14377
+ "min": -9007199254740991,
14378
+ "max": 9007199254740991
14379
+ },
14380
+ {
14381
+ "name": "Delimiter",
14382
+ "type": "option",
14383
+ "value": [
14384
+ "Space",
14385
+ "Comma",
14386
+ "Semi-colon",
14387
+ "Colon",
14388
+ "Line feed",
14389
+ "CRLF"
14390
+ ]
14391
+ },
14392
+ {
14393
+ "name": "Output",
14394
+ "type": "option",
14395
+ "value": [
14396
+ "Raw",
14397
+ "Hex",
14398
+ "Decimal"
14399
+ ]
14400
+ }
14401
+ ]
14402
+ },
14147
14403
  "Pseudo-Random Number Generator": {
14148
14404
  "module": "Ciphers",
14149
14405
  "description": "A cryptographically-secure pseudo-random number generator (PRNG).<br><br>This operation uses the browser's built-in <code>crypto.getRandomValues()</code> method if available. If this cannot be found, it falls back to a Fortuna-based PRNG algorithm.",
@@ -14423,6 +14679,178 @@
14423
14679
  }
14424
14680
  ]
14425
14681
  },
14682
+ "RC6 Decrypt": {
14683
+ "module": "Ciphers",
14684
+ "description": "RC6 is a symmetric key block cipher derived from RC5. It was designed by Ron Rivest, Matt Robshaw, Ray Sidney, and Yiqun Lisa Yin to meet the requirements of the AES competition, and was one of the five finalists.<br><br>RC6 is parameterised as RC6-w/r/b where w is word size in bits (any multiple of 8 from 8-256), r is the number of rounds (1-255), and b is the key length in bytes. The standard AES submission uses w=32, r=20. Common word sizes: 8, 16, 32 (standard), 64, 128.<br><br><b>IV:</b> The Initialisation Vector should be 4*w/8 bytes (e.g. 16 bytes for w=32). If not entered, it will default to null bytes.<br><br><b>Padding:</b> In CBC and ECB mode, the PKCS#7 padding scheme is used.",
14685
+ "infoURL": "https://wikipedia.org/wiki/RC6",
14686
+ "inputType": "string",
14687
+ "outputType": "string",
14688
+ "flowControl": false,
14689
+ "manualBake": false,
14690
+ "args": [
14691
+ {
14692
+ "name": "Key",
14693
+ "type": "toggleString",
14694
+ "value": "",
14695
+ "toggleValues": [
14696
+ "Hex",
14697
+ "UTF8",
14698
+ "Latin1",
14699
+ "Base64"
14700
+ ]
14701
+ },
14702
+ {
14703
+ "name": "IV",
14704
+ "type": "toggleString",
14705
+ "value": "",
14706
+ "toggleValues": [
14707
+ "Hex",
14708
+ "UTF8",
14709
+ "Latin1",
14710
+ "Base64"
14711
+ ]
14712
+ },
14713
+ {
14714
+ "name": "Mode",
14715
+ "type": "option",
14716
+ "value": [
14717
+ "CBC",
14718
+ "CFB",
14719
+ "OFB",
14720
+ "CTR",
14721
+ "ECB"
14722
+ ]
14723
+ },
14724
+ {
14725
+ "name": "Input",
14726
+ "type": "option",
14727
+ "value": [
14728
+ "Hex",
14729
+ "Raw"
14730
+ ]
14731
+ },
14732
+ {
14733
+ "name": "Output",
14734
+ "type": "option",
14735
+ "value": [
14736
+ "Raw",
14737
+ "Hex"
14738
+ ]
14739
+ },
14740
+ {
14741
+ "name": "Padding",
14742
+ "type": "option",
14743
+ "value": [
14744
+ "PKCS5",
14745
+ "NO",
14746
+ "ZERO",
14747
+ "RANDOM",
14748
+ "BIT"
14749
+ ]
14750
+ },
14751
+ {
14752
+ "name": "Word Size",
14753
+ "type": "number",
14754
+ "value": 32,
14755
+ "min": 8,
14756
+ "max": 256,
14757
+ "step": 8
14758
+ },
14759
+ {
14760
+ "name": "Rounds",
14761
+ "type": "number",
14762
+ "value": 20,
14763
+ "min": 1,
14764
+ "max": 255
14765
+ }
14766
+ ]
14767
+ },
14768
+ "RC6 Encrypt": {
14769
+ "module": "Ciphers",
14770
+ "description": "RC6 is a symmetric key block cipher derived from RC5. It was designed by Ron Rivest, Matt Robshaw, Ray Sidney, and Yiqun Lisa Yin to meet the requirements of the AES competition, and was one of the five finalists.<br><br>RC6 is parameterised as RC6-w/r/b where w is word size in bits (any multiple of 8 from 8-256), r is the number of rounds (1-255), and b is the key length in bytes. The standard AES submission uses w=32, r=20. Common word sizes: 8, 16, 32 (standard), 64, 128.<br><br><b>IV:</b> The Initialisation Vector should be 4*w/8 bytes (e.g. 16 bytes for w=32). If not entered, it will default to null bytes.<br><br><b>Padding:</b> In CBC and ECB mode, the PKCS#7 padding scheme is used.",
14771
+ "infoURL": "https://wikipedia.org/wiki/RC6",
14772
+ "inputType": "string",
14773
+ "outputType": "string",
14774
+ "flowControl": false,
14775
+ "manualBake": false,
14776
+ "args": [
14777
+ {
14778
+ "name": "Key",
14779
+ "type": "toggleString",
14780
+ "value": "",
14781
+ "toggleValues": [
14782
+ "Hex",
14783
+ "UTF8",
14784
+ "Latin1",
14785
+ "Base64"
14786
+ ]
14787
+ },
14788
+ {
14789
+ "name": "IV",
14790
+ "type": "toggleString",
14791
+ "value": "",
14792
+ "toggleValues": [
14793
+ "Hex",
14794
+ "UTF8",
14795
+ "Latin1",
14796
+ "Base64"
14797
+ ]
14798
+ },
14799
+ {
14800
+ "name": "Mode",
14801
+ "type": "option",
14802
+ "value": [
14803
+ "CBC",
14804
+ "CFB",
14805
+ "OFB",
14806
+ "CTR",
14807
+ "ECB"
14808
+ ]
14809
+ },
14810
+ {
14811
+ "name": "Input",
14812
+ "type": "option",
14813
+ "value": [
14814
+ "Raw",
14815
+ "Hex"
14816
+ ]
14817
+ },
14818
+ {
14819
+ "name": "Output",
14820
+ "type": "option",
14821
+ "value": [
14822
+ "Hex",
14823
+ "Raw"
14824
+ ]
14825
+ },
14826
+ {
14827
+ "name": "Padding",
14828
+ "type": "option",
14829
+ "value": [
14830
+ "PKCS5",
14831
+ "NO",
14832
+ "ZERO",
14833
+ "RANDOM",
14834
+ "BIT"
14835
+ ]
14836
+ },
14837
+ {
14838
+ "name": "Word Size",
14839
+ "type": "number",
14840
+ "value": 32,
14841
+ "min": 8,
14842
+ "max": 256,
14843
+ "step": 8
14844
+ },
14845
+ {
14846
+ "name": "Rounds",
14847
+ "type": "number",
14848
+ "value": 20,
14849
+ "min": 1,
14850
+ "max": 255
14851
+ }
14852
+ ]
14853
+ },
14426
14854
  "RIPEMD": {
14427
14855
  "module": "Crypto",
14428
14856
  "description": "RIPEMD (RACE Integrity Primitives Evaluation Message Digest) is a family of cryptographic hash functions developed in Leuven, Belgium, by Hans Dobbertin, Antoon Bosselaers and Bart Preneel at the COSIC research group at the Katholieke Universiteit Leuven, and first published in 1996.<br><br>RIPEMD was based upon the design principles used in MD4, and is similar in performance to the more popular SHA-1.<br><br>",
@@ -18217,6 +18645,26 @@
18217
18645
  }
18218
18646
  ]
18219
18647
  },
18648
+ "Text-Integer Conversion": {
18649
+ "module": "Default",
18650
+ "description": "Converts between text strings and large integers (decimal or hexadecimal).<br><br>Text is interpreted as a big-endian sequence of character codes. For example:<br>ABC is 0x414243 (hex) is 4276803 (decimal)<br><b>Input format detection:</b><br>Decimal: digits 0-9 only<br>Hexadecimal: 0x... prefix<br>Quoted or unquoted text: treated as string<br><br><b>Character limitations:</b><br>Text input may only contain ASCII and Latin-1 characters (code point < 256).<br>Multi-byte Unicode characters will generate an error.<br><br>.",
18651
+ "infoURL": "https://wikipedia.org/wiki/Endianness",
18652
+ "inputType": "string",
18653
+ "outputType": "string",
18654
+ "flowControl": false,
18655
+ "manualBake": false,
18656
+ "args": [
18657
+ {
18658
+ "name": "Output format",
18659
+ "type": "option",
18660
+ "value": [
18661
+ "String",
18662
+ "Decimal",
18663
+ "Hexadecimal"
18664
+ ]
18665
+ }
18666
+ ]
18667
+ },
18220
18668
  "To BCD": {
18221
18669
  "module": "Default",
18222
18670
  "description": "Binary-Coded Decimal (BCD) is a class of binary encodings of decimal numbers where each decimal digit is represented by a fixed number of bits, usually four or eight. Special bit patterns are sometimes used for a sign",
@@ -19228,6 +19676,7 @@
19228
19676
  "America/Coral_Harbour",
19229
19677
  "America/Cordoba",
19230
19678
  "America/Costa_Rica",
19679
+ "America/Coyhaique",
19231
19680
  "America/Creston",
19232
19681
  "America/Cuiaba",
19233
19682
  "America/Curacao",
@@ -19836,6 +20285,7 @@
19836
20285
  "America/Coral_Harbour",
19837
20286
  "America/Cordoba",
19838
20287
  "America/Costa_Rica",
20288
+ "America/Coyhaique",
19839
20289
  "America/Creston",
19840
20290
  "America/Cuiaba",
19841
20291
  "America/Curacao",
@@ -21136,6 +21586,29 @@
21136
21586
  "U+"
21137
21587
  ]
21138
21588
  }
21589
+ ],
21590
+ "checks": [
21591
+ {
21592
+ "pattern": "\\\\u(?:[\\da-f]{4,6})",
21593
+ "flags": "i",
21594
+ "args": [
21595
+ "\\u"
21596
+ ]
21597
+ },
21598
+ {
21599
+ "pattern": "%u(?:[\\da-f]{4,6})",
21600
+ "flags": "i",
21601
+ "args": [
21602
+ "%u"
21603
+ ]
21604
+ },
21605
+ {
21606
+ "pattern": "U\\+(?:[\\da-f]{4,6})",
21607
+ "flags": "i",
21608
+ "args": [
21609
+ "U+"
21610
+ ]
21611
+ }
21139
21612
  ]
21140
21613
  },
21141
21614
  "Unicode Text Format": {
@@ -37,11 +37,14 @@ import GOSTSign from "../../operations/GOSTSign.mjs";
37
37
  import GOSTVerify from "../../operations/GOSTVerify.mjs";
38
38
  import GenerateECDSAKeyPair from "../../operations/GenerateECDSAKeyPair.mjs";
39
39
  import GenerateRSAKeyPair from "../../operations/GenerateRSAKeyPair.mjs";
40
+ import PseudoRandomIntegerGenerator from "../../operations/PseudoRandomIntegerGenerator.mjs";
40
41
  import PseudoRandomNumberGenerator from "../../operations/PseudoRandomNumberGenerator.mjs";
41
42
  import RC2Decrypt from "../../operations/RC2Decrypt.mjs";
42
43
  import RC2Encrypt from "../../operations/RC2Encrypt.mjs";
43
44
  import RC4 from "../../operations/RC4.mjs";
44
45
  import RC4Drop from "../../operations/RC4Drop.mjs";
46
+ import RC6Decrypt from "../../operations/RC6Decrypt.mjs";
47
+ import RC6Encrypt from "../../operations/RC6Encrypt.mjs";
45
48
  import RSADecrypt from "../../operations/RSADecrypt.mjs";
46
49
  import RSAEncrypt from "../../operations/RSAEncrypt.mjs";
47
50
  import RSASign from "../../operations/RSASign.mjs";
@@ -95,11 +98,14 @@ OpModules.Ciphers = {
95
98
  "GOST Verify": GOSTVerify,
96
99
  "Generate ECDSA Key Pair": GenerateECDSAKeyPair,
97
100
  "Generate RSA Key Pair": GenerateRSAKeyPair,
101
+ "Pseudo-Random Integer Generator": PseudoRandomIntegerGenerator,
98
102
  "Pseudo-Random Number Generator": PseudoRandomNumberGenerator,
99
103
  "RC2 Decrypt": RC2Decrypt,
100
104
  "RC2 Encrypt": RC2Encrypt,
101
105
  "RC4": RC4,
102
106
  "RC4 Drop": RC4Drop,
107
+ "RC6 Decrypt": RC6Decrypt,
108
+ "RC6 Encrypt": RC6Encrypt,
103
109
  "RSA Decrypt": RSADecrypt,
104
110
  "RSA Encrypt": RSAEncrypt,
105
111
  "RSA Sign": RSASign,
@@ -20,6 +20,9 @@ import CipherSaber2Encrypt from "../../operations/CipherSaber2Encrypt.mjs";
20
20
  import CompareCTPHHashes from "../../operations/CompareCTPHHashes.mjs";
21
21
  import CompareSSDEEPHashes from "../../operations/CompareSSDEEPHashes.mjs";
22
22
  import DeriveHKDFKey from "../../operations/DeriveHKDFKey.mjs";
23
+ import FlaskSessionDecode from "../../operations/FlaskSessionDecode.mjs";
24
+ import FlaskSessionSign from "../../operations/FlaskSessionSign.mjs";
25
+ import FlaskSessionVerify from "../../operations/FlaskSessionVerify.mjs";
23
26
  import Fletcher16Checksum from "../../operations/Fletcher16Checksum.mjs";
24
27
  import Fletcher32Checksum from "../../operations/Fletcher32Checksum.mjs";
25
28
  import Fletcher64Checksum from "../../operations/Fletcher64Checksum.mjs";
@@ -81,6 +84,9 @@ OpModules.Crypto = {
81
84
  "Compare CTPH hashes": CompareCTPHHashes,
82
85
  "Compare SSDEEP hashes": CompareSSDEEPHashes,
83
86
  "Derive HKDF key": DeriveHKDFKey,
87
+ "Flask Session Decode": FlaskSessionDecode,
88
+ "Flask Session Sign": FlaskSessionSign,
89
+ "Flask Session Verify": FlaskSessionVerify,
84
90
  "Fletcher-16 Checksum": Fletcher16Checksum,
85
91
  "Fletcher-32 Checksum": Fletcher32Checksum,
86
92
  "Fletcher-64 Checksum": Fletcher64Checksum,