cyberchef 10.24.0 → 11.1.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 (81) hide show
  1. package/.devcontainer/devcontainer.json +1 -1
  2. package/.nvmrc +1 -1
  3. package/CHANGELOG.md +172 -0
  4. package/Dockerfile +2 -2
  5. package/Gruntfile.js +11 -6
  6. package/README.md +6 -4
  7. package/SECURITY.md +8 -18
  8. package/babel.config.js +4 -1
  9. package/package.json +48 -43
  10. package/src/core/ChefWorker.js +1 -1
  11. package/src/core/Recipe.mjs +1 -1
  12. package/src/core/config/Categories.json +6 -0
  13. package/src/core/config/OperationConfig.json +140 -16
  14. package/src/core/config/modules/Default.mjs +8 -0
  15. package/src/core/config/modules/PGP.mjs +2 -0
  16. package/src/core/config/scripts/generateOpsIndex.mjs +63 -0
  17. package/src/core/config/scripts/newOperation.mjs +31 -4
  18. package/src/core/lib/Magic.mjs +1 -1
  19. package/src/core/operations/AESDecrypt.mjs +61 -16
  20. package/src/core/operations/AESEncrypt.mjs +26 -11
  21. package/src/core/operations/BLAKE3.mjs +13 -7
  22. package/src/core/operations/BSONDeserialise.mjs +2 -2
  23. package/src/core/operations/BSONSerialise.mjs +3 -2
  24. package/src/core/operations/Bcrypt.mjs +1 -1
  25. package/src/core/operations/BcryptCompare.mjs +1 -1
  26. package/src/core/operations/DecodeText.mjs +4 -0
  27. package/src/core/operations/EncodeText.mjs +4 -0
  28. package/src/core/operations/EscapeSmartCharacters.mjs +129 -0
  29. package/src/core/operations/FromPunycode.mjs +1 -1
  30. package/src/core/operations/GenerateLoremIpsum.mjs +34 -3
  31. package/src/core/operations/GeneratePGPKeyPair.mjs +8 -7
  32. package/src/core/operations/PGPSign.mjs +83 -0
  33. package/src/core/operations/ParseEthernetFrame.mjs +1 -1
  34. package/src/core/operations/ParseIPv4Header.mjs +1 -1
  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/SeriesChart.mjs +16 -0
  40. package/src/core/operations/ShowBase64Offsets.mjs +28 -28
  41. package/src/core/operations/ToPunycode.mjs +1 -1
  42. package/src/core/operations/Wrap.mjs +47 -0
  43. package/src/core/operations/index.mjs +10 -0
  44. package/src/node/NodeRecipe.mjs +8 -7
  45. package/src/node/api.mjs +4 -4
  46. package/src/node/index.mjs +25 -0
  47. package/src/web/App.mjs +19 -1
  48. package/src/web/HTMLIngredient.mjs +1 -0
  49. package/src/web/html/index.html +3 -3
  50. package/src/web/index.js +2 -2
  51. package/src/web/static/sitemap.mjs +4 -4
  52. package/src/web/waiters/RecipeWaiter.mjs +9 -1
  53. package/tests/browser/02_ops.js +7 -7
  54. package/tests/browser/03_recipe_load.js +48 -0
  55. package/tests/browser/browserUtils.js +6 -3
  56. package/tests/lib/wasmFetchPolyfill.mjs +31 -0
  57. package/tests/node/consumers/cjs-consumer.js +2 -2
  58. package/tests/node/consumers/esm-consumer.mjs +2 -2
  59. package/tests/node/index.mjs +1 -0
  60. package/tests/node/tests/Categories.mjs +2 -2
  61. package/tests/node/tests/PGP.mjs +69 -0
  62. package/tests/node/tests/nodeApi.mjs +55 -58
  63. package/tests/node/tests/operations.mjs +41 -2
  64. package/tests/operations/index.mjs +72 -66
  65. package/tests/operations/tests/BLAKE3.mjs +18 -0
  66. package/tests/operations/tests/Base64.mjs +11 -0
  67. package/tests/operations/tests/CharEnc.mjs +26 -0
  68. package/tests/operations/tests/Charts.mjs +11 -0
  69. package/tests/operations/tests/Crypt.mjs +288 -62
  70. package/tests/operations/tests/EscapeSmartCharacters.mjs +132 -0
  71. package/tests/operations/tests/FlaskSession.mjs +11 -8
  72. package/tests/operations/tests/GenerateLoremIpsum.mjs +80 -0
  73. package/tests/operations/tests/IPv6Transition.mjs +4 -4
  74. package/tests/operations/tests/PGP.mjs +178 -154
  75. package/tests/operations/tests/ParseEthernetFrame.mjs +11 -0
  76. package/tests/operations/tests/ParseIPv4Header.mjs +23 -0
  77. package/tests/operations/tests/ParseX509CRL.mjs +16 -16
  78. package/tests/operations/tests/ROR13.mjs +45 -0
  79. package/tests/operations/tests/Register.mjs +3 -1
  80. package/tests/operations/tests/RemoveANSIEscapeCodes.mjs +62 -0
  81. package/tests/operations/tests/Wrap.mjs +44 -0
@@ -74,7 +74,8 @@ The following algorithms will be used based on the size of the key:
74
74
  {"option": "Hex", "string": ""},
75
75
  {"option": "Hex", "string": ""},
76
76
  "CBC", "Raw", "Hex",
77
- {"option": "Hex", "string": ""}
77
+ {"option": "Hex", "string": ""},
78
+ "Off"
78
79
  ]
79
80
  }
80
81
  ],
@@ -90,7 +91,8 @@ The following algorithms will be used based on the size of the key:
90
91
  {"option": "Hex", "string": "00112233445566778899aabbccddeeff"},
91
92
  {"option": "Hex", "string": "00000000000000000000000000000000"},
92
93
  "CBC", "Raw", "Hex",
93
- {"option": "Hex", "string": ""}
94
+ {"option": "Hex", "string": ""},
95
+ "Off"
94
96
  ]
95
97
  }
96
98
  ],
@@ -106,7 +108,8 @@ The following algorithms will be used based on the size of the key:
106
108
  {"option": "Hex", "string": "00112233445566778899aabbccddeeff"},
107
109
  {"option": "Hex", "string": "00000000000000000000000000000000"},
108
110
  "CTR", "Raw", "Hex",
109
- {"option": "Hex", "string": ""}
111
+ {"option": "Hex", "string": ""},
112
+ "Off"
110
113
  ]
111
114
  }
112
115
  ],
@@ -122,7 +125,8 @@ The following algorithms will be used based on the size of the key:
122
125
  {"option": "Hex", "string": "00112233445566778899aabbccddeeff"},
