Hash.js 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757
  1. /**
  2. * Hash tests.
  3. *
  4. * @author Matt C [matt@artemisbot.uk]
  5. * @copyright Crown Copyright 2017
  6. * @license Apache-2.0
  7. */
  8. import TestRegister from "../../TestRegister.js";
  9. TestRegister.addTests([
  10. {
  11. name: "MD2",
  12. input: "Hello, World!",
  13. expectedOutput: "1c8f1e6a94aaa7145210bf90bb52871a",
  14. recipeConfig: [
  15. {
  16. "op": "MD2",
  17. "args": []
  18. }
  19. ]
  20. },
  21. {
  22. name: "MD4",
  23. input: "Hello, World!",
  24. expectedOutput: "94e3cb0fa9aa7a5ee3db74b79e915989",
  25. recipeConfig: [
  26. {
  27. "op": "MD4",
  28. "args": []
  29. }
  30. ]
  31. },
  32. {
  33. name: "MD5",
  34. input: "Hello, World!",
  35. expectedOutput: "65a8e27d8879283831b664bd8b7f0ad4",
  36. recipeConfig: [
  37. {
  38. "op": "MD5",
  39. "args": []
  40. }
  41. ]
  42. },
  43. {
  44. name: "MD6",
  45. input: "Hello, World!",
  46. expectedOutput: "ce5effce32637e6b8edaacc9284b873c3fd4e66f9779a79df67eb4a82dda8230",
  47. recipeConfig: [
  48. {
  49. "op": "MD6",
  50. "args": [256, 64, ""]
  51. }
  52. ]
  53. },
  54. {
  55. name: "SHA0",
  56. input: "Hello, World!",
  57. expectedOutput: "5a5588f0407c6ae9a988758e76965f841b299229",
  58. recipeConfig: [
  59. {
  60. "op": "SHA0",
  61. "args": []
  62. }
  63. ]
  64. },
  65. {
  66. name: "SHA1",
  67. input: "Hello, World!",
  68. expectedOutput: "0a0a9f2a6772942557ab5355d76af442f8f65e01",
  69. recipeConfig: [
  70. {
  71. "op": "SHA1",
  72. "args": []
  73. }
  74. ]
  75. },
  76. {
  77. name: "SHA2 224",
  78. input: "Hello, World!",
  79. expectedOutput: "72a23dfa411ba6fde01dbfabf3b00a709c93ebf273dc29e2d8b261ff",
  80. recipeConfig: [
  81. {
  82. "op": "SHA2",
  83. "args": ["224"]
  84. }
  85. ]
  86. },
  87. {
  88. name: "SHA2 384",
  89. input: "Hello, World!",
  90. expectedOutput: "5485cc9b3365b4305dfb4e8337e0a598a574f8242bf17289e0dd6c20a3cd44a089de16ab4ab308f63e44b1170eb5f515",
  91. recipeConfig: [
  92. {
  93. "op": "SHA2",
  94. "args": ["384"]
  95. }
  96. ]
  97. },
  98. {
  99. name: "SHA2 256",
  100. input: "Hello, World!",
  101. expectedOutput: "dffd6021bb2bd5b0af676290809ec3a53191dd81c7f70a4b28688a362182986f",
  102. recipeConfig: [
  103. {
  104. "op": "SHA2",
  105. "args": ["256"]
  106. }
  107. ]
  108. },
  109. {
  110. name: "SHA2 512",
  111. input: "Hello, World!",
  112. expectedOutput: "374d794a95cdcfd8b35993185fef9ba368f160d8daf432d08ba9f1ed1e5abe6cc69291e0fa2fe0006a52570ef18c19def4e617c33ce52ef0a6e5fbe318cb0387",
  113. recipeConfig: [
  114. {
  115. "op": "SHA2",
  116. "args": ["512"]
  117. }
  118. ]
  119. },
  120. {
  121. name: "SHA2 512/224",
  122. input: "Hello, World!",
  123. expectedOutput: "766745f058e8a0438f19de48ae56ea5f123fe738af39bca050a7547a",
  124. recipeConfig: [
  125. {
  126. "op": "SHA2",
  127. "args": ["512/224"]
  128. }
  129. ]
  130. },
  131. {
  132. name: "SHA2 512/256",
  133. input: "Hello, World!",
  134. expectedOutput: "0686f0a605973dc1bf035d1e2b9bad1985a0bff712ddd88abd8d2593e5f99030",
  135. recipeConfig: [
  136. {
  137. "op": "SHA2",
  138. "args": ["512/256"]
  139. }
  140. ]
  141. },
  142. {
  143. name: "SHA3 224",
  144. input: "Hello, World!",
  145. expectedOutput: "853048fb8b11462b6100385633c0cc8dcdc6e2b8e376c28102bc84f2",
  146. recipeConfig: [
  147. {
  148. "op": "SHA3",
  149. "args": ["224"]
  150. }
  151. ]
  152. },
  153. {
  154. name: "SHA3 384",
  155. input: "Hello, World!",
  156. expectedOutput: "aa9ad8a49f31d2ddcabbb7010a1566417cff803fef50eba239558826f872e468c5743e7f026b0a8e5b2d7a1cc465cdbe",
  157. recipeConfig: [
  158. {
  159. "op": "SHA3",
  160. "args": ["384"]
  161. }
  162. ]
  163. },
  164. {
  165. name: "SHA3 256",
  166. input: "Hello, World!",
  167. expectedOutput: "1af17a664e3fa8e419b8ba05c2a173169df76162a5a286e0c405b460d478f7ef",
  168. recipeConfig: [
  169. {
  170. "op": "SHA3",
  171. "args": ["256"]
  172. }
  173. ]
  174. },
  175. {
  176. name: "SHA3 512",
  177. input: "Hello, World!",
  178. expectedOutput: "38e05c33d7b067127f217d8c856e554fcff09c9320b8a5979ce2ff5d95dd27ba35d1fba50c562dfd1d6cc48bc9c5baa4390894418cc942d968f97bcb659419ed",
  179. recipeConfig: [
  180. {
  181. "op": "SHA3",
  182. "args": ["512"]
  183. }
  184. ]
  185. },
  186. {
  187. name: "Keccak 224",
  188. input: "Hello, World!",
  189. expectedOutput: "4eaaf0e7a1e400efba71130722e1cb4d59b32afb400e654afec4f8ce",
  190. recipeConfig: [
  191. {
  192. "op": "Keccak",
  193. "args": ["224"]
  194. }
  195. ]
  196. },
  197. {
  198. name: "Keccak 384",
  199. input: "Hello, World!",
  200. expectedOutput: "4d60892fde7f967bcabdc47c73122ae6311fa1f9be90d721da32030f7467a2e3db3f9ccb3c746483f9d2b876e39def17",
  201. recipeConfig: [
  202. {
  203. "op": "Keccak",
  204. "args": ["384"]
  205. }
  206. ]
  207. },
  208. {
  209. name: "Keccak 256",
  210. input: "Hello, World!",
  211. expectedOutput: "acaf3289d7b601cbd114fb36c4d29c85bbfd5e133f14cb355c3fd8d99367964f",
  212. recipeConfig: [
  213. {
  214. "op": "Keccak",
  215. "args": ["256"]
  216. }
  217. ]
  218. },
  219. {
  220. name: "Keccak 512",
  221. input: "Hello, World!",
  222. expectedOutput: "eda765576c84c600ed7f5d97510e92703b61f5215def2a161037fd9dd1f5b6ed4f86ce46073c0e3f34b52de0289e9c618798fff9dd4b1bfe035bdb8645fc6e37",
  223. recipeConfig: [
  224. {
  225. "op": "Keccak",
  226. "args": ["512"]
  227. }
  228. ]
  229. },
  230. {
  231. name: "Shake 128",
  232. input: "Hello, World!",
  233. expectedOutput: "2bf5e6dee6079fad604f573194ba8426bd4d30eb13e8ba2edae70e529b570cbd",
  234. recipeConfig: [
  235. {
  236. "op": "Shake",
  237. "args": ["128", 256]
  238. }
  239. ]
  240. },
  241. {
  242. name: "Shake 256",
  243. input: "Hello, World!",
  244. expectedOutput: "b3be97bfd978833a65588ceae8a34cf59e95585af62063e6b89d0789f372424e8b0d1be4f21b40ce5a83a438473271e0661854f02d431db74e6904d6c347d757",
  245. recipeConfig: [
  246. {
  247. "op": "Shake",
  248. "args": ["256", 512]
  249. }
  250. ]
  251. },
  252. {
  253. name: "RIPEMD 128",
  254. input: "Hello, World!",
  255. expectedOutput: "67f9fe75ca2886dc76ad00f7276bdeba",
  256. recipeConfig: [
  257. {
  258. "op": "RIPEMD",
  259. "args": ["128"]
  260. }
  261. ]
  262. },
  263. {
  264. name: "RIPEMD 160",
  265. input: "Hello, World!",
  266. expectedOutput: "527a6a4b9a6da75607546842e0e00105350b1aaf",
  267. recipeConfig: [
  268. {
  269. "op": "RIPEMD",
  270. "args": ["160"]
  271. }
  272. ]
  273. },
  274. {
  275. name: "RIPEMD 256",
  276. input: "Hello, World!",
  277. expectedOutput: "567750c6d34dcba7ae038a80016f3ca3260ec25bfdb0b68bbb8e730b00b2447d",
  278. recipeConfig: [
  279. {
  280. "op": "RIPEMD",
  281. "args": ["256"]
  282. }
  283. ]
  284. },
  285. {
  286. name: "RIPEMD 320",
  287. input: "Hello, World!",
  288. expectedOutput: "f9832e5bb00576fc56c2221f404eb77addeafe49843c773f0df3fc5a996d5934f3c96e94aeb80e89",
  289. recipeConfig: [
  290. {
  291. "op": "RIPEMD",
  292. "args": ["320"]
  293. }
  294. ]
  295. },
  296. {
  297. name: "HAS-160",
  298. input: "Hello, World!",
  299. expectedOutput: "8f6dd8d7c8a04b1cb3831adc358b1e4ac2ed5984",
  300. recipeConfig: [
  301. {
  302. "op": "HAS-160",
  303. "args": []
  304. }
  305. ]
  306. },
  307. {
  308. name: "Whirlpool-0",
  309. input: "Hello, World!",
  310. expectedOutput: "1c327026f565a0105a827efbfb3d3635cdb042c0aabb8416e96deb128e6c5c8684b13541cf31c26c1488949df050311c6999a12eb0e7002ad716350f5c7700ca",
  311. recipeConfig: [
  312. {
  313. "op": "Whirlpool",
  314. "args": ["Whirlpool-0"]
  315. }
  316. ]
  317. },
  318. {
  319. name: "Whirlpool-T",
  320. input: "Hello, World!",
  321. expectedOutput: "16c581089b6a6f356ae56e16a63a4c613eecd82a2a894b293f5ee45c37a31d09d7a8b60bfa7e414bd4a7166662cea882b5cf8c96b7d583fc610ad202591bcdb1",
  322. recipeConfig: [
  323. {
  324. "op": "Whirlpool",
  325. "args": ["Whirlpool-T"]
  326. }
  327. ]
  328. },
  329. {
  330. name: "Whirlpool",
  331. input: "Hello, World!",
  332. expectedOutput: "3d837c9ef7bb291bd1dcfc05d3004af2eeb8c631dd6a6c4ba35159b8889de4b1ec44076ce7a8f7bfa497e4d9dcb7c29337173f78d06791f3c3d9e00cc6017f0b",
  333. recipeConfig: [
  334. {
  335. "op": "Whirlpool",
  336. "args": ["Whirlpool"]
  337. }
  338. ]
  339. },
  340. {
  341. name: "Snefru 2 128",
  342. input: "Hello, World!",
  343. expectedOutput: "a4ad2b8848580511d0884fb4233a7e7a",
  344. recipeConfig: [
  345. {
  346. "op": "Snefru",
  347. "args": ["2", "128"]
  348. }
  349. ]
  350. },
  351. {
  352. name: "Snefru 4 128",
  353. input: "Hello, World!",
  354. expectedOutput: "d154eae2c9ffbcd2e1bdaf0b84736126",
  355. recipeConfig: [
  356. {
  357. "op": "Snefru",
  358. "args": ["4", "128"]
  359. }
  360. ]
  361. },
  362. {
  363. name: "Snefru 8 128",
  364. input: "Hello, World!",
  365. expectedOutput: "6f3d55b69557abb0a3c4e9de9d29ba5d",
  366. recipeConfig: [
  367. {
  368. "op": "Snefru",
  369. "args": ["8", "128"]
  370. }
  371. ]
  372. },
  373. {
  374. name: "Snefru 2 256",
  375. input: "Hello, World!",
  376. expectedOutput: "65736daba648de28ef4c4a316b4684584ecf9f22ddb5c457729e6bf0f40113c4",
  377. recipeConfig: [
  378. {
  379. "op": "Snefru",
  380. "args": ["2", "256"]
  381. }
  382. ]
  383. },
  384. {
  385. name: "Snefru 4 256",
  386. input: "Hello, World!",
  387. expectedOutput: "71b0ea4b3e33f2e58bcc67c8a8de060b99ec0107355bbfdc18d8f65f0194ffcc",
  388. recipeConfig: [
  389. {
  390. "op": "Snefru",
  391. "args": ["4", "256"]
  392. }
  393. ]
  394. },
  395. {
  396. name: "Snefru 8 256",
  397. input: "Hello, World!",
  398. expectedOutput: "255cd401414c79588cf689e8d5ff0536a2cfab83fcae36e654f202b09bc4b8a7",
  399. recipeConfig: [
  400. {
  401. "op": "Snefru",
  402. "args": ["8", "256"]
  403. }
  404. ]
  405. },
  406. {
  407. name: "HMAC SHA256",
  408. input: "Hello, World!",
  409. expectedOutput: "52589bd80ccfa4acbb3f9512dfaf4f700fa5195008aae0b77a9e47dcca75beac",
  410. recipeConfig: [
  411. {
  412. "op": "HMAC",
  413. "args": ["test", "SHA256"]
  414. }
  415. ]
  416. },
  417. {
  418. name: "MD5: Complex bytes",
  419. input: "10dc10e32010de10d010dc10d810d910d010e12e",
  420. expectedOutput: "4f4f02e2646545aa8fc42f613c9aa068",
  421. recipeConfig: [
  422. {
  423. "op": "From Hex",
  424. "args": ["None"]
  425. },
  426. {
  427. "op": "MD5",
  428. "args": []
  429. }
  430. ]
  431. },
  432. {
  433. name: "SHA1: Complex bytes",
  434. input: "10dc10e32010de10d010dc10d810d910d010e12e",
  435. expectedOutput: "2c5400aaee7e8ad4cad29bfbdf8d566924e5442c",
  436. recipeConfig: [
  437. {
  438. "op": "From Hex",
  439. "args": ["None"]
  440. },
  441. {
  442. "op": "SHA1",
  443. "args": []
  444. }
  445. ]
  446. },
  447. {
  448. name: "SHA2 224: Complex bytes",
  449. input: "10dc10e32010de10d010dc10d810d910d010e12e",
  450. expectedOutput: "66c166eba2529ecc44a7b7b218a64a8e3892f873c8d231e8e3c1ef3d",
  451. recipeConfig: [
  452. {
  453. "op": "From Hex",
  454. "args": ["None"]
  455. },
  456. {
  457. "op": "SHA2",
  458. "args": ["224"]
  459. }
  460. ]
  461. },
  462. {
  463. name: "SHA2 256: Complex bytes",
  464. input: "10dc10e32010de10d010dc10d810d910d010e12e",
  465. expectedOutput: "186ffd22c3af83995afa4a0316023f81a7f8834fd16bd2ed358c7b1b8182ba41",
  466. recipeConfig: [
  467. {
  468. "op": "From Hex",
  469. "args": ["None"]
  470. },
  471. {
  472. "op": "SHA2",
  473. "args": ["256"]
  474. }
  475. ]
  476. },
  477. {
  478. name: "SHA2 384: Complex bytes",
  479. input: "10dc10e32010de10d010dc10d810d910d010e12e",
  480. expectedOutput: "2a6369ffec550ea0bfb810b3b8246b7d6b7f060edfae88441f0f242b98b91549aa4ff407de38c6d03b5f377434ad2f36",
  481. recipeConfig: [
  482. {
  483. "op": "From Hex",
  484. "args": ["None"]
  485. },
  486. {
  487. "op": "SHA2",
  488. "args": ["384"]
  489. }
  490. ]
  491. },
  492. {
  493. name: "SHA2 512: Complex bytes",
  494. input: "10dc10e32010de10d010dc10d810d910d010e12e",
  495. expectedOutput: "544ae686522c05b70d12b460b5b39ea0a758eb4027333edbded7e2b3f467aa605804f71f54db61a7bbe50e6e7898510635efd6721fd418a9ea4d05b286d12806",
  496. recipeConfig: [
  497. {
  498. "op": "From Hex",
  499. "args": ["None"]
  500. },
  501. {
  502. "op": "SHA2",
  503. "args": ["512"]
  504. }
  505. ]
  506. },
  507. {
  508. name: "SHA3 224: Complex bytes",
  509. input: "10dc10e32010de10d010dc10d810d910d010e12e",
  510. expectedOutput: "e2c07562ee8c2d73e3dd309efea257159abd0948ebc14619bab9ffb3",
  511. recipeConfig: [
  512. {
  513. "op": "From Hex",
  514. "args": ["None"]
  515. },
  516. {
  517. "op": "SHA3",
  518. "args": ["224"]
  519. }
  520. ]
  521. },
  522. {
  523. name: "SHA3 256: Complex bytes",
  524. input: "10dc10e32010de10d010dc10d810d910d010e12e",
  525. expectedOutput: "55a55275387586afd1ed64757c9ee7ad1d96ca81a5b7b742c40127856ee78a2d",
  526. recipeConfig: [
  527. {
  528. "op": "From Hex",
  529. "args": ["None"]
  530. },
  531. {
  532. "op": "SHA3",
  533. "args": ["256"]
  534. }
  535. ]
  536. },
  537. {
  538. name: "SHA3 384: Complex bytes",
  539. input: "10dc10e32010de10d010dc10d810d910d010e12e",
  540. expectedOutput: "39f8796dd697dc39e5a943817833793f2c29dc0d1adc7037854c0fb51e135c6bd26b113240c4fb1e3fcc16ff8690c91a",
  541. recipeConfig: [
  542. {
  543. "op": "From Hex",
  544. "args": ["None"]
  545. },
  546. {
  547. "op": "SHA3",
  548. "args": ["384"]
  549. }
  550. ]
  551. },
  552. {
  553. name: "SHA3 512: Complex bytes",
  554. input: "10dc10e32010de10d010dc10d810d910d010e12e",
  555. expectedOutput: "ee9061bed83b1ad1e2fc4a4bac72a5a65a23a0fa55193b808af0a3e2013b718a5a3e40474765b4f93d1b2747401058a5b58099cc890a159db92b2ea816287add",
  556. recipeConfig: [
  557. {
  558. "op": "From Hex",
  559. "args": ["None"]
  560. },
  561. {
  562. "op": "SHA3",
  563. "args": ["512"]
  564. }
  565. ]
  566. },
  567. {
  568. name: "MD5: UTF-8",
  569. input: "ნუ პანიკას",
  570. expectedOutput: "2e93ee2b5b2a337ccb678c7db12eff1b",
  571. recipeConfig: [
  572. {
  573. "op": "MD5",
  574. "args": []
  575. }
  576. ]
  577. },
  578. {
  579. name: "SHA1: UTF-8",
  580. input: "ნუ პანიკას",
  581. expectedOutput: "87f483b1515dce672be044bf183ae8103e3b2d4b",
  582. recipeConfig: [
  583. {
  584. "op": "SHA1",
  585. "args": []
  586. }
  587. ]
  588. },
  589. {
  590. name: "SHA2 224: UTF-8",
  591. input: "ნუ პანიკას",
  592. expectedOutput: "563ca57b500157717961a5fa87ce42c6db76a488c98ea9c28d620770",
  593. recipeConfig: [
  594. {
  595. "op": "SHA2",
  596. "args": ["224"]
  597. }
  598. ]
  599. },
  600. {
  601. name: "SHA2 256: UTF-8",
  602. input: "ნუ პანიკას",
  603. expectedOutput: "36abbb4622ffff06aa3e3cea266765601b21457bb3755a0a2cf0a206422863c1",
  604. recipeConfig: [
  605. {
  606. "op": "SHA2",
  607. "args": ["256"]
  608. }
  609. ]
  610. },
  611. {
  612. name: "SHA2 384: UTF-8",
  613. input: "ნუ პანიკას",
  614. expectedOutput: "140b929391a66c9a943bcd60e6964f0d19526d3bc9ba020fbb29aae51cddb8e63a78784d8770f1d36335bf4efff8c131",
  615. recipeConfig: [
  616. {
  617. "op": "SHA2",
  618. "args": ["384"]
  619. }
  620. ]
  621. },
  622. {
  623. name: "SHA2 512: UTF-8",
  624. input: "ნუ პანიკას",
  625. expectedOutput: "04a7887c400bf647b7c67b9a0f1ada70d176348b5afdfebea184f7e62748849828669c7b5160be99455fdbf625589bd1689c003bc06ef60c39607d825a2f8838",
  626. recipeConfig: [
  627. {
  628. "op": "SHA2",
  629. "args": ["512"]
  630. }
  631. ]
  632. },
  633. {
  634. name: "SHA3 224: UTF-8",
  635. input: "ნუ პანიკას",
  636. expectedOutput: "b3ffc9620949f879cb561fb240452494e2566cb4e4f701a85715e14f",
  637. recipeConfig: [
  638. {
  639. "op": "SHA3",
  640. "args": ["224"]
  641. }
  642. ]
  643. },
  644. {
  645. name: "SHA3 256: UTF-8",
  646. input: "ნუ პანიკას",
  647. expectedOutput: "b5f247d725b46546c832502cd07bccb5d4de0c41a6665d3944ed2cc55cd9d156",
  648. recipeConfig: [
  649. {
  650. "op": "SHA3",
  651. "args": ["256"]
  652. }
  653. ]
  654. },
  655. {
  656. name: "SHA3 384: UTF-8",
  657. input: "ნუ პანიკას",
  658. expectedOutput: "93e87b9aa8c9c47eba146adac357c525b418b71677f6db01d1c760d87b058682e639c8d43a8bfe91529cecd9800700e3",
  659. recipeConfig: [
  660. {
  661. "op": "SHA3",
  662. "args": ["384"]
  663. }
  664. ]
  665. },
  666. {
  667. name: "SHA3 512: UTF-8",
  668. input: "ნუ პანიკას",
  669. expectedOutput: "1fbc484b5184982561795162757717474eebc846ca9f10029a75a54cdd897a7b48d1db42f2478fa1d5d213a0dd7de71c809cb19c60581ba57e7289d29408fb36",
  670. recipeConfig: [
  671. {
  672. "op": "SHA3",
  673. "args": ["512"]
  674. }
  675. ]
  676. },
  677. {
  678. name: "Bcrypt compare: dolphin",
  679. input: "dolphin",
  680. expectedOutput: "Match: dolphin",
  681. recipeConfig: [
  682. {
  683. op: "Bcrypt compare",
  684. args: ["$2a$10$qyon0LQCmMxpFFjwWH6Qh.dDdhqntQh./IN0RXCc3XIMILuOYZKgK"]
  685. }
  686. ]
  687. },
  688. {
  689. name: "Scrypt: RFC test vector 1",
  690. input: "",
  691. expectedOutput: "77d6576238657b203b19ca42c18a0497f16b4844e3074ae8dfdffa3fede21442fcd0069ded0948f8326a753a0fc81f17e8d3e0fb2e0d3628cf35e20c38d18906",
  692. recipeConfig: [
  693. {
  694. op: "Scrypt",
  695. args: [
  696. {
  697. "option": "Latin1",
  698. "string": ""
  699. },
  700. 16, 1, 1, 64
  701. ]
  702. }
  703. ]
  704. },
  705. {
  706. name: "Scrypt: RFC test vector 2",
  707. input: "password",
  708. expectedOutput: "fdbabe1c9d3472007856e7190d01e9fe7c6ad7cbc8237830e77376634b3731622eaf30d92e22a3886ff109279d9830dac727afb94a83ee6d8360cbdfa2cc0640",
  709. recipeConfig: [
  710. {
  711. op: "Scrypt",
  712. args: [
  713. {
  714. "option": "Latin1",
  715. "string": "NaCl"
  716. },
  717. 1024, 8, 16, 64
  718. ]
  719. }
  720. ]
  721. },
  722. {
  723. name: "Scrypt: RFC test vector 3",
  724. input: "pleaseletmein",
  725. expectedOutput: "7023bdcb3afd7348461c06cd81fd38ebfda8fbba904f8e3ea9b543f6545da1f2d5432955613f0fcf62d49705242a9af9e61e85dc0d651e40dfcf017b45575887",
  726. recipeConfig: [
  727. {
  728. op: "Scrypt",
  729. args: [
  730. {
  731. "option": "Latin1",
  732. "string": "SodiumChloride"
  733. },
  734. 16384, 8, 1, 64
  735. ]
  736. }
  737. ]
  738. },
  739. /*{ // This takes a LONG time to run (over a minute usually).
  740. name: "Scrypt: RFC test vector 4",
  741. input: "pleaseletmein",
  742. expectedOutput: "2101cb9b6a511aaeaddbbe09cf70f881ec568d574a2ffd4dabe5ee9820adaa478e56fd8f4ba5d09ffa1c6d927c40f4c337304049e8a952fbcbf45c6fa77a41a4",
  743. recipeConfig: [
  744. {
  745. op: "Scrypt",
  746. args: [
  747. {
  748. "option": "Latin1",
  749. "string": "SodiumChloride"
  750. },
  751. 1048576, 8, 1, 64
  752. ]
  753. }
  754. ]
  755. },*/
  756. ]);