Cipher.js 68 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376
  1. /**
  2. * Cipher tests.
  3. *
  4. * @author Matt C [matt@artemisbot.uk]
  5. * @author n1474335 [n1474335@gmail.com]
  6. *
  7. * @copyright Crown Copyright 2017
  8. * @license Apache-2.0
  9. */
  10. import TestRegister from "../../TestRegister.js";
  11. TestRegister.addTests([
  12. {
  13. name: "Bifid Cipher Encode: no input",
  14. input: "",
  15. expectedOutput: "",
  16. recipeConfig: [
  17. {
  18. "op": "Bifid Cipher Encode",
  19. "args": ["nothing"]
  20. }
  21. ],
  22. },
  23. {
  24. name: "Bifid Cipher Encode: no key",
  25. input: "We recreate conditions similar to the Van-Allen radiation belt in our secure facilities.",
  26. expectedOutput: "Vq daqcliho rmltofvlnc qbdhlcr nt qdq Fbm-Rdkkm vuoottnoi aitp al axf tdtmvt owppkaodtx.",
  27. recipeConfig: [
  28. {
  29. "op": "Bifid Cipher Encode",
  30. "args": [""]
  31. }
  32. ],
  33. },
  34. {
  35. name: "Bifid Cipher Encode: normal",
  36. input: "We recreate conditions similar to the Van-Allen radiation belt in our secure facilities.",
  37. expectedOutput: "Wc snpsigdd cpfrrcxnfi hikdnnp dm crc Fcb-Pdeug vueageacc vtyl sa zxm crebzp lyoeuaiwpv.",
  38. recipeConfig: [
  39. {
  40. "op": "Bifid Cipher Encode",
  41. "args": ["Schrodinger"]
  42. }
  43. ],
  44. },
  45. {
  46. name: "Bifid Cipher Decode: no input",
  47. input: "",
  48. expectedOutput: "",
  49. recipeConfig: [
  50. {
  51. "op": "Bifid Cipher Decode",
  52. "args": ["nothing"]
  53. }
  54. ],
  55. },
  56. {
  57. name: "Bifid Cipher Decode: no key",
  58. input: "Vq daqcliho rmltofvlnc qbdhlcr nt qdq Fbm-Rdkkm vuoottnoi aitp al axf tdtmvt owppkaodtx.",
  59. expectedOutput: "We recreate conditions similar to the Van-Allen radiation belt in our secure facilities.",
  60. recipeConfig: [
  61. {
  62. "op": "Bifid Cipher Decode",
  63. "args": [""]
  64. }
  65. ],
  66. },
  67. {
  68. name: "Bifid Cipher Decode: normal",
  69. input: "Wc snpsigdd cpfrrcxnfi hikdnnp dm crc Fcb-Pdeug vueageacc vtyl sa zxm crebzp lyoeuaiwpv.",
  70. expectedOutput: "We recreate conditions similar to the Van-Allen radiation belt in our secure facilities.",
  71. recipeConfig: [
  72. {
  73. "op": "Bifid Cipher Decode",
  74. "args": ["Schrodinger"]
  75. }
  76. ],
  77. },
  78. /**
  79. * Ciphers
  80. *
  81. * The following expectedOutputs were generated using the following command format:
  82. * > openssl enc -aes-128-cbc -in test.txt -out test.enc -K "00112233445566778899aabbccddeeff" -iv "00112233445566778899aabbccddeeff"
  83. * > xxd -p test.enc | tr -d '\n' | xclip -selection clipboard
  84. *
  85. * All random data blocks (binary input, keys and IVs) were generated from /dev/urandom using dd:
  86. * > dd if=/dev/urandom of=key.txt bs=16 count=1
  87. */
  88. {
  89. name: "AES Encrypt: no key",
  90. input: "",
  91. expectedOutput: `Invalid key length: 0 bytes
  92. The following algorithms will be used based on the size of the key:
  93. 16 bytes = AES-128
  94. 24 bytes = AES-192
  95. 32 bytes = AES-256`,
  96. recipeConfig: [
  97. {
  98. "op": "AES Encrypt",
  99. "args": [
  100. {"option": "Hex", "string": ""},
  101. {"option": "Hex", "string": ""},
  102. "CBC", "Raw", "Hex"
  103. ]
  104. }
  105. ],
  106. },
  107. {
  108. name: "AES Encrypt: AES-128-CBC, no IV, ASCII",
  109. input: "The quick brown fox jumps over the lazy dog.",
  110. expectedOutput: "2ef6c3fdb1314b5c2c326a2087fe1a82d5e73bf605ec8431d73e847187fc1c8fbbe969c177df1ecdf8c13f2f505f9498",
  111. recipeConfig: [
  112. {
  113. "op": "AES Encrypt",
  114. "args": [
  115. {"option": "Hex", "string": "00112233445566778899aabbccddeeff"},
  116. {"option": "Hex", "string": ""},
  117. "CBC", "Raw", "Hex"
  118. ]
  119. }
  120. ],
  121. },
  122. {
  123. name: "AES Encrypt: AES-128-CBC with IV, ASCII",
  124. input: "The quick brown fox jumps over the lazy dog.",
  125. expectedOutput: "4fa077d50cc71a57393e7b542c4e3aea0fb75383b97083f2f568ffc13c0e7a47502ec6d9f25744a061a3a5e55fe95e8d",
  126. recipeConfig: [
  127. {
  128. "op": "AES Encrypt",
  129. "args": [
  130. {"option": "Hex", "string": "00112233445566778899aabbccddeeff"},
  131. {"option": "Hex", "string": "00112233445566778899aabbccddeeff"},
  132. "CBC", "Raw", "Hex"
  133. ]
  134. }
  135. ],
  136. },
  137. {
  138. name: "AES Encrypt: AES-128-CFB, ASCII",
  139. input: "The quick brown fox jumps over the lazy dog.",
  140. expectedOutput: "369e1c9e5a85b0520f3e61eecc37759246ad0a02cae7a99a3d250ae39cad4743385375cf63720d52ae8cdfb9",
  141. recipeConfig: [
  142. {
  143. "op": "AES Encrypt",
  144. "args": [
  145. {"option": "Hex", "string": "00112233445566778899aabbccddeeff"},
  146. {"option": "Hex", "string": "00112233445566778899aabbccddeeff"},
  147. "CFB", "Raw", "Hex"
  148. ]
  149. }
  150. ],
  151. },
  152. {
  153. name: "AES Encrypt: AES-128-OFB, ASCII",
  154. input: "The quick brown fox jumps over the lazy dog.",
  155. expectedOutput: "369e1c9e5a85b0520f3e61eecc37759288cb378c5fa9c675bd6c4ede0ae6a925eaebc8e0a6162d2a000ddc0f",
  156. recipeConfig: [
  157. {
  158. "op": "AES Encrypt",
  159. "args": [
  160. {"option": "Hex", "string": "00112233445566778899aabbccddeeff"},
  161. {"option": "Hex", "string": "00112233445566778899aabbccddeeff"},
  162. "OFB", "Raw", "Hex"
  163. ]
  164. }
  165. ],
  166. },
  167. {
  168. name: "AES Encrypt: AES-128-CTR, ASCII",
  169. input: "The quick brown fox jumps over the lazy dog.",
  170. expectedOutput: "369e1c9e5a85b0520f3e61eecc37759206f6f1ba63527af96fae3b15a921844df2e542902a4f0525dbb4146b",
  171. recipeConfig: [
  172. {
  173. "op": "AES Encrypt",
  174. "args": [
  175. {"option": "Hex", "string": "00112233445566778899aabbccddeeff"},
  176. {"option": "Hex", "string": "00112233445566778899aabbccddeeff"},
  177. "CTR", "Raw", "Hex"
  178. ]
  179. }
  180. ],
  181. },
  182. {
  183. name: "AES Encrypt: AES-128-ECB, ASCII",
  184. input: "The quick brown fox jumps over the lazy dog.",
  185. expectedOutput: "2ef6c3fdb1314b5c2c326a2087fe1a8238c5a5db7dff38f6f4eb75b2e55cab3d8d6113eb8d3517223b4545fcdb4c5a48",
  186. recipeConfig: [
  187. {
  188. "op": "AES Encrypt",
  189. "args": [
  190. {"option": "Hex", "string": "00112233445566778899aabbccddeeff"},
  191. {"option": "Hex", "string": ""},
  192. "ECB", "Raw", "Hex"
  193. ]
  194. }
  195. ],
  196. },
  197. {
  198. name: "AES Encrypt: AES-128-GCM, ASCII",
  199. input: "The quick brown fox jumps over the lazy dog.",
  200. expectedOutput: `d0bcace0fa3a214b0ac3cbb4ac2caaf97b965f172f66d2a4ec6304a15a4072f1b28a6f9b80473f86bfa47b2c
  201. Tag: 16a3e732a605cc9ca29108f742ca0743`,
  202. recipeConfig: [
  203. {
  204. "op": "AES Encrypt",
  205. "args": [
  206. {"option": "Hex", "string": "00112233445566778899aabbccddeeff"},
  207. {"option": "Hex", "string": ""},
  208. "GCM", "Raw", "Hex"
  209. ]
  210. }
  211. ],
  212. },
  213. {
  214. name: "AES Encrypt: AES-128-CBC, Binary",
  215. input: "7a0e643132750e96d805d11e9e48e281fa39a41039286423cc1c045e5442b40bf1c3f2822bded3f9c8ef11cb25da64dda9c7ab87c246bd305385150c98f31465c2a6180fe81d31ea289b916504d5a12e1de26cb10adba84a0cb0c86f94bc14bc554f3018",
  216. expectedOutput: "bf2ccb148e5df181a46f39764047e24fc94cc46bbe6c8d160fc25a977e4b630883e9e04d3eeae3ccbb2d57a4c22e61909f2b6d7b24940abe95d356ce986294270d0513e0ffe7a9928fa6669e1aaae4379310281dc27c0bb9e254684b2ecd7f5f944c8218f3bc680570399a508dfe4b65",
  217. recipeConfig: [
  218. {
  219. "op": "AES Encrypt",
  220. "args": [
  221. {"option": "Hex", "string": "51e201d463698ef5f717f71f5b4712af"},
  222. {"option": "Hex", "string": "1748e7179bd56570d51fa4ba287cc3e5"},
  223. "CBC", "Hex", "Hex"
  224. ]
  225. }
  226. ],
  227. },
  228. {
  229. name: "AES Encrypt: AES-128-CFB, Binary",
  230. input: "7a0e643132750e96d805d11e9e48e281fa39a41039286423cc1c045e5442b40bf1c3f2822bded3f9c8ef11cb25da64dda9c7ab87c246bd305385150c98f31465c2a6180fe81d31ea289b916504d5a12e1de26cb10adba84a0cb0c86f94bc14bc554f3018",
  231. expectedOutput: "17211941bb2fa43d54d9fa59072436422a55be7a2be164cf5ec4e50e7a0035094ab684dab8d45a4515ae95c4136ded98898f74d4ecc4ac57ae682a985031ecb7518ddea6c8d816349801aa22ff0b6ac1784d169060efcd9fb77d564477038eb09bb4e1ce",
  232. recipeConfig: [
  233. {
  234. "op": "AES Encrypt",
  235. "args": [
  236. {"option": "Hex", "string": "51e201d463698ef5f717f71f5b4712af"},
  237. {"option": "Hex", "string": "1748e7179bd56570d51fa4ba287cc3e5"},
  238. "CFB", "Hex", "Hex"
  239. ]
  240. }
  241. ],
  242. },
  243. {
  244. name: "AES Encrypt: AES-128-OFB, Binary",
  245. input: "7a0e643132750e96d805d11e9e48e281fa39a41039286423cc1c045e5442b40bf1c3f2822bded3f9c8ef11cb25da64dda9c7ab87c246bd305385150c98f31465c2a6180fe81d31ea289b916504d5a12e1de26cb10adba84a0cb0c86f94bc14bc554f3018",
  246. expectedOutput: "17211941bb2fa43d54d9fa5907243642bfd805201c130c8600566720cf87562011f0872598f1e69cfe541bb864de7ed68201e0a34284157b581984dab3fe2cb0f20cb80d0046740df3e149ec4c92c0e81f2dc439a6f3a05c5ef505eae6308b301c673cfa",
  247. recipeConfig: [
  248. {
  249. "op": "AES Encrypt",
  250. "args": [
  251. {"option": "Hex", "string": "51e201d463698ef5f717f71f5b4712af"},
  252. {"option": "Hex", "string": "1748e7179bd56570d51fa4ba287cc3e5"},
  253. "OFB", "Hex", "Hex"
  254. ]
  255. }
  256. ],
  257. },
  258. {
  259. name: "AES Encrypt: AES-128-CTR, Binary",
  260. input: "7a0e643132750e96d805d11e9e48e281fa39a41039286423cc1c045e5442b40bf1c3f2822bded3f9c8ef11cb25da64dda9c7ab87c246bd305385150c98f31465c2a6180fe81d31ea289b916504d5a12e1de26cb10adba84a0cb0c86f94bc14bc554f3018",
  261. expectedOutput: "17211941bb2fa43d54d9fa5907243642baf08c837003bf24d7b81a911ce41bd31de8a92f6dc6d11135b70c73ea167c3fc4ea78234f58652d25e23245dbcb895bf4165092d0515ae8f14230f8a34b06957f24ba4b24db741490e7edcd6e5310945cc159fc",
  262. recipeConfig: [
  263. {
  264. "op": "AES Encrypt",
  265. "args": [
  266. {"option": "Hex", "string": "51e201d463698ef5f717f71f5b4712af"},
  267. {"option": "Hex", "string": "1748e7179bd56570d51fa4ba287cc3e5"},
  268. "CTR", "Hex", "Hex"
  269. ]
  270. }
  271. ],
  272. },
  273. {
  274. name: "AES Encrypt: AES-128-GCM, Binary",
  275. input: "7a0e643132750e96d805d11e9e48e281fa39a41039286423cc1c045e5442b40bf1c3f2822bded3f9c8ef11cb25da64dda9c7ab87c246bd305385150c98f31465c2a6180fe81d31ea289b916504d5a12e1de26cb10adba84a0cb0c86f94bc14bc554f3018",
  276. expectedOutput: `fa17fcbf5e8763322c1b0c8562e1512ed9d702ef70c1643572b9de3e34ae6b535e6c1b992432aa6d06fb6f80c861262aef66e7c26035afe77bd3861261e4e092b523f058f8ebef2143db21bc16d02f7a011efb07419300cb41c3b884d1d8d6a766b8963c
  277. Tag: fa6bbb34c8cde65a3d7b93fb094fc84f`,
  278. recipeConfig: [
  279. {
  280. "op": "AES Encrypt",
  281. "args": [
  282. {"option": "Hex", "string": "51e201d463698ef5f717f71f5b4712af"},
  283. {"option": "Hex", "string": "1748e7179bd56570d51fa4ba287cc3e5"},
  284. "GCM", "Hex", "Hex"
  285. ]
  286. }
  287. ],
  288. },
  289. {
  290. name: "AES Encrypt: AES-128-ECB, Binary",
  291. input: "7a0e643132750e96d805d11e9e48e281fa39a41039286423cc1c045e5442b40bf1c3f2822bded3f9c8ef11cb25da64dda9c7ab87c246bd305385150c98f31465c2a6180fe81d31ea289b916504d5a12e1de26cb10adba84a0cb0c86f94bc14bc554f3018",
  292. expectedOutput: "869c057637a58cc3363bcc4bcfa62702abf85dff44300eb9fdcfb9d845772c8acb557c8d540baae2489c6758abef83d81b74239bef87c6c944c1b00ca160882bc15be9a6a3de4e6a50a2eab8b635c634027ed7eae4c1d2f08477c38b7dc24f6915da235bc3051f3a50736b14db8863e4",
  293. recipeConfig: [
  294. {
  295. "op": "AES Encrypt",
  296. "args": [
  297. {"option": "Hex", "string": "51e201d463698ef5f717f71f5b4712af"},
  298. {"option": "Hex", "string": "1748e7179bd56570d51fa4ba287cc3e5"},
  299. "ECB", "Hex", "Hex"
  300. ]
  301. }
  302. ],
  303. },
  304. {
  305. name: "AES Encrypt: AES-192-CBC, Binary",
  306. input: "7a0e643132750e96d805d11e9e48e281fa39a41039286423cc1c045e5442b40bf1c3f2822bded3f9c8ef11cb25da64dda9c7ab87c246bd305385150c98f31465c2a6180fe81d31ea289b916504d5a12e1de26cb10adba84a0cb0c86f94bc14bc554f3018",
  307. expectedOutput: "1aec90cd7f629ef68243881f3e2b793a548cbcdad69631995a6bd0c8aea1e948d8a5f3f2b7e7f9b77da77434c92a6257a9f57e937b883f4400511b990888a0b1d27c0a4b7f298e6f50b563135edc9fa7d8eceb6bc8163e6153a20cf07aa1e705bc5cb3a37b0452b4019cef8000d7c1b7",
  308. recipeConfig: [
  309. {
  310. "op": "AES Encrypt",
  311. "args": [
  312. {"option": "Hex", "string": "6801ed503c9d96ee5f9d78b07ab1b295dba3c2adf81c7816"},
  313. {"option": "Hex", "string": "1748e7179bd56570d51fa4ba287cc3e5"},
  314. "CBC", "Hex", "Hex"
  315. ]
  316. }
  317. ],
  318. },
  319. {
  320. name: "AES Encrypt: AES-192-CFB, Binary",
  321. input: "7a0e643132750e96d805d11e9e48e281fa39a41039286423cc1c045e5442b40bf1c3f2822bded3f9c8ef11cb25da64dda9c7ab87c246bd305385150c98f31465c2a6180fe81d31ea289b916504d5a12e1de26cb10adba84a0cb0c86f94bc14bc554f3018",
  322. expectedOutput: "fc370a6c013b3c05430fbce810cb97d39cb0a587320a4c1b57d0c0d08e93cb0d1221abba9df09b4b1332ce923b289f92000e6b4f7fbc55dfdab9179081d8c36ef4a0e3d3a49f1564715c5d3e88f8bf6d3dd77944f22f99a03b5535a3cd47bc44d4a9665c",
  323. recipeConfig: [
  324. {
  325. "op": "AES Encrypt",
  326. "args": [
  327. {"option": "Hex", "string": "6801ed503c9d96ee5f9d78b07ab1b295dba3c2adf81c7816"},
  328. {"option": "Hex", "string": "1748e7179bd56570d51fa4ba287cc3e5"},
  329. "CFB", "Hex", "Hex"
  330. ]
  331. }
  332. ],
  333. },
  334. {
  335. name: "AES Encrypt: AES-192-OFB, Binary",
  336. input: "7a0e643132750e96d805d11e9e48e281fa39a41039286423cc1c045e5442b40bf1c3f2822bded3f9c8ef11cb25da64dda9c7ab87c246bd305385150c98f31465c2a6180fe81d31ea289b916504d5a12e1de26cb10adba84a0cb0c86f94bc14bc554f3018",
  337. expectedOutput: "fc370a6c013b3c05430fbce810cb97d33605d11b2531c8833bc3e818003bbd7dd58b2a38d10d44d25d11bd96228b264a4d2aad1d0a7af2cfad0e70c1ade305433e95cb0ee693447f6877a59a4be5c070d19afba23ff10caf5ecfa7a9c2877b8df23d61f2",
  338. recipeConfig: [
  339. {
  340. "op": "AES Encrypt",
  341. "args": [
  342. {"option": "Hex", "string": "6801ed503c9d96ee5f9d78b07ab1b295dba3c2adf81c7816"},
  343. {"option": "Hex", "string": "1748e7179bd56570d51fa4ba287cc3e5"},
  344. "OFB", "Hex", "Hex"
  345. ]
  346. }
  347. ],
  348. },
  349. {
  350. name: "AES Encrypt: AES-192-CTR, Binary",
  351. input: "7a0e643132750e96d805d11e9e48e281fa39a41039286423cc1c045e5442b40bf1c3f2822bded3f9c8ef11cb25da64dda9c7ab87c246bd305385150c98f31465c2a6180fe81d31ea289b916504d5a12e1de26cb10adba84a0cb0c86f94bc14bc554f3018",
  352. expectedOutput: "fc370a6c013b3c05430fbce810cb97d340525303ae59c5e9b73ad5ff3e65ce3abf00431e0a292d990f732a397de589420827beb1c28623c56972eb2ddf0cf3f82e3c30e155df7f64a530419c28fc51a9091c73df78e73958bee1d1acd8676c9c0f1915ca",
  353. recipeConfig: [
  354. {
  355. "op": "AES Encrypt",
  356. "args": [
  357. {"option": "Hex", "string": "6801ed503c9d96ee5f9d78b07ab1b295dba3c2adf81c7816"},
  358. {"option": "Hex", "string": "1748e7179bd56570d51fa4ba287cc3e5"},
  359. "CTR", "Hex", "Hex"
  360. ]
  361. }
  362. ],
  363. },
  364. {
  365. name: "AES Encrypt: AES-192-GCM, Binary",
  366. input: "7a0e643132750e96d805d11e9e48e281fa39a41039286423cc1c045e5442b40bf1c3f2822bded3f9c8ef11cb25da64dda9c7ab87c246bd305385150c98f31465c2a6180fe81d31ea289b916504d5a12e1de26cb10adba84a0cb0c86f94bc14bc554f3018",
  367. expectedOutput: `ed22946f96964d300b45f5ce2d9601ba87682da1a603c90e6d4f7738729b0602f613ee392c9bfc7792594474f1213fb99185851f02ece4df0e93995e49f97aa4d0a337d7a80d83e4219dae5a3d36658f8659cdd5ed7c32707f98656fab7fb43f7a61e37c
  368. Tag: be17cb31edb77f648b9d1032b235b33d`,
  369. recipeConfig: [
  370. {
  371. "op": "AES Encrypt",
  372. "args": [
  373. {"option": "Hex", "string": "6801ed503c9d96ee5f9d78b07ab1b295dba3c2adf81c7816"},
  374. {"option": "Hex", "string": "1748e7179bd56570d51fa4ba287cc3e5"},
  375. "GCM", "Hex", "Hex"
  376. ]
  377. }
  378. ],
  379. },
  380. {
  381. name: "AES Encrypt: AES-192-ECB, Binary",
  382. input: "7a0e643132750e96d805d11e9e48e281fa39a41039286423cc1c045e5442b40bf1c3f2822bded3f9c8ef11cb25da64dda9c7ab87c246bd305385150c98f31465c2a6180fe81d31ea289b916504d5a12e1de26cb10adba84a0cb0c86f94bc14bc554f3018",
  383. expectedOutput: "56ef533db50a3b33951a76acede52b7d54fbae7fb07da20daa3e2731e5721ee4c13ab15ac80748c14dece982310530ad65480512a4cf70201473fb7bc3480446bc86b1ff9b4517c4c1f656bc236fab1aca276ae5af25f5871b671823f3cb3e426da059dd83a13f125bd6cfe600c331b0",
  384. recipeConfig: [
  385. {
  386. "op": "AES Encrypt",
  387. "args": [
  388. {"option": "Hex", "string": "6801ed503c9d96ee5f9d78b07ab1b295dba3c2adf81c7816"},
  389. {"option": "Hex", "string": "1748e7179bd56570d51fa4ba287cc3e5"},
  390. "ECB", "Hex", "Hex"
  391. ]
  392. }
  393. ],
  394. },
  395. {
  396. name: "AES Encrypt: AES-256-CBC, Binary",
  397. input: "7a0e643132750e96d805d11e9e48e281fa39a41039286423cc1c045e5442b40bf1c3f2822bded3f9c8ef11cb25da64dda9c7ab87c246bd305385150c98f31465c2a6180fe81d31ea289b916504d5a12e1de26cb10adba84a0cb0c86f94bc14bc554f3018",
  398. expectedOutput: "bc60a7613559e23e8a7be8e98a1459003fdb036f33368d8a30156c51464b49472705a4ddae05da96956ce058bb180dd301c5fd58bf6a2ded0d7dd4da85fd5ba43a4297691532bf7f4cd92bfcfd3704faf2f9bd5425049b34433ba90fb85c80646e6cb09ee4e4059e7cd753a2fef8bbad",
  399. recipeConfig: [
  400. {
  401. "op": "AES Encrypt",
  402. "args": [
  403. {"option": "Hex", "string": "2d767f6e9333d1c77581946e160b2b7368c2cdd5e2b80f04ca09d64e02afbfe1"},
  404. {"option": "Hex", "string": "1748e7179bd56570d51fa4ba287cc3e5"},
  405. "CBC", "Hex", "Hex"
  406. ]
  407. }
  408. ],
  409. },
  410. {
  411. name: "AES Encrypt: AES-256-CFB, Binary",
  412. input: "7a0e643132750e96d805d11e9e48e281fa39a41039286423cc1c045e5442b40bf1c3f2822bded3f9c8ef11cb25da64dda9c7ab87c246bd305385150c98f31465c2a6180fe81d31ea289b916504d5a12e1de26cb10adba84a0cb0c86f94bc14bc554f3018",
  413. expectedOutput: "5dc73709da5cb0ac914ae4bcb621fd75169eac5ff13a2dde573f6380ff812e8ddb58f0e9afaec1ff0d6d2af0659e10c05b714ec97481a15f4a7aeb4c6ea84112ce897459b54ed9e77a794f023f2bef1901f013cf435432fca5fb59e2be781916247d2334",
  414. recipeConfig: [
  415. {
  416. "op": "AES Encrypt",
  417. "args": [
  418. {"option": "Hex", "string": "2d767f6e9333d1c77581946e160b2b7368c2cdd5e2b80f04ca09d64e02afbfe1"},
  419. {"option": "Hex", "string": "1748e7179bd56570d51fa4ba287cc3e5"},
  420. "CFB", "Hex", "Hex"
  421. ]
  422. }
  423. ],
  424. },
  425. {
  426. name: "AES Encrypt: AES-256-OFB, Binary",
  427. input: "7a0e643132750e96d805d11e9e48e281fa39a41039286423cc1c045e5442b40bf1c3f2822bded3f9c8ef11cb25da64dda9c7ab87c246bd305385150c98f31465c2a6180fe81d31ea289b916504d5a12e1de26cb10adba84a0cb0c86f94bc14bc554f3018",
  428. expectedOutput: "5dc73709da5cb0ac914ae4bcb621fd75b6e1f909b88733f784b1df8a52dc200440a1076415d009a7c12cac1e8ab76bdc290e6634cd5bf8a416fda8dcfd7910e55fe9d1148cd85d7a59adad39ab089e111d8f8da246e2e874cf5d9ab7552af6308320a5ab",
  429. recipeConfig: [
  430. {
  431. "op": "AES Encrypt",
  432. "args": [
  433. {"option": "Hex", "string": "2d767f6e9333d1c77581946e160b2b7368c2cdd5e2b80f04ca09d64e02afbfe1"},
  434. {"option": "Hex", "string": "1748e7179bd56570d51fa4ba287cc3e5"},
  435. "OFB", "Hex", "Hex"
  436. ]
  437. }
  438. ],
  439. },
  440. {
  441. name: "AES Encrypt: AES-256-CTR, Binary",
  442. input: "7a0e643132750e96d805d11e9e48e281fa39a41039286423cc1c045e5442b40bf1c3f2822bded3f9c8ef11cb25da64dda9c7ab87c246bd305385150c98f31465c2a6180fe81d31ea289b916504d5a12e1de26cb10adba84a0cb0c86f94bc14bc554f3018",
  443. expectedOutput: "5dc73709da5cb0ac914ae4bcb621fd7591356d4169898c986a90b193f4d1f0d5cba1d10b2bfc5aee8a48dce9dba174cecf56f92dddf7eb306d78360000eea7bcb50f696d84a3757a822800ed68f9edf118dc61406bacf64f022717d8cb6010049bf75d7e",
  444. recipeConfig: [
  445. {
  446. "op": "AES Encrypt",
  447. "args": [
  448. {"option": "Hex", "string": "2d767f6e9333d1c77581946e160b2b7368c2cdd5e2b80f04ca09d64e02afbfe1"},
  449. {"option": "Hex", "string": "1748e7179bd56570d51fa4ba287cc3e5"},
  450. "CTR", "Hex", "Hex"
  451. ]
  452. }
  453. ],
  454. },
  455. {
  456. name: "AES Encrypt: AES-256-GCM, Binary",
  457. input: "7a0e643132750e96d805d11e9e48e281fa39a41039286423cc1c045e5442b40bf1c3f2822bded3f9c8ef11cb25da64dda9c7ab87c246bd305385150c98f31465c2a6180fe81d31ea289b916504d5a12e1de26cb10adba84a0cb0c86f94bc14bc554f3018",
  458. expectedOutput: `e3f1b236eaf3b9df69df8133a1b417fa42b242d8ad49e4d2f3469aca7e2a41737e4f2c8a0d212143287088fad51743577dc6dfa8ed328ca90113cbeb9b137926b2168cc037bdc371777e6ee02b9d9c017b6054fd83d43b4885fbe9c044a8574f1491a893
  459. Tag: 23ddbd3ee4de33f98a9ea9a170bdf268`,
  460. recipeConfig: [
  461. {
  462. "op": "AES Encrypt",
  463. "args": [
  464. {"option": "Hex", "string": "2d767f6e9333d1c77581946e160b2b7368c2cdd5e2b80f04ca09d64e02afbfe1"},
  465. {"option": "Hex", "string": "1748e7179bd56570d51fa4ba287cc3e5"},
  466. "GCM", "Hex", "Hex"
  467. ]
  468. }
  469. ],
  470. },
  471. {
  472. name: "AES Encrypt: AES-256-ECB, Binary",
  473. input: "7a0e643132750e96d805d11e9e48e281fa39a41039286423cc1c045e5442b40bf1c3f2822bded3f9c8ef11cb25da64dda9c7ab87c246bd305385150c98f31465c2a6180fe81d31ea289b916504d5a12e1de26cb10adba84a0cb0c86f94bc14bc554f3018",
  474. expectedOutput: "7e8521ba3f356ef692a51841807e141464aadc07bbc0ef2b628b8745bae356d245682a220688afca7be987b60cb120681ed42680ee93a67065619a3beaac11111a6cd88a6afa9e367722cb57df343f8548f2d691b295184da4ed5f3b763aaa8558502cb348ab58e81986337096e90caa",
  475. recipeConfig: [
  476. {
  477. "op": "AES Encrypt",
  478. "args": [
  479. {"option": "Hex", "string": "2d767f6e9333d1c77581946e160b2b7368c2cdd5e2b80f04ca09d64e02afbfe1"},
  480. {"option": "Hex", "string": "1748e7179bd56570d51fa4ba287cc3e5"},
  481. "ECB", "Hex", "Hex"
  482. ]
  483. }
  484. ],
  485. },
  486. {
  487. name: "DES Encrypt: no key",
  488. input: "",
  489. expectedOutput: `Invalid key length: 0 bytes
  490. DES uses a key length of 8 bytes (64 bits).
  491. Triple DES uses a key length of 24 bytes (192 bits).`,
  492. recipeConfig: [
  493. {
  494. "op": "DES Encrypt",
  495. "args": [
  496. {"option": "Hex", "string": ""},
  497. {"option": "Hex", "string": ""},
  498. "CBC", "Hex", "Hex"
  499. ]
  500. }
  501. ],
  502. },
  503. {
  504. name: "DES Encrypt: DES-CBC, Binary",
  505. input: "7a0e643132750e96d805d11e9e48e281fa39a41039286423cc1c045e5442b40bf1c3f2822bded3f9c8ef11cb25da64dda9c7ab87c246bd305385150c98f31465c2a6180fe81d31ea289b916504d5a12e1de26cb10adba84a0cb0c86f94bc14bc554f3018",
  506. expectedOutput: "6500defb824b0eb8ccbf1fa9689c6f5bcc65247d93ecb0e573232824bca82dd41e2361f8fd82ef187de9f3b74f7ba3ca2b4e735f3ca6304fb8dd1675933c576424b1ea72b3219bdab62fce56d49c820d5ac02a4702a6d688e90b0933de97da21e4829e5cf85caae8",
  507. recipeConfig: [
  508. {
  509. "op": "DES Encrypt",
  510. "args": [
  511. {"option": "Hex", "string": "58345efb0a64e87e"},
  512. {"option": "Hex", "string": "533ed1378bfd929e"},
  513. "CBC", "Hex", "Hex"
  514. ]
  515. }
  516. ],
  517. },
  518. {
  519. name: "DES Encrypt: DES-CFB, Binary",
  520. input: "7a0e643132750e96d805d11e9e48e281fa39a41039286423cc1c045e5442b40bf1c3f2822bded3f9c8ef11cb25da64dda9c7ab87c246bd305385150c98f31465c2a6180fe81d31ea289b916504d5a12e1de26cb10adba84a0cb0c86f94bc14bc554f3018",
  521. expectedOutput: "09015087e15b09374bc9edba80ce41e6809e332fc1e988858749fb2f4ebbd6483a6fce01a43271280c07c90e13d517729acac45beef7d088339eb7e084bbbb7459fc8bb592d2ca76b90066dc79b1fbc5e016208e1d02c6e48ab675530f8040e53e1a138b",
  522. recipeConfig: [
  523. {
  524. "op": "DES Encrypt",
  525. "args": [
  526. {"option": "Hex", "string": "58345efb0a64e87e"},
  527. {"option": "Hex", "string": "533ed1378bfd929e"},
  528. "CFB", "Hex", "Hex"
  529. ]
  530. }
  531. ],
  532. },
  533. {
  534. name: "DES Encrypt: DES-OFB, Binary",
  535. input: "7a0e643132750e96d805d11e9e48e281fa39a41039286423cc1c045e5442b40bf1c3f2822bded3f9c8ef11cb25da64dda9c7ab87c246bd305385150c98f31465c2a6180fe81d31ea289b916504d5a12e1de26cb10adba84a0cb0c86f94bc14bc554f3018",
  536. expectedOutput: "09015087e15b09374d8879bac14dbad851dd08fb131353a8c510acc4570e97720dd159465f1c7da3cac4a50521e1c1ab87e8cf5b0aa0c1d2eaa8a1ed914a26c13b2b0a76a368f08812fc7fa4b7c047f27df0c35e5f53b8a20e2ffc10e55d388cae8070db",
  537. recipeConfig: [
  538. {
  539. "op": "DES Encrypt",
  540. "args": [
  541. {"option": "Hex", "string": "58345efb0a64e87e"},
  542. {"option": "Hex", "string": "533ed1378bfd929e"},
  543. "OFB", "Hex", "Hex"
  544. ]
  545. }
  546. ],
  547. },
  548. {
  549. name: "DES Encrypt: DES-CTR, Binary",
  550. input: "7a0e643132750e96d805d11e9e48e281fa39a41039286423cc1c045e5442b40bf1c3f2822bded3f9c8ef11cb25da64dda9c7ab87c246bd305385150c98f31465c2a6180fe81d31ea289b916504d5a12e1de26cb10adba84a0cb0c86f94bc14bc554f3018",
  551. expectedOutput: "09015087e15b0937ab0ae5a84d66e520893690a6ea066382bf1330e8876cb3aa82ccc634f8f0d458bbe0257df6f4637cdac89f311168ba91208a21ba4bdd13c4b1a92cb93b33364b5b94a5d3d7fba68f6eed5807d9f5afeb7fbffcd94792131d264004ae",
  552. recipeConfig: [
  553. {
  554. "op": "DES Encrypt",
  555. "args": [
  556. {"option": "Hex", "string": "58345efb0a64e87e"},
  557. {"option": "Hex", "string": "533ed1378bfd929e"},
  558. "CTR", "Hex", "Hex"
  559. ]
  560. }
  561. ],
  562. },
  563. {
  564. name: "DES Encrypt: DES-ECB, Binary",
  565. input: "7a0e643132750e96d805d11e9e48e281fa39a41039286423cc1c045e5442b40bf1c3f2822bded3f9c8ef11cb25da64dda9c7ab87c246bd305385150c98f31465c2a6180fe81d31ea289b916504d5a12e1de26cb10adba84a0cb0c86f94bc14bc554f3018",
  566. expectedOutput: "8dea4c6a35d5f6a419232159a0b039798d0a0b20fd1e559b1d04f8eb1120e8bca6ed5b3a4bc2b23d3b62312e6085d9e837677569fe79a65eba7cb4a2969e099fc1bd649e9c8aeb2c4c519e085db6974819257c20fde70acabc976308cc41635038c91acf5eefff1e",
  567. recipeConfig: [
  568. {
  569. "op": "DES Encrypt",
  570. "args": [
  571. {"option": "Hex", "string": "58345efb0a64e87e"},
  572. {"option": "Hex", "string": "533ed1378bfd929e"},
  573. "ECB", "Hex", "Hex"
  574. ]
  575. }
  576. ],
  577. },
  578. {
  579. name: "Triple DES Encrypt: no key",
  580. input: "",
  581. expectedOutput: `Invalid key length: 0 bytes
  582. Triple DES uses a key length of 24 bytes (192 bits).
  583. DES uses a key length of 8 bytes (64 bits).`,
  584. recipeConfig: [
  585. {
  586. "op": "Triple DES Encrypt",
  587. "args": [
  588. {"option": "Hex", "string": ""},
  589. {"option": "Hex", "string": ""},
  590. "CBC", "Hex", "Hex"
  591. ]
  592. }
  593. ],
  594. },
  595. {
  596. name: "Triple DES Encrypt: DES-EDE3-CBC, Binary",
  597. input: "7a0e643132750e96d805d11e9e48e281fa39a41039286423cc1c045e5442b40bf1c3f2822bded3f9c8ef11cb25da64dda9c7ab87c246bd305385150c98f31465c2a6180fe81d31ea289b916504d5a12e1de26cb10adba84a0cb0c86f94bc14bc554f3018",
  598. expectedOutput: "f826c9116ea932eb7027a810b5ce21109c4ef2563c9f3ba5e2518f72484e88f8d3f6ff3f334f64bb6bb9ff91b70f6f29c037b10dee5fe16d7f0f41c9a7ecdd83f113a1dd66ab70783ee458c2366bf5fbc016f7c168c43c11d607692a3280e3750a6154a86b62c48d",
  599. recipeConfig: [
  600. {
  601. "op": "Triple DES Encrypt",
  602. "args": [
  603. {"option": "Hex", "string": "190da55fb54b9e7dd6de05f43bf3347ef203cd34a5829b23"},
  604. {"option": "Hex", "string": "14f67ac044a84da6"},
  605. "CBC", "Hex", "Hex"
  606. ]
  607. }
  608. ],
  609. },
  610. {
  611. name: "Triple DES Encrypt: DES-EDE3-CFB, Binary",
  612. input: "7a0e643132750e96d805d11e9e48e281fa39a41039286423cc1c045e5442b40bf1c3f2822bded3f9c8ef11cb25da64dda9c7ab87c246bd305385150c98f31465c2a6180fe81d31ea289b916504d5a12e1de26cb10adba84a0cb0c86f94bc14bc554f3018",
  613. expectedOutput: "874d32cd7bdae52c3690875e265a2fac7ced685e5ec4436a6bb5a5c18be185f4526683a5bc7ae86f00523034fb725ab4c8285a6967ccca1b76f6331718c26e12ea67fc924071f81ce0035a9dd31705bcd6467991cae5504d70424e6339459db5b33cbc8a",
  614. recipeConfig: [
  615. {
  616. "op": "Triple DES Encrypt",
  617. "args": [
  618. {"option": "Hex", "string": "190da55fb54b9e7dd6de05f43bf3347ef203cd34a5829b23"},
  619. {"option": "Hex", "string": "14f67ac044a84da6"},
  620. "CFB", "Hex", "Hex"
  621. ]
  622. }
  623. ],
  624. },
  625. {
  626. name: "Triple DES Encrypt: DES-EDE3-OFB, Binary",
  627. input: "7a0e643132750e96d805d11e9e48e281fa39a41039286423cc1c045e5442b40bf1c3f2822bded3f9c8ef11cb25da64dda9c7ab87c246bd305385150c98f31465c2a6180fe81d31ea289b916504d5a12e1de26cb10adba84a0cb0c86f94bc14bc554f3018",
  628. expectedOutput: "874d32cd7bdae52c8f61672860f715d14819c0270320a8ad71083b38bd8954bbada3c77af641590b00a678524d748668fe3dfa83f71835c411cdbdd8e73a70656324b7faaba16e1d8dba260d8f965fe7a91110134c19076f1eeb46393038c22c559fe490",
  629. recipeConfig: [
  630. {
  631. "op": "Triple DES Encrypt",
  632. "args": [
  633. {"option": "Hex", "string": "190da55fb54b9e7dd6de05f43bf3347ef203cd34a5829b23"},
  634. {"option": "Hex", "string": "14f67ac044a84da6"},
  635. "OFB", "Hex", "Hex"
  636. ]
  637. }
  638. ],
  639. },
  640. {
  641. name: "Triple DES Encrypt: DES-EDE3-CTR, Binary",
  642. input: "7a0e643132750e96d805d11e9e48e281fa39a41039286423cc1c045e5442b40bf1c3f2822bded3f9c8ef11cb25da64dda9c7ab87c246bd305385150c98f31465c2a6180fe81d31ea289b916504d5a12e1de26cb10adba84a0cb0c86f94bc14bc554f3018",
  643. expectedOutput: "874d32cd7bdae52c254687e2d7e7093b077af2ec70878f99315f52a21ded5fb10c80a47e6271384335ac47376c758f675484fd7b8be9568aaec643f0d15cffdf3fe54ef3a1b2da50d5d8c7994d7a4a94e0a13a4d437443f0f1f39e93dd13ff06a80c66e4",
  644. recipeConfig: [
  645. {
  646. "op": "Triple DES Encrypt",
  647. "args": [
  648. {"option": "Hex", "string": "190da55fb54b9e7dd6de05f43bf3347ef203cd34a5829b23"},
  649. {"option": "Hex", "string": "14f67ac044a84da6"},
  650. "CTR", "Hex", "Hex"
  651. ]
  652. }
  653. ],
  654. },
  655. {
  656. name: "Triple DES Encrypt: DES-EDE3-ECB Binary",
  657. input: "7a0e643132750e96d805d11e9e48e281fa39a41039286423cc1c045e5442b40bf1c3f2822bded3f9c8ef11cb25da64dda9c7ab87c246bd305385150c98f31465c2a6180fe81d31ea289b916504d5a12e1de26cb10adba84a0cb0c86f94bc14bc554f3018",
  658. expectedOutput: "aa81f23d1b3abebd68ac560e051a711c2923843beecddb0f7fe4113bd1874e73cccf3a2a494bb011e154ca2737b4d0eb5978a10316361074ed368d85d5aff5c8555ea101b0a468e58780a74c7830c561674c183c972a2b48931adf789cb16df304e169500f8c95ad",
  659. recipeConfig: [
  660. {
  661. "op": "Triple DES Encrypt",
  662. "args": [
  663. {"option": "Hex", "string": "190da55fb54b9e7dd6de05f43bf3347ef203cd34a5829b23"},
  664. {"option": "Hex", "string": "14f67ac044a84da6"},
  665. "ECB", "Hex", "Hex"
  666. ]
  667. }
  668. ],
  669. },
  670. {
  671. name: "AES Decrypt: no key",
  672. input: "",
  673. expectedOutput: `Invalid key length: 0 bytes
  674. The following algorithms will be used based on the size of the key:
  675. 16 bytes = AES-128
  676. 24 bytes = AES-192
  677. 32 bytes = AES-256`,
  678. recipeConfig: [
  679. {
  680. "op": "AES Decrypt",
  681. "args": [
  682. {"option": "Hex", "string": ""},
  683. {"option": "Hex", "string": ""},
  684. "CBC", "Hex", "Raw",
  685. {"option": "Hex", "string": ""}
  686. ]
  687. }
  688. ],
  689. },
  690. {
  691. name: "AES Decrypt: AES-128-CBC, no IV, ASCII",
  692. input: "2ef6c3fdb1314b5c2c326a2087fe1a82d5e73bf605ec8431d73e847187fc1c8fbbe969c177df1ecdf8c13f2f505f9498",
  693. expectedOutput: "The quick brown fox jumps over the lazy dog.",
  694. recipeConfig: [
  695. {
  696. "op": "AES Decrypt",
  697. "args": [
  698. {"option": "Hex", "string": "00112233445566778899aabbccddeeff"},
  699. {"option": "Hex", "string": ""},
  700. "CBC", "Hex", "Raw",
  701. {"option": "Hex", "string": ""}
  702. ]
  703. }
  704. ],
  705. },
  706. {
  707. name: "AES Decrypt: AES-128-CBC with IV, ASCII",
  708. input: "4fa077d50cc71a57393e7b542c4e3aea0fb75383b97083f2f568ffc13c0e7a47502ec6d9f25744a061a3a5e55fe95e8d",
  709. expectedOutput: "The quick brown fox jumps over the lazy dog.",
  710. recipeConfig: [
  711. {
  712. "op": "AES Decrypt",
  713. "args": [
  714. {"option": "Hex", "string": "00112233445566778899aabbccddeeff"},
  715. {"option": "Hex", "string": "00112233445566778899aabbccddeeff"},
  716. "CBC", "Hex", "Raw",
  717. {"option": "Hex", "string": ""}
  718. ]
  719. }
  720. ],
  721. },
  722. {
  723. name: "AES Decrypt: AES-128-CFB, ASCII",
  724. input: "369e1c9e5a85b0520f3e61eecc37759246ad0a02cae7a99a3d250ae39cad4743385375cf63720d52ae8cdfb9",
  725. expectedOutput: "The quick brown fox jumps over the lazy dog.",
  726. recipeConfig: [
  727. {
  728. "op": "AES Decrypt",
  729. "args": [
  730. {"option": "Hex", "string": "00112233445566778899aabbccddeeff"},
  731. {"option": "Hex", "string": "00112233445566778899aabbccddeeff"},
  732. "CFB", "Hex", "Raw",
  733. {"option": "Hex", "string": ""}
  734. ]
  735. }
  736. ],
  737. },
  738. {
  739. name: "AES Decrypt: AES-128-OFB, ASCII",
  740. input: "369e1c9e5a85b0520f3e61eecc37759288cb378c5fa9c675bd6c4ede0ae6a925eaebc8e0a6162d2a000ddc0f",
  741. expectedOutput: "The quick brown fox jumps over the lazy dog.",
  742. recipeConfig: [
  743. {
  744. "op": "AES Decrypt",
  745. "args": [
  746. {"option": "Hex", "string": "00112233445566778899aabbccddeeff"},
  747. {"option": "Hex", "string": "00112233445566778899aabbccddeeff"},
  748. "OFB", "Hex", "Raw",
  749. {"option": "Hex", "string": ""}
  750. ]
  751. }
  752. ],
  753. },
  754. {
  755. name: "AES Decrypt: AES-128-CTR, ASCII",
  756. input: "369e1c9e5a85b0520f3e61eecc37759206f6f1ba63527af96fae3b15a921844df2e542902a4f0525dbb4146b",
  757. expectedOutput: "The quick brown fox jumps over the lazy dog.",
  758. recipeConfig: [
  759. {
  760. "op": "AES Decrypt",
  761. "args": [
  762. {"option": "Hex", "string": "00112233445566778899aabbccddeeff"},
  763. {"option": "Hex", "string": "00112233445566778899aabbccddeeff"},
  764. "CTR", "Hex", "Raw",
  765. {"option": "Hex", "string": ""}
  766. ]
  767. }
  768. ],
  769. },
  770. {
  771. name: "AES Decrypt: AES-128-ECB, ASCII",
  772. input: "2ef6c3fdb1314b5c2c326a2087fe1a8238c5a5db7dff38f6f4eb75b2e55cab3d8d6113eb8d3517223b4545fcdb4c5a48",
  773. expectedOutput: "The quick brown fox jumps over the lazy dog.",
  774. recipeConfig: [
  775. {
  776. "op": "AES Decrypt",
  777. "args": [
  778. {"option": "Hex", "string": "00112233445566778899aabbccddeeff"},
  779. {"option": "Hex", "string": ""},
  780. "ECB", "Hex", "Raw",
  781. {"option": "Hex", "string": ""}
  782. ]
  783. }
  784. ],
  785. },
  786. {
  787. name: "AES Decrypt: AES-128-GCM, ASCII",
  788. input: "d0bcace0fa3a214b0ac3cbb4ac2caaf97b965f172f66d2a4ec6304a15a4072f1b28a6f9b80473f86bfa47b2c",
  789. expectedOutput: "The quick brown fox jumps over the lazy dog.",
  790. recipeConfig: [
  791. {
  792. "op": "AES Decrypt",
  793. "args": [
  794. {"option": "Hex", "string": "00112233445566778899aabbccddeeff"},
  795. {"option": "Hex", "string": ""},
  796. "GCM", "Hex", "Raw",
  797. {"option": "Hex", "string": "16a3e732a605cc9ca29108f742ca0743"}
  798. ]
  799. }
  800. ],
  801. },
  802. {
  803. name: "AES Decrypt: AES-128-CBC, Binary",
  804. input: "bf2ccb148e5df181a46f39764047e24fc94cc46bbe6c8d160fc25a977e4b630883e9e04d3eeae3ccbb2d57a4c22e61909f2b6d7b24940abe95d356ce986294270d0513e0ffe7a9928fa6669e1aaae4379310281dc27c0bb9e254684b2ecd7f5f944c8218f3bc680570399a508dfe4b65",
  805. expectedOutput: "7a0e643132750e96d805d11e9e48e281fa39a41039286423cc1c045e5442b40bf1c3f2822bded3f9c8ef11cb25da64dda9c7ab87c246bd305385150c98f31465c2a6180fe81d31ea289b916504d5a12e1de26cb10adba84a0cb0c86f94bc14bc554f3018",
  806. recipeConfig: [
  807. {
  808. "op": "AES Decrypt",
  809. "args": [
  810. {"option": "Hex", "string": "51e201d463698ef5f717f71f5b4712af"},
  811. {"option": "Hex", "string": "1748e7179bd56570d51fa4ba287cc3e5"},
  812. "CBC", "Hex", "Hex",
  813. {"option": "Hex", "string": ""}
  814. ]
  815. }
  816. ],
  817. },
  818. {
  819. name: "AES Decrypt: AES-128-CFB, Binary",
  820. input: "17211941bb2fa43d54d9fa59072436422a55be7a2be164cf5ec4e50e7a0035094ab684dab8d45a4515ae95c4136ded98898f74d4ecc4ac57ae682a985031ecb7518ddea6c8d816349801aa22ff0b6ac1784d169060efcd9fb77d564477038eb09bb4e1ce",
  821. expectedOutput: "7a0e643132750e96d805d11e9e48e281fa39a41039286423cc1c045e5442b40bf1c3f2822bded3f9c8ef11cb25da64dda9c7ab87c246bd305385150c98f31465c2a6180fe81d31ea289b916504d5a12e1de26cb10adba84a0cb0c86f94bc14bc554f3018",
  822. recipeConfig: [
  823. {
  824. "op": "AES Decrypt",
  825. "args": [
  826. {"option": "Hex", "string": "51e201d463698ef5f717f71f5b4712af"},
  827. {"option": "Hex", "string": "1748e7179bd56570d51fa4ba287cc3e5"},
  828. "CFB", "Hex", "Hex",
  829. {"option": "Hex", "string": ""}
  830. ]
  831. }
  832. ],
  833. },
  834. {
  835. name: "AES Decrypt: AES-128-OFB, Binary",
  836. input: "17211941bb2fa43d54d9fa5907243642bfd805201c130c8600566720cf87562011f0872598f1e69cfe541bb864de7ed68201e0a34284157b581984dab3fe2cb0f20cb80d0046740df3e149ec4c92c0e81f2dc439a6f3a05c5ef505eae6308b301c673cfa",
  837. expectedOutput: "7a0e643132750e96d805d11e9e48e281fa39a41039286423cc1c045e5442b40bf1c3f2822bded3f9c8ef11cb25da64dda9c7ab87c246bd305385150c98f31465c2a6180fe81d31ea289b916504d5a12e1de26cb10adba84a0cb0c86f94bc14bc554f3018",
  838. recipeConfig: [
  839. {
  840. "op": "AES Decrypt",
  841. "args": [
  842. {"option": "Hex", "string": "51e201d463698ef5f717f71f5b4712af"},
  843. {"option": "Hex", "string": "1748e7179bd56570d51fa4ba287cc3e5"},
  844. "OFB", "Hex", "Hex",
  845. {"option": "Hex", "string": ""}
  846. ]
  847. }
  848. ],
  849. },
  850. {
  851. name: "AES Decrypt: AES-128-CTR, Binary",
  852. input: "17211941bb2fa43d54d9fa5907243642baf08c837003bf24d7b81a911ce41bd31de8a92f6dc6d11135b70c73ea167c3fc4ea78234f58652d25e23245dbcb895bf4165092d0515ae8f14230f8a34b06957f24ba4b24db741490e7edcd6e5310945cc159fc",
  853. expectedOutput: "7a0e643132750e96d805d11e9e48e281fa39a41039286423cc1c045e5442b40bf1c3f2822bded3f9c8ef11cb25da64dda9c7ab87c246bd305385150c98f31465c2a6180fe81d31ea289b916504d5a12e1de26cb10adba84a0cb0c86f94bc14bc554f3018",
  854. recipeConfig: [
  855. {
  856. "op": "AES Decrypt",
  857. "args": [
  858. {"option": "Hex", "string": "51e201d463698ef5f717f71f5b4712af"},
  859. {"option": "Hex", "string": "1748e7179bd56570d51fa4ba287cc3e5"},
  860. "CTR", "Hex", "Hex",
  861. {"option": "Hex", "string": ""}
  862. ]
  863. }
  864. ],
  865. },
  866. {
  867. name: "AES Decrypt: AES-128-GCM, Binary",
  868. input: "fa17fcbf5e8763322c1b0c8562e1512ed9d702ef70c1643572b9de3e34ae6b535e6c1b992432aa6d06fb6f80c861262aef66e7c26035afe77bd3861261e4e092b523f058f8ebef2143db21bc16d02f7a011efb07419300cb41c3b884d1d8d6a766b8963c",
  869. expectedOutput: "7a0e643132750e96d805d11e9e48e281fa39a41039286423cc1c045e5442b40bf1c3f2822bded3f9c8ef11cb25da64dda9c7ab87c246bd305385150c98f31465c2a6180fe81d31ea289b916504d5a12e1de26cb10adba84a0cb0c86f94bc14bc554f3018",
  870. recipeConfig: [
  871. {
  872. "op": "AES Decrypt",
  873. "args": [
  874. {"option": "Hex", "string": "51e201d463698ef5f717f71f5b4712af"},
  875. {"option": "Hex", "string": "1748e7179bd56570d51fa4ba287cc3e5"},
  876. "GCM", "Hex", "Hex",
  877. {"option": "Hex", "string": "fa6bbb34c8cde65a3d7b93fb094fc84f"}
  878. ]
  879. }
  880. ],
  881. },
  882. {
  883. name: "AES Decrypt: AES-128-ECB, Binary",
  884. input: "869c057637a58cc3363bcc4bcfa62702abf85dff44300eb9fdcfb9d845772c8acb557c8d540baae2489c6758abef83d81b74239bef87c6c944c1b00ca160882bc15be9a6a3de4e6a50a2eab8b635c634027ed7eae4c1d2f08477c38b7dc24f6915da235bc3051f3a50736b14db8863e4",
  885. expectedOutput: "7a0e643132750e96d805d11e9e48e281fa39a41039286423cc1c045e5442b40bf1c3f2822bded3f9c8ef11cb25da64dda9c7ab87c246bd305385150c98f31465c2a6180fe81d31ea289b916504d5a12e1de26cb10adba84a0cb0c86f94bc14bc554f3018",
  886. recipeConfig: [
  887. {
  888. "op": "AES Decrypt",
  889. "args": [
  890. {"option": "Hex", "string": "51e201d463698ef5f717f71f5b4712af"},
  891. {"option": "Hex", "string": "1748e7179bd56570d51fa4ba287cc3e5"},
  892. "ECB", "Hex", "Hex",
  893. {"option": "Hex", "string": ""}
  894. ]
  895. }
  896. ],
  897. },
  898. {
  899. name: "AES Decrypt: AES-192-CBC, Binary",
  900. input: "1aec90cd7f629ef68243881f3e2b793a548cbcdad69631995a6bd0c8aea1e948d8a5f3f2b7e7f9b77da77434c92a6257a9f57e937b883f4400511b990888a0b1d27c0a4b7f298e6f50b563135edc9fa7d8eceb6bc8163e6153a20cf07aa1e705bc5cb3a37b0452b4019cef8000d7c1b7",
  901. expectedOutput: "7a0e643132750e96d805d11e9e48e281fa39a41039286423cc1c045e5442b40bf1c3f2822bded3f9c8ef11cb25da64dda9c7ab87c246bd305385150c98f31465c2a6180fe81d31ea289b916504d5a12e1de26cb10adba84a0cb0c86f94bc14bc554f3018",
  902. recipeConfig: [
  903. {
  904. "op": "AES Decrypt",
  905. "args": [
  906. {"option": "Hex", "string": "6801ed503c9d96ee5f9d78b07ab1b295dba3c2adf81c7816"},
  907. {"option": "Hex", "string": "1748e7179bd56570d51fa4ba287cc3e5"},
  908. "CBC", "Hex", "Hex",
  909. {"option": "Hex", "string": ""}
  910. ]
  911. }
  912. ],
  913. },
  914. {
  915. name: "AES Decrypt: AES-192-CFB, Binary",
  916. input: "fc370a6c013b3c05430fbce810cb97d39cb0a587320a4c1b57d0c0d08e93cb0d1221abba9df09b4b1332ce923b289f92000e6b4f7fbc55dfdab9179081d8c36ef4a0e3d3a49f1564715c5d3e88f8bf6d3dd77944f22f99a03b5535a3cd47bc44d4a9665c",
  917. expectedOutput: "7a0e643132750e96d805d11e9e48e281fa39a41039286423cc1c045e5442b40bf1c3f2822bded3f9c8ef11cb25da64dda9c7ab87c246bd305385150c98f31465c2a6180fe81d31ea289b916504d5a12e1de26cb10adba84a0cb0c86f94bc14bc554f3018",
  918. recipeConfig: [
  919. {
  920. "op": "AES Decrypt",
  921. "args": [
  922. {"option": "Hex", "string": "6801ed503c9d96ee5f9d78b07ab1b295dba3c2adf81c7816"},
  923. {"option": "Hex", "string": "1748e7179bd56570d51fa4ba287cc3e5"},
  924. "CFB", "Hex", "Hex",
  925. {"option": "Hex", "string": ""}
  926. ]
  927. }
  928. ],
  929. },
  930. {
  931. name: "AES Decrypt: AES-192-OFB, Binary",
  932. input: "fc370a6c013b3c05430fbce810cb97d33605d11b2531c8833bc3e818003bbd7dd58b2a38d10d44d25d11bd96228b264a4d2aad1d0a7af2cfad0e70c1ade305433e95cb0ee693447f6877a59a4be5c070d19afba23ff10caf5ecfa7a9c2877b8df23d61f2",
  933. expectedOutput: "7a0e643132750e96d805d11e9e48e281fa39a41039286423cc1c045e5442b40bf1c3f2822bded3f9c8ef11cb25da64dda9c7ab87c246bd305385150c98f31465c2a6180fe81d31ea289b916504d5a12e1de26cb10adba84a0cb0c86f94bc14bc554f3018",
  934. recipeConfig: [
  935. {
  936. "op": "AES Decrypt",
  937. "args": [
  938. {"option": "Hex", "string": "6801ed503c9d96ee5f9d78b07ab1b295dba3c2adf81c7816"},
  939. {"option": "Hex", "string": "1748e7179bd56570d51fa4ba287cc3e5"},
  940. "OFB", "Hex", "Hex",
  941. {"option": "Hex", "string": ""}
  942. ]
  943. }
  944. ],
  945. },
  946. {
  947. name: "AES Decrypt: AES-192-CTR, Binary",
  948. input: "fc370a6c013b3c05430fbce810cb97d340525303ae59c5e9b73ad5ff3e65ce3abf00431e0a292d990f732a397de589420827beb1c28623c56972eb2ddf0cf3f82e3c30e155df7f64a530419c28fc51a9091c73df78e73958bee1d1acd8676c9c0f1915ca",
  949. expectedOutput: "7a0e643132750e96d805d11e9e48e281fa39a41039286423cc1c045e5442b40bf1c3f2822bded3f9c8ef11cb25da64dda9c7ab87c246bd305385150c98f31465c2a6180fe81d31ea289b916504d5a12e1de26cb10adba84a0cb0c86f94bc14bc554f3018",
  950. recipeConfig: [
  951. {
  952. "op": "AES Decrypt",
  953. "args": [
  954. {"option": "Hex", "string": "6801ed503c9d96ee5f9d78b07ab1b295dba3c2adf81c7816"},
  955. {"option": "Hex", "string": "1748e7179bd56570d51fa4ba287cc3e5"},
  956. "CTR", "Hex", "Hex",
  957. {"option": "Hex", "string": ""}
  958. ]
  959. }
  960. ],
  961. },
  962. {
  963. name: "AES Decrypt: AES-192-GCM, Binary",
  964. input: "ed22946f96964d300b45f5ce2d9601ba87682da1a603c90e6d4f7738729b0602f613ee392c9bfc7792594474f1213fb99185851f02ece4df0e93995e49f97aa4d0a337d7a80d83e4219dae5a3d36658f8659cdd5ed7c32707f98656fab7fb43f7a61e37c",
  965. expectedOutput: "7a0e643132750e96d805d11e9e48e281fa39a41039286423cc1c045e5442b40bf1c3f2822bded3f9c8ef11cb25da64dda9c7ab87c246bd305385150c98f31465c2a6180fe81d31ea289b916504d5a12e1de26cb10adba84a0cb0c86f94bc14bc554f3018",
  966. recipeConfig: [
  967. {
  968. "op": "AES Decrypt",
  969. "args": [
  970. {"option": "Hex", "string": "6801ed503c9d96ee5f9d78b07ab1b295dba3c2adf81c7816"},
  971. {"option": "Hex", "string": "1748e7179bd56570d51fa4ba287cc3e5"},
  972. "GCM", "Hex", "Hex",
  973. {"option": "Hex", "string": "be17cb31edb77f648b9d1032b235b33d"}
  974. ]
  975. }
  976. ],
  977. },
  978. {
  979. name: "AES Decrypt: AES-192-ECB, Binary",
  980. input: "56ef533db50a3b33951a76acede52b7d54fbae7fb07da20daa3e2731e5721ee4c13ab15ac80748c14dece982310530ad65480512a4cf70201473fb7bc3480446bc86b1ff9b4517c4c1f656bc236fab1aca276ae5af25f5871b671823f3cb3e426da059dd83a13f125bd6cfe600c331b0",
  981. expectedOutput: "7a0e643132750e96d805d11e9e48e281fa39a41039286423cc1c045e5442b40bf1c3f2822bded3f9c8ef11cb25da64dda9c7ab87c246bd305385150c98f31465c2a6180fe81d31ea289b916504d5a12e1de26cb10adba84a0cb0c86f94bc14bc554f3018",
  982. recipeConfig: [
  983. {
  984. "op": "AES Decrypt",
  985. "args": [
  986. {"option": "Hex", "string": "6801ed503c9d96ee5f9d78b07ab1b295dba3c2adf81c7816"},
  987. {"option": "Hex", "string": "1748e7179bd56570d51fa4ba287cc3e5"},
  988. "ECB", "Hex", "Hex",
  989. {"option": "Hex", "string": ""}
  990. ]
  991. }
  992. ],
  993. },
  994. {
  995. name: "AES Decrypt: AES-256-CBC, Binary",
  996. input: "bc60a7613559e23e8a7be8e98a1459003fdb036f33368d8a30156c51464b49472705a4ddae05da96956ce058bb180dd301c5fd58bf6a2ded0d7dd4da85fd5ba43a4297691532bf7f4cd92bfcfd3704faf2f9bd5425049b34433ba90fb85c80646e6cb09ee4e4059e7cd753a2fef8bbad",
  997. expectedOutput: "7a0e643132750e96d805d11e9e48e281fa39a41039286423cc1c045e5442b40bf1c3f2822bded3f9c8ef11cb25da64dda9c7ab87c246bd305385150c98f31465c2a6180fe81d31ea289b916504d5a12e1de26cb10adba84a0cb0c86f94bc14bc554f3018",
  998. recipeConfig: [
  999. {
  1000. "op": "AES Decrypt",
  1001. "args": [
  1002. {"option": "Hex", "string": "2d767f6e9333d1c77581946e160b2b7368c2cdd5e2b80f04ca09d64e02afbfe1"},
  1003. {"option": "Hex", "string": "1748e7179bd56570d51fa4ba287cc3e5"},
  1004. "CBC", "Hex", "Hex",
  1005. {"option": "Hex", "string": ""}
  1006. ]
  1007. }
  1008. ],
  1009. },
  1010. {
  1011. name: "AES Decrypt: AES-256-CFB, Binary",
  1012. input: "5dc73709da5cb0ac914ae4bcb621fd75169eac5ff13a2dde573f6380ff812e8ddb58f0e9afaec1ff0d6d2af0659e10c05b714ec97481a15f4a7aeb4c6ea84112ce897459b54ed9e77a794f023f2bef1901f013cf435432fca5fb59e2be781916247d2334",
  1013. expectedOutput: "7a0e643132750e96d805d11e9e48e281fa39a41039286423cc1c045e5442b40bf1c3f2822bded3f9c8ef11cb25da64dda9c7ab87c246bd305385150c98f31465c2a6180fe81d31ea289b916504d5a12e1de26cb10adba84a0cb0c86f94bc14bc554f3018",
  1014. recipeConfig: [
  1015. {
  1016. "op": "AES Decrypt",
  1017. "args": [
  1018. {"option": "Hex", "string": "2d767f6e9333d1c77581946e160b2b7368c2cdd5e2b80f04ca09d64e02afbfe1"},
  1019. {"option": "Hex", "string": "1748e7179bd56570d51fa4ba287cc3e5"},
  1020. "CFB", "Hex", "Hex",
  1021. {"option": "Hex", "string": ""}
  1022. ]
  1023. }
  1024. ],
  1025. },
  1026. {
  1027. name: "AES Decrypt: AES-256-OFB, Binary",
  1028. input: "5dc73709da5cb0ac914ae4bcb621fd75b6e1f909b88733f784b1df8a52dc200440a1076415d009a7c12cac1e8ab76bdc290e6634cd5bf8a416fda8dcfd7910e55fe9d1148cd85d7a59adad39ab089e111d8f8da246e2e874cf5d9ab7552af6308320a5ab",
  1029. expectedOutput: "7a0e643132750e96d805d11e9e48e281fa39a41039286423cc1c045e5442b40bf1c3f2822bded3f9c8ef11cb25da64dda9c7ab87c246bd305385150c98f31465c2a6180fe81d31ea289b916504d5a12e1de26cb10adba84a0cb0c86f94bc14bc554f3018",
  1030. recipeConfig: [
  1031. {
  1032. "op": "AES Decrypt",
  1033. "args": [
  1034. {"option": "Hex", "string": "2d767f6e9333d1c77581946e160b2b7368c2cdd5e2b80f04ca09d64e02afbfe1"},
  1035. {"option": "Hex", "string": "1748e7179bd56570d51fa4ba287cc3e5"},
  1036. "OFB", "Hex", "Hex",
  1037. {"option": "Hex", "string": ""}
  1038. ]
  1039. }
  1040. ],
  1041. },
  1042. {
  1043. name: "AES Decrypt: AES-256-CTR, Binary",
  1044. input: "5dc73709da5cb0ac914ae4bcb621fd7591356d4169898c986a90b193f4d1f0d5cba1d10b2bfc5aee8a48dce9dba174cecf56f92dddf7eb306d78360000eea7bcb50f696d84a3757a822800ed68f9edf118dc61406bacf64f022717d8cb6010049bf75d7e",
  1045. expectedOutput: "7a0e643132750e96d805d11e9e48e281fa39a41039286423cc1c045e5442b40bf1c3f2822bded3f9c8ef11cb25da64dda9c7ab87c246bd305385150c98f31465c2a6180fe81d31ea289b916504d5a12e1de26cb10adba84a0cb0c86f94bc14bc554f3018",
  1046. recipeConfig: [
  1047. {
  1048. "op": "AES Decrypt",
  1049. "args": [
  1050. {"option": "Hex", "string": "2d767f6e9333d1c77581946e160b2b7368c2cdd5e2b80f04ca09d64e02afbfe1"},
  1051. {"option": "Hex", "string": "1748e7179bd56570d51fa4ba287cc3e5"},
  1052. "CTR", "Hex", "Hex",
  1053. {"option": "Hex", "string": ""}
  1054. ]
  1055. }
  1056. ],
  1057. },
  1058. {
  1059. name: "AES Decrypt: AES-256-GCM, Binary",
  1060. input: "e3f1b236eaf3b9df69df8133a1b417fa42b242d8ad49e4d2f3469aca7e2a41737e4f2c8a0d212143287088fad51743577dc6dfa8ed328ca90113cbeb9b137926b2168cc037bdc371777e6ee02b9d9c017b6054fd83d43b4885fbe9c044a8574f1491a893",
  1061. expectedOutput: "7a0e643132750e96d805d11e9e48e281fa39a41039286423cc1c045e5442b40bf1c3f2822bded3f9c8ef11cb25da64dda9c7ab87c246bd305385150c98f31465c2a6180fe81d31ea289b916504d5a12e1de26cb10adba84a0cb0c86f94bc14bc554f3018",
  1062. recipeConfig: [
  1063. {
  1064. "op": "AES Decrypt",
  1065. "args": [
  1066. {"option": "Hex", "string": "2d767f6e9333d1c77581946e160b2b7368c2cdd5e2b80f04ca09d64e02afbfe1"},
  1067. {"option": "Hex", "string": "1748e7179bd56570d51fa4ba287cc3e5"},
  1068. "GCM", "Hex", "Hex",
  1069. {"option": "Hex", "string": "23ddbd3ee4de33f98a9ea9a170bdf268"}
  1070. ]
  1071. }
  1072. ],
  1073. },
  1074. {
  1075. name: "AES Decrypt: AES-256-ECB, Binary",
  1076. input: "7e8521ba3f356ef692a51841807e141464aadc07bbc0ef2b628b8745bae356d245682a220688afca7be987b60cb120681ed42680ee93a67065619a3beaac11111a6cd88a6afa9e367722cb57df343f8548f2d691b295184da4ed5f3b763aaa8558502cb348ab58e81986337096e90caa",
  1077. expectedOutput: "7a0e643132750e96d805d11e9e48e281fa39a41039286423cc1c045e5442b40bf1c3f2822bded3f9c8ef11cb25da64dda9c7ab87c246bd305385150c98f31465c2a6180fe81d31ea289b916504d5a12e1de26cb10adba84a0cb0c86f94bc14bc554f3018",
  1078. recipeConfig: [
  1079. {
  1080. "op": "AES Decrypt",
  1081. "args": [
  1082. {"option": "Hex", "string": "2d767f6e9333d1c77581946e160b2b7368c2cdd5e2b80f04ca09d64e02afbfe1"},
  1083. {"option": "Hex", "string": "1748e7179bd56570d51fa4ba287cc3e5"},
  1084. "ECB", "Hex", "Hex",
  1085. {"option": "Hex", "string": ""}
  1086. ]
  1087. }
  1088. ],
  1089. },
  1090. {
  1091. name: "DES Decrypt: no key",
  1092. input: "",
  1093. expectedOutput: `Invalid key length: 0 bytes
  1094. DES uses a key length of 8 bytes (64 bits).
  1095. Triple DES uses a key length of 24 bytes (192 bits).`,
  1096. recipeConfig: [
  1097. {
  1098. "op": "DES Decrypt",
  1099. "args": [
  1100. {"option": "Hex", "string": ""},
  1101. {"option": "Hex", "string": ""},
  1102. "CBC", "Hex", "Hex"
  1103. ]
  1104. }
  1105. ],
  1106. },
  1107. {
  1108. name: "DES Decrypt: DES-CBC, Binary",
  1109. input: "6500defb824b0eb8ccbf1fa9689c6f5bcc65247d93ecb0e573232824bca82dd41e2361f8fd82ef187de9f3b74f7ba3ca2b4e735f3ca6304fb8dd1675933c576424b1ea72b3219bdab62fce56d49c820d5ac02a4702a6d688e90b0933de97da21e4829e5cf85caae8",
  1110. expectedOutput: "7a0e643132750e96d805d11e9e48e281fa39a41039286423cc1c045e5442b40bf1c3f2822bded3f9c8ef11cb25da64dda9c7ab87c246bd305385150c98f31465c2a6180fe81d31ea289b916504d5a12e1de26cb10adba84a0cb0c86f94bc14bc554f3018",
  1111. recipeConfig: [
  1112. {
  1113. "op": "DES Decrypt",
  1114. "args": [
  1115. {"option": "Hex", "string": "58345efb0a64e87e"},
  1116. {"option": "Hex", "string": "533ed1378bfd929e"},
  1117. "CBC", "Hex", "Hex"
  1118. ]
  1119. }
  1120. ],
  1121. },
  1122. {
  1123. name: "DES Decrypt: DES-CFB, Binary",
  1124. input: "09015087e15b09374bc9edba80ce41e6809e332fc1e988858749fb2f4ebbd6483a6fce01a43271280c07c90e13d517729acac45beef7d088339eb7e084bbbb7459fc8bb592d2ca76b90066dc79b1fbc5e016208e1d02c6e48ab675530f8040e53e1a138b",
  1125. expectedOutput: "7a0e643132750e96d805d11e9e48e281fa39a41039286423cc1c045e5442b40bf1c3f2822bded3f9c8ef11cb25da64dda9c7ab87c246bd305385150c98f31465c2a6180fe81d31ea289b916504d5a12e1de26cb10adba84a0cb0c86f94bc14bc554f3018",
  1126. recipeConfig: [
  1127. {
  1128. "op": "DES Decrypt",
  1129. "args": [
  1130. {"option": "Hex", "string": "58345efb0a64e87e"},
  1131. {"option": "Hex", "string": "533ed1378bfd929e"},
  1132. "CFB", "Hex", "Hex"
  1133. ]
  1134. }
  1135. ],
  1136. },
  1137. {
  1138. name: "DES Decrypt: DES-OFB, Binary",
  1139. input: "09015087e15b09374d8879bac14dbad851dd08fb131353a8c510acc4570e97720dd159465f1c7da3cac4a50521e1c1ab87e8cf5b0aa0c1d2eaa8a1ed914a26c13b2b0a76a368f08812fc7fa4b7c047f27df0c35e5f53b8a20e2ffc10e55d388cae8070db",
  1140. expectedOutput: "7a0e643132750e96d805d11e9e48e281fa39a41039286423cc1c045e5442b40bf1c3f2822bded3f9c8ef11cb25da64dda9c7ab87c246bd305385150c98f31465c2a6180fe81d31ea289b916504d5a12e1de26cb10adba84a0cb0c86f94bc14bc554f3018",
  1141. recipeConfig: [
  1142. {
  1143. "op": "DES Decrypt",
  1144. "args": [
  1145. {"option": "Hex", "string": "58345efb0a64e87e"},
  1146. {"option": "Hex", "string": "533ed1378bfd929e"},
  1147. "OFB", "Hex", "Hex"
  1148. ]
  1149. }
  1150. ],
  1151. },
  1152. {
  1153. name: "DES Decrypt: DES-CTR, Binary",
  1154. input: "09015087e15b0937ab0ae5a84d66e520893690a6ea066382bf1330e8876cb3aa82ccc634f8f0d458bbe0257df6f4637cdac89f311168ba91208a21ba4bdd13c4b1a92cb93b33364b5b94a5d3d7fba68f6eed5807d9f5afeb7fbffcd94792131d264004ae",
  1155. expectedOutput: "7a0e643132750e96d805d11e9e48e281fa39a41039286423cc1c045e5442b40bf1c3f2822bded3f9c8ef11cb25da64dda9c7ab87c246bd305385150c98f31465c2a6180fe81d31ea289b916504d5a12e1de26cb10adba84a0cb0c86f94bc14bc554f3018",
  1156. recipeConfig: [
  1157. {
  1158. "op": "DES Decrypt",
  1159. "args": [
  1160. {"option": "Hex", "string": "58345efb0a64e87e"},
  1161. {"option": "Hex", "string": "533ed1378bfd929e"},
  1162. "CTR", "Hex", "Hex"
  1163. ]
  1164. }
  1165. ],
  1166. },
  1167. {
  1168. name: "DES Decrypt: DES-ECB, Binary",
  1169. input: "8dea4c6a35d5f6a419232159a0b039798d0a0b20fd1e559b1d04f8eb1120e8bca6ed5b3a4bc2b23d3b62312e6085d9e837677569fe79a65eba7cb4a2969e099fc1bd649e9c8aeb2c4c519e085db6974819257c20fde70acabc976308cc41635038c91acf5eefff1e",
  1170. expectedOutput: "7a0e643132750e96d805d11e9e48e281fa39a41039286423cc1c045e5442b40bf1c3f2822bded3f9c8ef11cb25da64dda9c7ab87c246bd305385150c98f31465c2a6180fe81d31ea289b916504d5a12e1de26cb10adba84a0cb0c86f94bc14bc554f3018",
  1171. recipeConfig: [
  1172. {
  1173. "op": "DES Decrypt",
  1174. "args": [
  1175. {"option": "Hex", "string": "58345efb0a64e87e"},
  1176. {"option": "Hex", "string": "533ed1378bfd929e"},
  1177. "ECB", "Hex", "Hex"
  1178. ]
  1179. }
  1180. ],
  1181. },
  1182. {
  1183. name: "Triple DES Decrypt: no key",
  1184. input: "",
  1185. expectedOutput: `Invalid key length: 0 bytes
  1186. Triple DES uses a key length of 24 bytes (192 bits).
  1187. DES uses a key length of 8 bytes (64 bits).`,
  1188. recipeConfig: [
  1189. {
  1190. "op": "Triple DES Decrypt",
  1191. "args": [
  1192. {"option": "Hex", "string": ""},
  1193. {"option": "Hex", "string": ""},
  1194. "CBC", "Hex", "Hex"
  1195. ]
  1196. }
  1197. ],
  1198. },
  1199. {
  1200. name: "Triple DES Decrypt: DES-EDE3-CBC, Binary",
  1201. input: "f826c9116ea932eb7027a810b5ce21109c4ef2563c9f3ba5e2518f72484e88f8d3f6ff3f334f64bb6bb9ff91b70f6f29c037b10dee5fe16d7f0f41c9a7ecdd83f113a1dd66ab70783ee458c2366bf5fbc016f7c168c43c11d607692a3280e3750a6154a86b62c48d",
  1202. expectedOutput: "7a0e643132750e96d805d11e9e48e281fa39a41039286423cc1c045e5442b40bf1c3f2822bded3f9c8ef11cb25da64dda9c7ab87c246bd305385150c98f31465c2a6180fe81d31ea289b916504d5a12e1de26cb10adba84a0cb0c86f94bc14bc554f3018",
  1203. recipeConfig: [
  1204. {
  1205. "op": "Triple DES Decrypt",
  1206. "args": [
  1207. {"option": "Hex", "string": "190da55fb54b9e7dd6de05f43bf3347ef203cd34a5829b23"},
  1208. {"option": "Hex", "string": "14f67ac044a84da6"},
  1209. "CBC", "Hex", "Hex"
  1210. ]
  1211. }
  1212. ],
  1213. },
  1214. {
  1215. name: "Triple DES Decrypt: DES-EDE3-CFB, Binary",
  1216. input: "874d32cd7bdae52c3690875e265a2fac7ced685e5ec4436a6bb5a5c18be185f4526683a5bc7ae86f00523034fb725ab4c8285a6967ccca1b76f6331718c26e12ea67fc924071f81ce0035a9dd31705bcd6467991cae5504d70424e6339459db5b33cbc8a",
  1217. expectedOutput: "7a0e643132750e96d805d11e9e48e281fa39a41039286423cc1c045e5442b40bf1c3f2822bded3f9c8ef11cb25da64dda9c7ab87c246bd305385150c98f31465c2a6180fe81d31ea289b916504d5a12e1de26cb10adba84a0cb0c86f94bc14bc554f3018",
  1218. recipeConfig: [
  1219. {
  1220. "op": "Triple DES Decrypt",
  1221. "args": [
  1222. {"option": "Hex", "string": "190da55fb54b9e7dd6de05f43bf3347ef203cd34a5829b23"},
  1223. {"option": "Hex", "string": "14f67ac044a84da6"},
  1224. "CFB", "Hex", "Hex"
  1225. ]
  1226. }
  1227. ],
  1228. },
  1229. {
  1230. name: "Triple DES Decrypt: DES-EDE3-OFB, Binary",
  1231. input: "874d32cd7bdae52c8f61672860f715d14819c0270320a8ad71083b38bd8954bbada3c77af641590b00a678524d748668fe3dfa83f71835c411cdbdd8e73a70656324b7faaba16e1d8dba260d8f965fe7a91110134c19076f1eeb46393038c22c559fe490",
  1232. expectedOutput: "7a0e643132750e96d805d11e9e48e281fa39a41039286423cc1c045e5442b40bf1c3f2822bded3f9c8ef11cb25da64dda9c7ab87c246bd305385150c98f31465c2a6180fe81d31ea289b916504d5a12e1de26cb10adba84a0cb0c86f94bc14bc554f3018",
  1233. recipeConfig: [
  1234. {
  1235. "op": "Triple DES Decrypt",
  1236. "args": [
  1237. {"option": "Hex", "string": "190da55fb54b9e7dd6de05f43bf3347ef203cd34a5829b23"},
  1238. {"option": "Hex", "string": "14f67ac044a84da6"},
  1239. "OFB", "Hex", "Hex"
  1240. ]
  1241. }
  1242. ],
  1243. },
  1244. {
  1245. name: "Triple DES Decrypt: DES-EDE3-CTR, Binary",
  1246. input: "874d32cd7bdae52c254687e2d7e7093b077af2ec70878f99315f52a21ded5fb10c80a47e6271384335ac47376c758f675484fd7b8be9568aaec643f0d15cffdf3fe54ef3a1b2da50d5d8c7994d7a4a94e0a13a4d437443f0f1f39e93dd13ff06a80c66e4",
  1247. expectedOutput: "7a0e643132750e96d805d11e9e48e281fa39a41039286423cc1c045e5442b40bf1c3f2822bded3f9c8ef11cb25da64dda9c7ab87c246bd305385150c98f31465c2a6180fe81d31ea289b916504d5a12e1de26cb10adba84a0cb0c86f94bc14bc554f3018",
  1248. recipeConfig: [
  1249. {
  1250. "op": "Triple DES Decrypt",
  1251. "args": [
  1252. {"option": "Hex", "string": "190da55fb54b9e7dd6de05f43bf3347ef203cd34a5829b23"},
  1253. {"option": "Hex", "string": "14f67ac044a84da6"},
  1254. "CTR", "Hex", "Hex"
  1255. ]
  1256. }
  1257. ],
  1258. },
  1259. {
  1260. name: "Triple DES Decrypt: DES-EDE3-ECB, Binary",
  1261. input: "aa81f23d1b3abebd68ac560e051a711c2923843beecddb0f7fe4113bd1874e73cccf3a2a494bb011e154ca2737b4d0eb5978a10316361074ed368d85d5aff5c8555ea101b0a468e58780a74c7830c561674c183c972a2b48931adf789cb16df304e169500f8c95ad",
  1262. expectedOutput: "7a0e643132750e96d805d11e9e48e281fa39a41039286423cc1c045e5442b40bf1c3f2822bded3f9c8ef11cb25da64dda9c7ab87c246bd305385150c98f31465c2a6180fe81d31ea289b916504d5a12e1de26cb10adba84a0cb0c86f94bc14bc554f3018",
  1263. recipeConfig: [
  1264. {
  1265. "op": "Triple DES Decrypt",
  1266. "args": [
  1267. {"option": "Hex", "string": "190da55fb54b9e7dd6de05f43bf3347ef203cd34a5829b23"},
  1268. {"option": "Hex", "string": "14f67ac044a84da6"},
  1269. "ECB", "Hex", "Hex"
  1270. ]
  1271. }
  1272. ],
  1273. },
  1274. {
  1275. name: "RC2 Encrypt: no key",
  1276. input: "7a0e643132750e96d805d11e9e48e281fa39a41039286423cc1c045e5442b40bf1c3f2822bded3f9c8ef11cb25da64dda9c7ab87c246bd305385150c98f31465c2a6180fe81d31ea289b916504d5a12e1de26cb10adba84a0cb0c86f94bc14bc554f3018",
  1277. expectedOutput: "d3644d898b51a544f690b506c3fd0caeb7a1e6097f7ea28f69b909a4d8805c9a05f4cade8b281d3f044fa069374efb90e94723622c86afc17caee394ffbee0abe627de299208460eb981c9d56f9df885091c6c89e2ee173264b2820b8e67675214e6545a05dc0d3f",
  1278. recipeConfig: [
  1279. {
  1280. "op": "RC2 Encrypt",
  1281. "args": [
  1282. {"option": "Hex", "string": ""},
  1283. {"option": "Hex", "string": ""},
  1284. "Hex", "Hex"
  1285. ]
  1286. }
  1287. ],
  1288. },
  1289. {
  1290. name: "RC2 Encrypt: RC2-CBC, Binary",
  1291. input: "7a0e643132750e96d805d11e9e48e281fa39a41039286423cc1c045e5442b40bf1c3f2822bded3f9c8ef11cb25da64dda9c7ab87c246bd305385150c98f31465c2a6180fe81d31ea289b916504d5a12e1de26cb10adba84a0cb0c86f94bc14bc554f3018",
  1292. expectedOutput: "d25e5bc6c9311ef196d6f21cc4b0274b29fcca366aba5256406e02bf4ae628398f84e7d72ad92025ede76df4752d1510fe9c3492efb1dcf0be2cd41d619e10b9dd5a2304c2efbd3598d3b87f1a21f326d45e65537563436cfb6e4a41ec3733182ddc058f96f74a6c",
  1293. recipeConfig: [
  1294. {
  1295. "op": "RC2 Encrypt",
  1296. "args": [
  1297. {"option": "Hex", "string": "eb970554bb213430f4bb4e5988a6a218"},
  1298. {"option": "Hex", "string": "ae817c784a097e0c"},
  1299. "Hex", "Hex"
  1300. ]
  1301. }
  1302. ],
  1303. },
  1304. {
  1305. name: "RC2 Encrypt: RC2-ECB, Binary",
  1306. input: "7a0e643132750e96d805d11e9e48e281fa39a41039286423cc1c045e5442b40bf1c3f2822bded3f9c8ef11cb25da64dda9c7ab87c246bd305385150c98f31465c2a6180fe81d31ea289b916504d5a12e1de26cb10adba84a0cb0c86f94bc14bc554f3018",
  1307. expectedOutput: "a160bf23b2a85eaa43d26753e51aaa899f162ec0da7280fffd41b705c5309c7fef2bbb56bf261cab4eadd3a5c69e0a67d45e426d1097187cc9a959b4d979a9d40df26f3dc8d030453fe27701438b78d3ce044330b4b5dca7832537ecf40b914f1b1dc16d4e6d7229",
  1308. recipeConfig: [
  1309. {
  1310. "op": "RC2 Encrypt",
  1311. "args": [
  1312. {"option": "Hex", "string": "eb970554bb213430f4bb4e5988a6a218"},
  1313. {"option": "Hex", "string": ""},
  1314. "Hex", "Hex"
  1315. ]
  1316. }
  1317. ],
  1318. },
  1319. {
  1320. name: "RC2 Decrypt: no key",
  1321. input: "d3644d898b51a544f690b506c3fd0caeb7a1e6097f7ea28f69b909a4d8805c9a05f4cade8b281d3f044fa069374efb90e94723622c86afc17caee394ffbee0abe627de299208460eb981c9d56f9df885091c6c89e2ee173264b2820b8e67675214e6545a05dc0d3f",
  1322. expectedOutput: "7a0e643132750e96d805d11e9e48e281fa39a41039286423cc1c045e5442b40bf1c3f2822bded3f9c8ef11cb25da64dda9c7ab87c246bd305385150c98f31465c2a6180fe81d31ea289b916504d5a12e1de26cb10adba84a0cb0c86f94bc14bc554f3018",
  1323. recipeConfig: [
  1324. {
  1325. "op": "RC2 Decrypt",
  1326. "args": [
  1327. {"option": "Hex", "string": ""},
  1328. {"option": "Hex", "string": ""},
  1329. "Hex", "Hex"
  1330. ]
  1331. }
  1332. ],
  1333. },
  1334. {
  1335. name: "RC2 Decrypt: RC2-CBC, Binary",
  1336. input: "d25e5bc6c9311ef196d6f21cc4b0274b29fcca366aba5256406e02bf4ae628398f84e7d72ad92025ede76df4752d1510fe9c3492efb1dcf0be2cd41d619e10b9dd5a2304c2efbd3598d3b87f1a21f326d45e65537563436cfb6e4a41ec3733182ddc058f96f74a6c",
  1337. expectedOutput: "7a0e643132750e96d805d11e9e48e281fa39a41039286423cc1c045e5442b40bf1c3f2822bded3f9c8ef11cb25da64dda9c7ab87c246bd305385150c98f31465c2a6180fe81d31ea289b916504d5a12e1de26cb10adba84a0cb0c86f94bc14bc554f3018",
  1338. recipeConfig: [
  1339. {
  1340. "op": "RC2 Decrypt",
  1341. "args": [
  1342. {"option": "Hex", "string": "eb970554bb213430f4bb4e5988a6a218"},
  1343. {"option": "Hex", "string": "ae817c784a097e0c"},
  1344. "Hex", "Hex"
  1345. ]
  1346. }
  1347. ],
  1348. },
  1349. {
  1350. name: "RC2 Decrypt: RC2-ECB, Binary",
  1351. input: "a160bf23b2a85eaa43d26753e51aaa899f162ec0da7280fffd41b705c5309c7fef2bbb56bf261cab4eadd3a5c69e0a67d45e426d1097187cc9a959b4d979a9d40df26f3dc8d030453fe27701438b78d3ce044330b4b5dca7832537ecf40b914f1b1dc16d4e6d7229",
  1352. expectedOutput: "7a0e643132750e96d805d11e9e48e281fa39a41039286423cc1c045e5442b40bf1c3f2822bded3f9c8ef11cb25da64dda9c7ab87c246bd305385150c98f31465c2a6180fe81d31ea289b916504d5a12e1de26cb10adba84a0cb0c86f94bc14bc554f3018",
  1353. recipeConfig: [
  1354. {
  1355. "op": "RC2 Decrypt",
  1356. "args": [
  1357. {"option": "Hex", "string": "eb970554bb213430f4bb4e5988a6a218"},
  1358. {"option": "Hex", "string": ""},
  1359. "Hex", "Hex"
  1360. ]
  1361. }
  1362. ],
  1363. },
  1364. ]);