123
126
  {"option": "Hex", "string": "00112233445566778899aabbccddeeff"},
124
127
  "CBC", "Raw", "Hex",
125
- {"option": "Hex", "string": ""}
128
+ {"option": "Hex", "string": ""},
129
+ "Off"
126
130
  ]
127
131
  }
128
132
  ],
@@ -138,7 +142,8 @@ The following algorithms will be used based on the size of the key:
138
142
  {"option": "Hex", "string": "00112233445566778899aabbccddeeff"},
139
143
  {"option": "Hex", "string": "00112233445566778899aabbccddeeff"},
140
144
  "CFB", "Raw", "Hex",
141
- {"option": "Hex", "string": ""}
145
+ {"option": "Hex", "string": ""},
146
+ "Off"
142
147
  ]
143
148
  }
144
149
  ],
@@ -154,7 +159,8 @@ The following algorithms will be used based on the size of the key:
154
159
  {"option": "Hex", "string": "00112233445566778899aabbccddeeff"},
155
160
  {"option": "Hex", "string": "00112233445566778899aabbccddeeff"},
156
161
  "OFB", "Raw", "Hex",
157
- {"option": "Hex", "string": ""}
162
+ {"option": "Hex", "string": ""},
163
+ "Off"
158
164
  ]
159
165
  }
160
166
  ],
@@ -170,7 +176,8 @@ The following algorithms will be used based on the size of the key:
170
176
  {"option": "Hex", "string": "00112233445566778899aabbccddeeff"},
171
177
  {"option": "Hex", "string": "00112233445566778899aabbccddeeff"},
172
178
  "CTR", "Raw", "Hex",
173
- {"option": "Hex", "string": ""}
179
+ {"option": "Hex", "string": ""},
180
+ "Off"
174
181
  ]
175
182
  }
176
183
  ],
@@ -186,7 +193,8 @@ The following algorithms will be used based on the size of the key:
186
193
  {"option": "Hex", "string": "00112233445566778899aabbccddeeff"},
187
194
  {"option": "Hex", "string": ""},
188
195
  "ECB", "Raw", "Hex",
189
- {"option": "Hex", "string": ""}
196
+ {"option": "Hex", "string": ""},
197
+ "Off"
190
198
  ]
191
199
  }
192
200
  ],
@@ -204,7 +212,8 @@ Tag: 16a3e732a605cc9ca29108f742ca0743`,
204
212
  {"option": "Hex", "string": "00112233445566778899aabbccddeeff"},
205
213
  {"option": "Hex", "string": ""},
206
214
  "GCM", "Raw", "Hex",
207
- {"option": "Hex", "string": ""}
215
+ {"option": "Hex", "string": ""},
216
+ "Off"
208
217
  ]
209
218
  }
210
219
  ],
@@ -222,7 +231,8 @@ Tag: 3b5378917f67b0aade9891fc6c291646`,
222
231
  {"option": "Hex", "string": "00112233445566778899aabbccddeeff"},
223
232
  {"option": "Hex", "string": "ffeeddccbbaa99887766554433221100"},
224
233
  "GCM", "Raw", "Hex",
225
- {"option": "UTF8", "string": "additional data"}
234
+ {"option": "UTF8", "string": "additional data"},
235
+ "Off"
226
236
  ]
227
237
  }
228
238
  ],
@@ -238,7 +248,8 @@ Tag: 3b5378917f67b0aade9891fc6c291646`,
238
248
  {"option": "Hex", "string": "51e201d463698ef5f717f71f5b4712af"},
239
249
  {"option": "Hex", "string": "1748e7179bd56570d51fa4ba287cc3e5"},
240
250
  "CBC", "Hex", "Hex",
241
- {"option": "Hex", "string": ""}
251
+ {"option": "Hex", "string": ""},
252
+ "Off"
242
253
  ]
243
254
  }
244
255
  ],
@@ -254,7 +265,8 @@ Tag: 3b5378917f67b0aade9891fc6c291646`,
254
265
  {"option": "Hex", "string": "51e201d463698ef5f717f71f5b4712af"},
255
266
  {"option": "Hex", "string": "1748e7179bd56570d51fa4ba287cc3e5"},
256
267
  "CFB", "Hex", "Hex",
257
- {"option": "Hex", "string": ""}
268
+ {"option": "Hex", "string": ""},
269
+ "Off"
258
270
  ]
259
271
  }
260
272
  ],
@@ -270,7 +282,8 @@ Tag: 3b5378917f67b0aade9891fc6c291646`,
270
282
  {"option": "Hex", "string": "51e201d463698ef5f717f71f5b4712af"},
271
283
  {"option": "Hex", "string": "1748e7179bd56570d51fa4ba287cc3e5"},
272
284
  "OFB", "Hex", "Hex",
273
- {"option": "Hex", "string": ""}
285
+ {"option": "Hex", "string": ""},
286
+ "Off"
274
287
  ]
275
288
  }
276
289
  ],
@@ -286,7 +299,8 @@ Tag: 3b5378917f67b0aade9891fc6c291646`,
286
299
  {"option": "Hex", "string": "51e201d463698ef5f717f71f5b4712af"},
287
300
  {"option": "Hex", "string": "1748e7179bd56570d51fa4ba287cc3e5"},
288
301
  "CTR", "Hex", "Hex",
289
- {"option": "Hex", "string": ""}
302
+ {"option": "Hex", "string": ""},
303
+ "Off"
290
304
  ]
291
305
  }
292
306
  ],
@@ -304,7 +318,8 @@ Tag: 70fad2ca19412c20f40fd06918736e56`,
304
318
  {"option": "Hex", "string": "51e201d463698ef5f717f71f5b4712af"},
305
319
  {"option": "Hex", "string": "1748e7179bd56570d51fa4ba287cc3e5"},
306
320
  "GCM", "Hex", "Hex",
307
- {"option": "Hex", "string": ""}
321
+ {"option": "Hex", "string": ""},
322
+ "Off"
308
323
  ]
309
324
  }
310
325
  ],
@@ -322,7 +337,8 @@ Tag: 61cc4b70809452b0b3e38f913fa0a109`,
322
337
  {"option": "Hex", "string": "51e201d463698ef5f717f71f5b4712af"},
323
338
  {"option": "Hex", "string": "1748e7179bd56570d51fa4ba287cc3e5"},
324
339
  "GCM", "Hex", "Hex",
325
- {"option": "UTF8", "string": "additional data"}
340
+ {"option": "UTF8", "string": "additional data"},
341
+ "Off"
326
342
  ]
327
343
  }
328
344
  ],
@@ -338,7 +354,8 @@ Tag: 61cc4b70809452b0b3e38f913fa0a109`,
338
354
  {"option": "Hex", "string": "51e201d463698ef5f717f71f5b4712af"},
339
355
  {"option": "Hex", "string": "1748e7179bd56570d51fa4ba287cc3e5"},
340
356
  "ECB", "Hex", "Hex",
341
- {"option": "Hex", "string": ""}
357
+ {"option": "Hex", "string": ""},
358
+ "Off"
342
359
  ]
343
360
  }
344
361
  ],
@@ -354,7 +371,8 @@ Tag: 61cc4b70809452b0b3e38f913fa0a109`,
354
371
  {"option": "Hex", "string": "6801ed503c9d96ee5f9d78b07ab1b295dba3c2adf81c7816"},
355
372
  {"option": "Hex", "string": "1748e7179bd56570d51fa4ba287cc3e5"},
356
373
  "CBC", "Hex", "Hex",
357
- {"option": "Hex", "string": ""}
374
+ {"option": "Hex", "string": ""},
375
+ "Off"
358
376
  ]
359
377
  }
360
378
  ],
@@ -370,7 +388,8 @@ Tag: 61cc4b70809452b0b3e38f913fa0a109`,
370
388
  {"option": "Hex", "string": "6801ed503c9d96ee5f9d78b07ab1b295dba3c2adf81c7816"},
371
389
  {"option": "Hex", "string": "1748e7179bd56570d51fa4ba287cc3e5"},
372
390
  "CFB", "Hex", "Hex",
373
- {"option": "Hex", "string": ""}
391
+ {"option": "Hex", "string": ""},
392
+ "Off"
374
393
  ]
375
394
  }
376
395
  ],
@@ -386,7 +405,8 @@ Tag: 61cc4b70809452b0b3e38f913fa0a109`,
386
405
  {"option": "Hex", "string": "6801ed503c9d96ee5f9d78b07ab1b295dba3c2adf81c7816"},
387
406
  {"option": "Hex", "string": "1748e7179bd56570d51fa4ba287cc3e5"},
388
407
  "OFB", "Hex", "Hex",
389
- {"option": "Hex", "string": ""}
408
+ {"option": "Hex", "string": ""},
409
+ "Off"
390
410
  ]
391
411
  }
392
412
  ],
@@ -402,7 +422,8 @@ Tag: 61cc4b70809452b0b3e38f913fa0a109`,
402
422
  {"option": "Hex", "string": "6801ed503c9d96ee5f9d78b07ab1b295dba3c2adf81c7816"},
403
423
  {"option": "Hex", "string": "1748e7179bd56570d51fa4ba287cc3e5"},
404
424
  "CTR", "Hex", "Hex",
405
- {"option": "Hex", "string": ""}
425
+ {"option": "Hex", "string": ""},
426
+ "Off"
406
427
  ]
407
428
  }
408
429
  ],
@@ -420,7 +441,8 @@ Tag: 86db597d5302595223cadbd990f1309b`,
420
441
  {"option": "Hex", "string": "6801ed503c9d96ee5f9d78b07ab1b295dba3c2adf81c7816"},
421
442
  {"option": "Hex", "string": "1748e7179bd56570d51fa4ba287cc3e5"},
422
443
  "GCM", "Hex", "Hex",
423
- {"option": "Hex", "string": ""}
444
+ {"option": "Hex", "string": ""},
445
+ "Off"
424
446
  ]
425
447
  }
426
448
  ],
@@ -438,7 +460,8 @@ Tag: aeedf3e6ca4201577c0cf3e9ce58159d`,
438
460
  {"option": "Hex", "string": "6801ed503c9d96ee5f9d78b07ab1b295dba3c2adf81c7816"},
439
461
  {"option": "Hex", "string": "1748e7179bd56570d51fa4ba287cc3e5"},
440
462
  "GCM", "Hex", "Hex",
441
- {"option": "UTF8", "string": "additional data"}
463
+ {"option": "UTF8", "string": "additional data"},
464
+ "Off"
442
465
  ]
443
466
  }
444
467
  ],
@@ -454,7 +477,8 @@ Tag: aeedf3e6ca4201577c0cf3e9ce58159d`,
454
477
  {"option": "Hex", "string": "6801ed503c9d96ee5f9d78b07ab1b295dba3c2adf81c7816"},
455
478
  {"option": "Hex", "string": "1748e7179bd56570d51fa4ba287cc3e5"},
456
479
  "ECB", "Hex", "Hex",
457
- {"option": "Hex", "string": ""}
480
+ {"option": "Hex", "string": ""},
481
+ "Off"
458
482
  ]
459
483
  }
460
484
  ],
@@ -470,7 +494,8 @@ Tag: aeedf3e6ca4201577c0cf3e9ce58159d`,
470
494
  {"option": "Hex", "string": "2d767f6e9333d1c77581946e160b2b7368c2cdd5e2b80f04ca09d64e02afbfe1"},
471
495
  {"option": "Hex", "string": "1748e7179bd56570d51fa4ba287cc3e5"},
472
496
  "CBC", "Hex", "Hex",
473
- {"option": "Hex", "string": ""}
497
+ {"option": "Hex", "string": ""},
498
+ "Off"
474
499
  ]
475
500
  }
476
501
  ],
@@ -486,7 +511,8 @@ Tag: aeedf3e6ca4201577c0cf3e9ce58159d`,
486
511
  {"option": "Hex", "string": "2d767f6e9333d1c77581946e160b2b7368c2cdd5e2b80f04ca09d64e02afbfe1"},
487
512
  {"option": "Hex", "string": "1748e7179bd56570d51fa4ba287cc3e5"},
488
513
  "CFB", "Hex", "Hex",
489
- {"option": "Hex", "string": ""}
514
+ {"option": "Hex", "string": ""},
515
+ "Off"
490
516
  ]
491
517
  }
492
518
  ],
@@ -502,7 +528,8 @@ Tag: aeedf3e6ca4201577c0cf3e9ce58159d`,
502
528
  {"option": "Hex", "string": "2d767f6e9333d1c77581946e160b2b7368c2cdd5e2b80f04ca09d64e02afbfe1"},
503
529
  {"option": "Hex", "string": "1748e7179bd56570d51fa4ba287cc3e5"},
504
530
  "OFB", "Hex", "Hex",
505
- {"option": "Hex", "string": ""}
531
+ {"option": "Hex", "string": ""},
532
+ "Off"
506
533
  ]
507
534
  }
508
535
  ],
@@ -518,7 +545,8 @@ Tag: aeedf3e6ca4201577c0cf3e9ce58159d`,
518
545
  {"option": "Hex", "string": "2d767f6e9333d1c77581946e160b2b7368c2cdd5e2b80f04ca09d64e02afbfe1"},
519
546
  {"option": "Hex", "string": "1748e7179bd56570d51fa4ba287cc3e5"},
520
547
  "CTR", "Hex", "Hex",
521
- {"option": "Hex", "string": ""}
548
+ {"option": "Hex", "string": ""},
549
+ "Off"
522
550
  ]
523
551
  }
524
552
  ],
@@ -536,7 +564,8 @@ Tag: 821b1e5f32dad052e502775a523d957a`,
536
564
  {"option": "Hex", "string": "2d767f6e9333d1c77581946e160b2b7368c2cdd5e2b80f04ca09d64e02afbfe1"},
537
565
  {"option": "Hex", "string": "1748e7179bd56570d51fa4ba287cc3e5"},
538
566
  "GCM", "Hex", "Hex",
539
- {"option": "Hex", "string": ""}
567
+ {"option": "Hex", "string": ""},
568
+ "Off"
540
569
  ]
541
570
  }
542
571
  ],
@@ -554,7 +583,8 @@ Tag: a8f04c4d93bbef82bef61a103371aef9`,
554
583
  {"option": "Hex", "string": "2d767f6e9333d1c77581946e160b2b7368c2cdd5e2b80f04ca09d64e02afbfe1"},
555
584
  {"option": "Hex", "string": "1748e7179bd56570d51fa4ba287cc3e5"},
556
585
  "GCM", "Hex", "Hex",
557
- {"option": "UTF8", "string": "additional data"}
586
+ {"option": "UTF8", "string": "additional data"},
587
+ "Off"
558
588
  ]
559
589
  }
560
590
  ],
@@ -570,7 +600,46 @@ Tag: a8f04c4d93bbef82bef61a103371aef9`,
570
600
  {"option": "Hex", "string": "2d767f6e9333d1c77581946e160b2b7368c2cdd5e2b80f04ca09d64e02afbfe1"},
571
601
  {"option": "Hex", "string": "1748e7179bd56570d51fa4ba287cc3e5"},
572
602
  "ECB", "Hex", "Hex",
573
- {"option": "Hex", "string": ""}
603
+ {"option": "Hex", "string": ""},
604
+ "Off"
605
+ ]
606
+ }
607
+ ],
608
+ },
609
+ {
610
+ name: "AES Encrypt: AES-256-GCM, Binary, AAD, prepend IV to output",
611
+ input: "7a0e643132750e96d805d11e9e48e281fa39a41039286423cc1c045e5442b40bf1c3f2822bded3f9c8ef11cb25da64dda9c7ab87c246bd305385150c98f31465c2a6180fe81d31ea289b916504d5a12e1de26cb10adba84a0cb0c86f94bc14bc554f3018",
612
+ expectedOutput: `1748e7179bd56570d51fa4ba287cc3e51287f188ad4d7ab0d9ff69b3c29cb11f861389532d8cb9337181da2e8cfc74a84927e8c0dd7a28a32fd485afe694259a63c199b199b95edd87c7aa95329feac340f2b78b72956a85f367044d821766b1b7135815571df44900695f1518cf3ae38ecb650f
613
+
614
+ Tag: a8f04c4d93bbef82bef61a103371aef9`,
615
+ recipeConfig: [
616
+ {
617
+ "op": "AES Encrypt",
618
+ "args": [
619
+ {"option": "Hex", "string": "2d767f6e9333d1c77581946e160b2b7368c2cdd5e2b80f04ca09d64e02afbfe1"},
620
+ {"option": "Hex", "string": "1748e7179bd56570d51fa4ba287cc3e5"},
621
+ "GCM", "Hex", "Hex",
622
+ {"option": "UTF8", "string": "additional data"},
623
+ "Prepend"
624
+ ]
625
+ }
626
+ ],
627
+ },
628
+ {
629
+ name: "AES Encrypt: AES-256-GCM, Binary, AAD, append IV to output",
630
+ input: "7a0e643132750e96d805d11e9e48e281fa39a41039286423cc1c045e5442b40bf1c3f2822bded3f9c8ef11cb25da64dda9c7ab87c246bd305385150c98f31465c2a6180fe81d31ea289b916504d5a12e1de26cb10adba84a0cb0c86f94bc14bc554f3018",
631
+ expectedOutput: `1287f188ad4d7ab0d9ff69b3c29cb11f861389532d8cb9337181da2e8cfc74a84927e8c0dd7a28a32fd485afe694259a63c199b199b95edd87c7aa95329feac340f2b78b72956a85f367044d821766b1b7135815571df44900695f1518cf3ae38ecb650f1748e7179bd56570d51fa4ba287cc3e5
632
+
633
+ Tag: a8f04c4d93bbef82bef61a103371aef9`,
634
+ recipeConfig: [
635
+ {
636
+ "op": "AES Encrypt",
637
+ "args": [
638
+ {"option": "Hex", "string": "2d767f6e9333d1c77581946e160b2b7368c2cdd5e2b80f04ca09d64e02afbfe1"},
639
+ {"option": "Hex", "string": "1748e7179bd56570d51fa4ba287cc3e5"},
640
+ "GCM", "Hex", "Hex",
641
+ {"option": "UTF8", "string": "additional data"},
642
+ "Append"
574
643
  ]
575
644
  }
576
645
  ],
@@ -776,9 +845,11 @@ The following algorithms will be used based on the size of the key:
776
845
  "args": [
777
846
  {"option": "Hex", "string": ""},
778
847
  {"option": "Hex", "string": ""},
848
+ 16,
779
849
  "CBC", "Hex", "Raw",
780
850
  {"option": "Hex", "string": ""},
781
- {"option": "Hex", "string": ""}
851
+ {"option": "Hex", "string": ""},
852
+ "Off"
782
853
  ]
783
854
  }
784
855
  ],
@@ -793,9 +864,11 @@ The following algorithms will be used based on the size of the key:
793
864
  "args": [
794
865
  {"option": "Hex", "string": "00112233445566778899aabbccddeeff"},
795
866
  {"option": "Hex", "string": "00000000000000000000000000000000"},
867
+ 16,
796
868
  "CBC", "Hex", "Raw",
797
869
  {"option": "Hex", "string": ""},
798
- {"option": "Hex", "string": ""}
870
+ {"option": "Hex", "string": ""},
871
+ "Off"
799
872
  ]
800
873
  }
801
874
  ],
@@ -810,9 +883,11 @@ The following algorithms will be used based on the size of the key:
810
883
  "args": [
811
884
  {"option": "Hex", "string": "00112233445566778899aabbccddeeff"},
812
885
  {"option": "Hex", "string": "00000000000000000000000000000000"},
886
+ 16,
813
887
  "CTR", "Hex", "Raw",
814
888
  {"option": "Hex", "string": ""},
815
- {"option": "Hex", "string": ""}
889
+ {"option": "Hex", "string": ""},
890
+ "Off"
816
891
  ]
817
892
  }
818
893
  ],
@@ -827,9 +902,11 @@ The following algorithms will be used based on the size of the key:
827
902
  "args": [
828
903
  {"option": "Hex", "string": "00112233445566778899aabbccddeeff"},
829
904
  {"option": "Hex", "string": "00112233445566778899aabbccddeeff"},
905
+ 16,
830
906
  "CBC", "Hex", "Raw",
831
907
  {"option": "Hex", "string": ""},
832
- {"option": "Hex", "string": ""}
908
+ {"option": "Hex", "string": ""},
909
+ "Off"
833
910
  ]
834
911
  }
835
912
  ],
@@ -844,9 +921,11 @@ The following algorithms will be used based on the size of the key:
844
921
  "args": [
845
922
  {"option": "Hex", "string": "00112233445566778899aabbccddeeff"},
846
923
  {"option": "Hex", "string": "00112233445566778899aabbccddeeff"},
924
+ 16,
847
925
  "CFB", "Hex", "Raw",
848
926
  {"option": "Hex", "string": ""},
849
- {"option": "Hex", "string": ""}
927
+ {"option": "Hex", "string": ""},
928
+ "Off"
850
929
  ]
851
930
  }
852
931
  ],
@@ -861,9 +940,11 @@ The following algorithms will be used based on the size of the key:
861
940
  "args": [
862
941
  {"option": "Hex", "string": "00112233445566778899aabbccddeeff"},
863
942
  {"option": "Hex", "string": "00112233445566778899aabbccddeeff"},
943
+ 16,
864
944
  "OFB", "Hex", "Raw",
865
945
  {"option": "Hex", "string": ""},
866
- {"option": "Hex", "string": ""}
946
+ {"option": "Hex", "string": ""},
947
+ "Off"
867
948
  ]
868
949
  }
869
950
  ],
@@ -878,9 +959,11 @@ The following algorithms will be used based on the size of the key:
878
959
  "args": [
879
960
  {"option": "Hex", "string": "00112233445566778899aabbccddeeff"},
880
961
  {"option": "Hex", "string": "00112233445566778899aabbccddeeff"},
962
+ 16,
881
963
  "CTR", "Hex", "Raw",
882
964
  {"option": "Hex", "string": ""},
883
- {"option": "Hex", "string": ""}
965
+ {"option": "Hex", "string": ""},
966
+ "Off"
884
967
  ]
885
968
  }
886
969
  ],
@@ -895,9 +978,11 @@ The following algorithms will be used based on the size of the key:
895
978
  "args": [
896
979
  {"option": "Hex", "string": "00112233445566778899aabbccddeeff"},
897
980
  {"option": "Hex", "string": ""},
981
+ 16,
898
982
  "ECB", "Hex", "Raw",
899
983
  {"option": "Hex", "string": ""},
900
- {"option": "Hex", "string": ""}
984
+ {"option": "Hex", "string": ""},
985
+ "Off"
901
986
  ]
902
987
  }
903
988
  ],
@@ -912,9 +997,11 @@ The following algorithms will be used based on the size of the key:
912
997
  "args": [
913
998
  {"option": "Hex", "string": "00112233445566778899aabbccddeeff"},
914
999
  {"option": "Hex", "string": ""},
1000
+ 16,
915
1001
  "GCM", "Hex", "Raw",
916
1002
  {"option": "Hex", "string": "16a3e732a605cc9ca29108f742ca0743"},
917
- {"option": "Hex", "string": ""}
1003
+ {"option": "Hex", "string": ""},
1004
+ "Off"
918
1005
  ]
919
1006
  }
920
1007
  ],
@@ -929,9 +1016,11 @@ The following algorithms will be used based on the size of the key:
929
1016
  "args": [
930
1017
  {"option": "Hex", "string": "00112233445566778899aabbccddeeff"},
931
1018
  {"option": "Hex", "string": "ffeeddccbbaa99887766554433221100"},
1019
+ 16,
932
1020
  "GCM", "Hex", "Raw",
933
1021
  {"option": "Hex", "string": "3b5378917f67b0aade9891fc6c291646"},
934
- {"option": "UTF8", "string": "additional data"}
1022
+ {"option": "UTF8", "string": "additional data"},
1023
+ "Off"
935
1024
  ]
936
1025
  }
937
1026
  ],
@@ -946,9 +1035,11 @@ The following algorithms will be used based on the size of the key:
946
1035
  "args": [
947
1036
  {"option": "Hex", "string": "51e201d463698ef5f717f71f5b4712af"},
948
1037
  {"option": "Hex", "string": "1748e7179bd56570d51fa4ba287cc3e5"},
1038
+ 16,
949
1039
  "CBC", "Hex", "Hex",
950
1040
  {"option": "Hex", "string": ""},
951
- {"option": "Hex", "string": ""}
1041
+ {"option": "Hex", "string": ""},
1042
+ "Off"
952
1043
  ]
953
1044
  }
954
1045
  ],
@@ -963,9 +1054,11 @@ The following algorithms will be used based on the size of the key:
963
1054
  "args": [
964
1055
  {"option": "Hex", "string": "51e201d463698ef5f717f71f5b4712af"},
965
1056
  {"option": "Hex", "string": "1748e7179bd56570d51fa4ba287cc3e5"},
1057
+ 16,
966
1058
  "CFB", "Hex", "Hex",
967
1059
  {"option": "Hex", "string": ""},
968
- {"option": "Hex", "string": ""}
1060
+ {"option": "Hex", "string": ""},
1061
+ "Off"
969
1062
  ]
970
1063
  }
971
1064
  ],
@@ -980,9 +1073,11 @@ The following algorithms will be used based on the size of the key:
980
1073
  "args": [
981
1074
  {"option": "Hex", "string": "51e201d463698ef5f717f71f5b4712af"},
982
1075
  {"option": "Hex", "string": "1748e7179bd56570d51fa4ba287cc3e5"},
1076
+ 16,
983
1077
  "OFB", "Hex", "Hex",
984
1078
  {"option": "Hex", "string": ""},
985
- {"option": "Hex", "string": ""}
1079
+ {"option": "Hex", "string": ""},
1080
+ "Off"
986
1081
  ]
987
1082
  }
988
1083
  ],
@@ -997,9 +1092,11 @@ The following algorithms will be used based on the size of the key:
997
1092
  "args": [
998
1093
  {"option": "Hex", "string": "51e201d463698ef5f717f71f5b4712af"},
999
1094
  {"option": "Hex", "string": "1748e7179bd56570d51fa4ba287cc3e5"},
1095
+ 16,
1000
1096
  "CTR", "Hex", "Hex",
1001
1097
  {"option": "Hex", "string": ""},
1002
- {"option": "Hex", "string": ""}
1098
+ {"option": "Hex", "string": ""},
1099
+ "Off"
1003
1100
  ]
1004
1101
  }
1005
1102
  ],
@@ -1014,9 +1111,11 @@ The following algorithms will be used based on the size of the key:
1014
1111
  "args": [
1015
1112
  {"option": "Hex", "string": "51e201d463698ef5f717f71f5b4712af"},
1016
1113
  {"option": "Hex", "string": "1748e7179bd56570d51fa4ba287cc3e5"},
1114
+ 16,
1017
1115
  "GCM", "Hex", "Hex",
1018
1116
  {"option": "Hex", "string": "70fad2ca19412c20f40fd06918736e56"},
1019
- {"option": "Hex", "string": ""}
1117
+ {"option": "Hex", "string": ""},
1118
+ "Off"
1020
1119
  ]
1021
1120
  }
1022
1121
  ],
@@ -1031,9 +1130,11 @@ The following algorithms will be used based on the size of the key:
1031
1130
  "args": [
1032
1131
  {"option": "Hex", "string": "51e201d463698ef5f717f71f5b4712af"},
1033
1132
  {"option": "Hex", "string": "1748e7179bd56570d51fa4ba287cc3e5"},
1133
+ 16,
1034
1134
  "GCM", "Hex", "Hex",
1035
1135
  {"option": "Hex", "string": "61cc4b70809452b0b3e38f913fa0a109"},
1036
- {"option": "UTF8", "string": "additional data"}
1136
+ {"option": "UTF8", "string": "additional data"},
1137
+ "Off"
1037
1138
  ]
1038
1139
  }
1039
1140
  ],
@@ -1048,9 +1149,11 @@ The following algorithms will be used based on the size of the key:
1048
1149
  "args": [
1049
1150
  {"option": "Hex", "string": "51e201d463698ef5f717f71f5b4712af"},
1050
1151
  {"option": "Hex", "string": "1748e7179bd56570d51fa4ba287cc3e5"},
1152
+ 16,
1051
1153
  "ECB", "Hex", "Hex",
1052
1154
  {"option": "Hex", "string": ""},
1053
- {"option": "Hex", "string": ""}
1155
+ {"option": "Hex", "string": ""},
1156
+ "Off"
1054
1157
  ]
1055
1158
  }
1056
1159
  ],
@@ -1065,9 +1168,11 @@ The following algorithms will be used based on the size of the key:
1065
1168
  "args": [
1066
1169
  {"option": "Hex", "string": "6801ed503c9d96ee5f9d78b07ab1b295dba3c2adf81c7816"},
1067
1170
  {"option": "Hex", "string": "1748e7179bd56570d51fa4ba287cc3e5"},
1171
+ 16,
1068
1172
  "CBC", "Hex", "Hex",
1069
1173
  {"option": "Hex", "string": ""},
1070
- {"option": "Hex", "string": ""}
1174
+ {"option": "Hex", "string": ""},
1175
+ "Off"
1071
1176
  ]
1072
1177
  }
1073
1178
  ],
@@ -1082,9 +1187,11 @@ The following algorithms will be used based on the size of the key:
1082
1187
  "args": [
1083
1188
  {"option": "Hex", "string": "6801ed503c9d96ee5f9d78b07ab1b295dba3c2adf81c7816"},
1084
1189
  {"option": "Hex", "string": "1748e7179bd56570d51fa4ba287cc3e5"},
1190
+ 16,
1085
1191
  "CFB", "Hex", "Hex",
1086
1192
  {"option": "Hex", "string": ""},
1087
- {"option": "Hex", "string": ""}
1193
+ {"option": "Hex", "string": ""},
1194
+ "Off"
1088
1195
  ]
1089
1196
  }
1090
1197
  ],
@@ -1099,9 +1206,11 @@ The following algorithms will be used based on the size of the key:
1099
1206
  "args": [
1100
1207
  {"option": "Hex", "string": "6801ed503c9d96ee5f9d78b07ab1b295dba3c2adf81c7816"},
1101
1208
  {"option": "Hex", "string": "1748e7179bd56570d51fa4ba287cc3e5"},
1209
+ 16,
1102
1210
  "OFB", "Hex", "Hex",
1103
1211
  {"option": "Hex", "string": ""},
1104
- {"option": "Hex", "string": ""}
1212
+ {"option": "Hex", "string": ""},
1213
+ "Off"
1105
1214
  ]
1106
1215
  }
1107
1216
  ],
@@ -1116,9 +1225,11 @@ The following algorithms will be used based on the size of the key:
1116
1225
  "args": [
1117
1226
  {"option": "Hex", "string": "6801ed503c9d96ee5f9d78b07ab1b295dba3c2adf81c7816"},
1118
1227
  {"option": "Hex", "string": "1748e7179bd56570d51fa4ba287cc3e5"},
1228
+ 16,
1119
1229
  "CTR", "Hex", "Hex",
1120
1230
  {"option": "Hex", "string": ""},
1121
- {"option": "Hex", "string": ""}
1231
+ {"option": "Hex", "string": ""},
1232
+ "Off"
1122
1233
  ]
1123
1234
  }
1124
1235
  ],
@@ -1133,9 +1244,11 @@ The following algorithms will be used based on the size of the key:
1133
1244
  "args": [
1134
1245
  {"option": "Hex", "string": "6801ed503c9d96ee5f9d78b07ab1b295dba3c2adf81c7816"},
1135
1246
  {"option": "Hex", "string": "1748e7179bd56570d51fa4ba287cc3e5"},
1247
+ 16,
1136
1248
  "GCM", "Hex", "Hex",
1137
1249
  {"option": "Hex", "string": "86db597d5302595223cadbd990f1309b"},
1138
- {"option": "Hex", "string": ""}
1250
+ {"option": "Hex", "string": ""},
1251
+ "Off"
1139
1252
  ]
1140
1253
  }
1141
1254
  ],
@@ -1150,9 +1263,11 @@ The following algorithms will be used based on the size of the key:
1150
1263
  "args": [
1151
1264
  {"option": "Hex", "string": "6801ed503c9d96ee5f9d78b07ab1b295dba3c2adf81c7816"},
1152
1265
  {"option": "Hex", "string": "1748e7179bd56570d51fa4ba287cc3e5"},
1266
+ 16,
1153
1267
  "GCM", "Hex", "Hex",
1154
1268
  {"option": "Hex", "string": "aeedf3e6ca4201577c0cf3e9ce58159d"},
1155
- {"option": "UTF8", "string": "additional data"}
1269
+ {"option": "UTF8", "string": "additional data"},
1270
+ "Off"
1156
1271
  ]
1157
1272
  }
1158
1273
  ],
@@ -1167,9 +1282,11 @@ The following algorithms will be used based on the size of the key:
1167
1282
  "args": [
1168
1283
  {"option": "Hex", "string": "6801ed503c9d96ee5f9d78b07ab1b295dba3c2adf81c7816"},
1169
1284
  {"option": "Hex", "string": "1748e7179bd56570d51fa4ba287cc3e5"},
1285
+ 16,
1170
1286
  "ECB", "Hex", "Hex",
1171
1287
  {"option": "Hex", "string": ""},
1172
- {"option": "Hex", "string": ""}
1288
+ {"option": "Hex", "string": ""},
1289
+ "Off"
1173
1290
  ]
1174
1291
  }
1175
1292
  ],
@@ -1184,9 +1301,11 @@ The following algorithms will be used based on the size of the key:
1184
1301
  "args": [
1185
1302
  {"option": "Hex", "string": "2d767f6e9333d1c77581946e160b2b7368c2cdd5e2b80f04ca09d64e02afbfe1"},
1186
1303
  {"option": "Hex", "string": "1748e7179bd56570d51fa4ba287cc3e5"},
1304
+ 16,
1187
1305
  "CBC", "Hex", "Hex",
1188
1306
  {"option": "Hex", "string": ""},
1189
- {"option": "Hex", "string": ""}
1307
+ {"option": "Hex", "string": ""},
1308
+ "Off"
1190
1309
  ]
1191
1310
  }
1192
1311
  ],
@@ -1201,9 +1320,11 @@ The following algorithms will be used based on the size of the key:
1201
1320
  "args": [
1202
1321
  {"option": "Hex", "string": "2d767f6e9333d1c77581946e160b2b7368c2cdd5e2b80f04ca09d64e02afbfe1"},
1203
1322
  {"option": "Hex", "string": "1748e7179bd56570d51fa4ba287cc3e5"},
1323
+ 16,
1204
1324
  "CFB", "Hex", "Hex",
1205
1325
  {"option": "Hex", "string": ""},
1206
- {"option": "Hex", "string": ""}
1326
+ {"option": "Hex", "string": ""},
1327
+ "Off"
1207
1328
  ]
1208
1329
  }
1209
1330
  ],
@@ -1218,9 +1339,11 @@ The following algorithms will be used based on the size of the key:
1218
1339
  "args": [
1219
1340
  {"option": "Hex", "string": "2d767f6e9333d1c77581946e160b2b7368c2cdd5e2b80f04ca09d64e02afbfe1"},
1220
1341
  {"option": "Hex", "string": "1748e7179bd56570d51fa4ba287cc3e5"},
1342
+ 16,
1221
1343
  "OFB", "Hex", "Hex",
1222
1344
  {"option": "Hex", "string": ""},
1223
- {"option": "Hex", "string": ""}
1345
+ {"option": "Hex", "string": ""},
1346
+ "Off"
1224
1347
  ]
1225
1348
  }
1226
1349
  ],
@@ -1235,9 +1358,11 @@ The following algorithms will be used based on the size of the key:
1235
1358
  "args": [
1236
1359
  {"option": "Hex", "string": "2d767f6e9333d1c77581946e160b2b7368c2cdd5e2b80f04ca09d64e02afbfe1"},
1237
1360
  {"option": "Hex", "string": "1748e7179bd56570d51fa4ba287cc3e5"},
1361
+ 16,
1238
1362
  "CTR", "Hex", "Hex",
1239
1363
  {"option": "Hex", "string": ""},
1240
- {"option": "Hex", "string": ""}
1364
+ {"option": "Hex", "string": ""},
1365
+ "Off"
1241
1366
  ]
1242
1367
  }
1243
1368
  ],
@@ -1252,9 +1377,11 @@ The following algorithms will be used based on the size of the key:
1252
1377
  "args": [
1253
1378
  {"option": "Hex", "string": "2d767f6e9333d1c77581946e160b2b7368c2cdd5e2b80f04ca09d64e02afbfe1"},
1254
1379
  {"option": "Hex", "string": "1748e7179bd56570d51fa4ba287cc3e5"},
1380
+ 16,
1255
1381
  "GCM", "Hex", "Hex",
1256
1382
  {"option": "Hex", "string": "821b1e5f32dad052e502775a523d957a"},
1257
- {"option": "Hex", "string": ""}
1383
+ {"option": "Hex", "string": ""},
1384
+ "Off"
1258
1385
  ]
1259
1386
  }
1260
1387
  ],
@@ -1269,9 +1396,11 @@ The following algorithms will be used based on the size of the key:
1269
1396
  "args": [
1270
1397
  {"option": "Hex", "string": "2d767f6e9333d1c77581946e160b2b7368c2cdd5e2b80f04ca09d64e02afbfe1"},
1271
1398
  {"option": "Hex", "string": "1748e7179bd56570d51fa4ba287cc3e5"},
1399
+ 16,
1272
1400
  "GCM", "Hex", "Hex",
1273
1401
  {"option": "Hex", "string": "a8f04c4d93bbef82bef61a103371aef9"},
1274
- {"option": "UTF8", "string": "additional data"}
1402
+ {"option": "UTF8", "string": "additional data"},
1403
+ "Off"
1275
1404
  ]
1276
1405
  }
1277
1406
  ],
@@ -1286,9 +1415,106 @@ The following algorithms will be used based on the size of the key:
1286
1415
  "args": [
1287
1416
  {"option": "Hex", "string": "2d767f6e9333d1c77581946e160b2b7368c2cdd5e2b80f04ca09d64e02afbfe1"},
1288
1417
  {"option": "Hex", "string": "1748e7179bd56570d51fa4ba287cc3e5"},
1418
+ 16,
1419
+ "ECB", "Hex", "Hex",
1420
+ {"option": "Hex", "string": ""},
1421
+ {"option": "Hex", "string": ""},
1422
+ "Off"
1423
+ ]
1424
+ }
1425
+ ],
1426
+ },
1427
+ {
1428
+ name: "AES Decrypt: IV from input, with too short input",
1429
+ input: "1748e7179bd56570d51fa4ba287cc3e5",
1430
+ expectedOutput: "Input is too short to contain an IV of 16 bytes.",
1431
+ recipeConfig: [
1432
+ {
1433
+ "op": "AES Decrypt",
1434
+ "args": [
1435
+ {"option": "Hex", "string": "2d767f6e9333d1c77581946e160b2b7368c2cdd5e2b80f04ca09d64e02afbfe1"},
1436
+ {"option": "Hex", "string": ""},
1437
+ 16,
1289
1438
  "ECB", "Hex", "Hex",
1290
1439
  {"option": "Hex", "string": ""},
1291
- {"option": "Hex", "string": ""}
1440
+ {"option": "Hex", "string": ""},
1441
+ "From start"
1442
+ ]
1443
+ }
1444
+ ],
1445
+ },
1446
+ {
1447
+ name: "AES Decrypt: AES-256-ECB with IV from input start, Binary",
1448
+ input: "1748e7179bd56570d51fa4ba287cc3e57e8521ba3f356ef692a51841807e141464aadc07bbc0ef2b628b8745bae356d245682a220688afca7be987b60cb120681ed42680ee93a67065619a3beaac11111a6cd88a6afa9e367722cb57df343f8548f2d691b295184da4ed5f3b763aaa8558502cb348ab58e81986337096e90caa",
1449
+ expectedOutput: "7a0e643132750e96d805d11e9e48e281fa39a41039286423cc1c045e5442b40bf1c3f2822bded3f9c8ef11cb25da64dda9c7ab87c246bd305385150c98f31465c2a6180fe81d31ea289b916504d5a12e1de26cb10adba84a0cb0c86f94bc14bc554f3018",
1450
+ recipeConfig: [
1451
+ {
1452
+ "op": "AES Decrypt",
1453
+ "args": [
1454
+ {"option": "Hex", "string": "2d767f6e9333d1c77581946e160b2b7368c2cdd5e2b80f04ca09d64e02afbfe1"},
1455
+ {"option": "Hex", "string": ""},
1456
+ 16,
1457
+ "ECB", "Hex", "Hex",
1458
+ {"option": "Hex", "string": ""},
1459
+ {"option": "Hex", "string": ""},
1460
+ "From start"
1461
+ ]
1462
+ }
1463
+ ],
1464
+ },
1465
+ {
1466
+ name: "AES Decrypt: AES-256-ECB with IV from input end, Binary",
1467
+ input: "7e8521ba3f356ef692a51841807e141464aadc07bbc0ef2b628b8745bae356d245682a220688afca7be987b60cb120681ed42680ee93a67065619a3beaac11111a6cd88a6afa9e367722cb57df343f8548f2d691b295184da4ed5f3b763aaa8558502cb348ab58e81986337096e90caa1748e7179bd56570d51fa4ba287cc3e5",
1468
+ expectedOutput: "7a0e643132750e96d805d11e9e48e281fa39a41039286423cc1c045e5442b40bf1c3f2822bded3f9c8ef11cb25da64dda9c7ab87c246bd305385150c98f31465c2a6180fe81d31ea289b916504d5a12e1de26cb10adba84a0cb0c86f94bc14bc554f3018",
1469
+ recipeConfig: [
1470
+ {
1471
+ "op": "AES Decrypt",
1472
+ "args": [
1473
+ {"option": "Hex", "string": "2d767f6e9333d1c77581946e160b2b7368c2cdd5e2b80f04ca09d64e02afbfe1"},
1474
+ {"option": "Hex", "string": ""},
1475
+ 16,
1476
+ "ECB", "Hex", "Hex",
1477
+ {"option": "Hex", "string": ""},
1478
+ {"option": "Hex", "string": ""},
1479
+ "From end"
1480
+ ]
1481
+ }
1482
+ ],
1483
+ },
1484
+ {
1485
+ name: "AES Decrypt: AES-256-GCM with IV from input start, Binary, AAD",
1486
+ input: "1748e7179bd56570d51fa4ba287cc3e51287f188ad4d7ab0d9ff69b3c29cb11f861389532d8cb9337181da2e8cfc74a84927e8c0dd7a28a32fd485afe694259a63c199b199b95edd87c7aa95329feac340f2b78b72956a85f367044d821766b1b7135815571df44900695f1518cf3ae38ecb650f",
1487
+ expectedOutput: "7a0e643132750e96d805d11e9e48e281fa39a41039286423cc1c045e5442b40bf1c3f2822bded3f9c8ef11cb25da64dda9c7ab87c246bd305385150c98f31465c2a6180fe81d31ea289b916504d5a12e1de26cb10adba84a0cb0c86f94bc14bc554f3018",
1488
+ recipeConfig: [
1489
+ {
1490
+ "op": "AES Decrypt",
1491
+ "args": [
1492
+ {"option": "Hex", "string": "2d767f6e9333d1c77581946e160b2b7368c2cdd5e2b80f04ca09d64e02afbfe1"},
1493
+ {"option": "Hex", "string": ""},
1494
+ 16,
1495
+ "GCM", "Hex", "Hex",
1496
+ {"option": "Hex", "string": "a8f04c4d93bbef82bef61a103371aef9"},
1497
+ {"option": "UTF8", "string": "additional data"},
1498
+ "From start"
1499
+ ]
1500
+ }
1501
+ ],
1502
+ },
1503
+ {
1504
+ name: "AES Decrypt: AES-256-GCM with 12-byte IV from input start, Binary, AAD",
1505
+ input: "1748e7179bd56570d51fa4ba623c81f4605da9ac3df29c67c43abe4aad5230dca82a98ab31f042fe871b81a0a1e8b8af41044d46f627828e7d11eca2d04ac27f4e7c7c9a20da87854df9868a2ddbd67d85f7db92f9ff1272cfb7955a2d279dbe715965011fddf6e730e79e7b22f89817",
1506
+ expectedOutput: "7a0e643132750e96d805d11e9e48e281fa39a41039286423cc1c045e5442b40bf1c3f2822bded3f9c8ef11cb25da64dda9c7ab87c246bd305385150c98f31465c2a6180fe81d31ea289b916504d5a12e1de26cb10adba84a0cb0c86f94bc14bc554f3018",
1507
+ recipeConfig: [
1508
+ {
1509
+ "op": "AES Decrypt",
1510
+ "args": [
1511
+ {"option": "Hex", "string": "2d767f6e9333d1c77581946e160b2b7368c2cdd5e2b80f04ca09d64e02afbfe1"},
1512
+ {"option": "Hex", "string": ""},
1513
+ 12,
1514
+ "GCM", "Hex", "Hex",
1515
+ {"option": "Hex", "string": "c311c9144f8ae145ec46e2c69179a4b7"},
1516
+ {"option": "UTF8", "string": "additional data"},
1517
+ "From start"
1292
1518
  ]
1293
1519
  }
1294
1520
  ],