// ĠCopyright Ġ( c ) ĠDaniel ĠH ug en ro th Ċ // Ċ // ĠThis Ġsource Ġcode Ġis Ġlicensed Ġunder Ġthe ĠMIT Ġlicense Ġfound Ġin Ġthe Ċ // ĠLICENSE Ġfile Ġin Ġthe Ġroot Ġdirectory Ġof Ġthis Ġsource Ġtree . Ċ Ċ package Ġcom . lamb dap ione er . argon 2 kt Ċ Ċ import Ġorg . assertj . core . api . Assertions . assertThat Ċ import Ġorg . assertj . core . api . Assertions . fail Ċ import Ġorg . junit . Test Ċ Ċ class ĠArg on 2 Kt Test Ġ{ ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġinit _ when Initialized _ then Nothing Thrown () Ġ{ ĊĠĠĠĠĠĠĠ ĠArg on 2 Kt () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġhash _ when RunWith Different Modes _ then Matches Expected Output Length () Ġ{ ĊĠĠĠĠĠĠĠ Ġfor Ġ( mode Ġin ĠArg on 2 Mode . values ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= ĠArg on 2 Kt (). hash ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmode Ġ= Ġmode , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpassword Ġ= Ġ" password ". toByteArray (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsalt Ġ= Ġ" some salt ". toByteArray (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġt Cost In Iterations Ġ= Ġ 1 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Cost In K ib ib yte Ġ= Ġ 1 0 2 4 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhash Length InBytes Ġ= Ġ 3 2 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( result . raw Hash As ByteArray ()). has Size ( 3 2 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġhash _ when Salt To Short _ then Matching Exception Thrown () Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠArg on 2 Kt (). hash ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmode Ġ= ĠArg on 2 Mode . ARG ON 2 _ I , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpassword Ġ= Ġ"". toByteArray (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsalt Ġ= Ġ" short ". toByteArray () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert This Line Not Executed () ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠArg on 2 Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( e . message ). contains Ign oring Case ("- 6 ") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( e . message ). contains Ign oring Case (" ARG ON 2 _ SAL T _ TOO _ SHORT ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// ĊĠĠĠ Ġ// ĠError Ġstate Ġtests Ġfor Ġverify ĊĠĠĠ Ġ// ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġofficial TestSuite _ v 1 3 _ argon 2 i _ error Case _ de coding Fail 1 () Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠArg on 2 Kt (). verify ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmode Ġ= ĠArg on 2 Mode . ARG ON 2 _ I , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġencoded Ġ= Ġ"\ $ argon 2 i \$ v = 1 9 \$ m = 6 5 5 3 6 , t = 2 , p = 1 c 2 9 t ZX N hb HQ \$ w WK IM h R 9 ly DF v Rz 9 Y TZ we HK fb ft vj + qf + Y FY 4 Ne B bt A ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpassword Ġ= Ġ" password ". toByteArray () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠArg on 2 Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( e . message ). contains Ign oring Case ("- 3 2 ") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( e . message ). contains Ign oring Case (" ARG ON 2 _ DE CODING _ FAIL ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġofficial TestSuite _ v 1 3 _ argon 2 i _ error Case _ de coding Fail 2 () Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠArg on 2 Kt (). verify ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmode Ġ= ĠArg on 2 Mode . ARG ON 2 _ I , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġencoded Ġ= Ġ"\ $ argon 2 i \$ v = 1 9 \$ m = 6 5 5 3 6 , t = 2 , p = 1 \$ c 2 9 t ZX N hb HQ w WK IM h R 9 ly DF v Rz 9 Y TZ we HK fb ft vj + qf + Y FY 4 Ne B bt A ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpassword Ġ= Ġ" password ". toByteArray () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠArg on 2 Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( e . message ). contains Ign oring Case ("- 3 2 ") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( e . message ). contains Ign oring Case (" ARG ON 2 _ DE CODING _ FAIL ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġofficial TestSuite _ v 1 3 _ argon 2 i _ error Case _ salt Too Short () Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠArg on 2 Kt (). verify ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmode Ġ= ĠArg on 2 Mode . ARG ON 2 _ I , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġencoded Ġ= Ġ"\ $ argon 2 i \$ v = 1 9 \$ m = 6 5 5 3 6 , t = 2 , p = 1 \ $\ $ 9 s Tb Sl T io 3 B ie v 8 9 th d rl KK i Ca Ys jj Y VJ x G AL 3 sw xp Q ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpassword Ġ= Ġ" password ". toByteArray () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠArg on 2 Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( e . message ). contains Ign oring Case ("- 6 ") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( e . message ). contains Ign oring Case (" ARG ON 2 _ SAL T _ TOO _ SHORT ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġofficial TestSuite _ v 1 3 _ argon 2 i _ error Case _ verify Mismatch () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġverification Result Ġ= ĠArg on 2 Kt (). verify ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmode Ġ= ĠArg on 2 Mode . ARG ON 2 _ I , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġencoded Ġ= Ġ"\ $ argon 2 i \$ v = 1 9 \$ m = 6 5 5 3 6 , t = 2 , p = 1 \$ c 2 9 t ZX N hb HQ \$ 8 i I uix k I 7 3 Js 3 G 1 u M be z QX D 0 b 8 LG 4 S XGs O wo Q kd AQ IM ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpassword Ġ= Ġ" password ". toByteArray () ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ ĠassertThat ( verification Result ). isFalse () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// ĊĠĠĠ Ġ// ĠV 1 0 , ĠArg on 2 i ĊĠĠĠ Ġ// ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġofficial TestSuite _ v 1 0 _ argon 2 i _ case 1 () Ġ= Ġrun Test ( ĊĠĠĠĠĠĠĠ Ġversion Ġ= ĠArg on 2 Version . V 1 0 , Ġt Ġ= Ġ 2 , Ġm Ġ= Ġ 1 6 , Ġp Ġ= Ġ 1 , ĊĠĠĠĠĠĠĠ Ġpassword Ġ= Ġ" password ", Ġsalt Ġ= Ġ" some salt ", ĊĠĠĠĠĠĠĠ Ġexpected Hex Hash Ġ= Ġ" f 6 c 4 db 4 a 5 4 e 2 a 3 7 0 6 2 7 aff 3 db 6 1 7 6 b 9 4 a 2 a 2 0 9 a 6 2 c 8 e 3 6 1 5 2 7 1 1 8 0 2 f 7 b 3 0 c 6 9 4 ", ĊĠĠĠĠĠĠĠ Ġexpected Encoded Output Header Ġ= Ġ"\ $ argon 2 i \$ m = 6 5 5 3 6 , t = 2 , p = 1 \$ c 2 9 t ZX N hb HQ ", ĊĠĠĠĠĠĠĠ Ġexpected Encoded Output Hash Ġ= Ġ"\ $ 9 s Tb Sl T io 3 B ie v 8 9 th d rl KK i Ca Ys jj Y VJ x G AL 3 sw xp Q ", Ġmode Ġ= ĠArg on 2 Mode . ARG ON 2 _ I ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġofficial TestSuite _ v 1 0 _ argon 2 i _ case 2 () Ġ= Ġrun Test ( ĊĠĠĠĠĠĠĠ Ġversion Ġ= ĠArg on 2 Version . V 1 0 , Ġt Ġ= Ġ 2 , Ġm Ġ= Ġ 1 8 , Ġp Ġ= Ġ 1 , ĊĠĠĠĠĠĠĠ Ġpassword Ġ= Ġ" password ", Ġsalt Ġ= Ġ" some salt ", ĊĠĠĠĠĠĠĠ Ġexpected Hex Hash Ġ= Ġ" 3 e 6 8 9 aaa 3 d 2 8 a 7 7 cf 2 bc 7 2 a 5 1 ac 5 3 1 6 6 7 6 1 7 5 1 1 8 2 f 1 ee 2 9 2 e 3 f 6 7 7 a 7 da 4 c 2 4 6 7 ", ĊĠĠĠĠĠĠĠ Ġexpected Encoded Output Header Ġ= Ġ"\ $ argon 2 i \$ m = 2 6 2 1 4 4 , t = 2 , p = 1 \$ c 2 9 t ZX N hb HQ ", ĊĠĠĠĠĠĠĠ Ġexpected Encoded Output Hash Ġ= Ġ"\ $ Pm ia qj 0 op 3 zy v HK l Gs Ux Zn YX UR gv Hu KS 4 / Z 3 p 9 p MJ Gc ", Ġmode Ġ= ĠArg on 2 Mode . ARG ON 2 _ I ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġofficial TestSuite _ v 1 0 _ argon 2 i _ case 3 () Ġ= Ġrun Test ( ĊĠĠĠĠĠĠĠ Ġversion Ġ= ĠArg on 2 Version . V 1 0 , Ġt Ġ= Ġ 2 , Ġm Ġ= Ġ 8 , Ġp Ġ= Ġ 1 , ĊĠĠĠĠĠĠĠ Ġpassword Ġ= Ġ" password ", Ġsalt Ġ= Ġ" some salt ", ĊĠĠĠĠĠĠĠ Ġexpected Hex Hash Ġ= Ġ" fd 4 dd 8 3 d 7 6 2 c 4 9 bde af 5 7 c 4 7 bd cd 0 c 2 f 1 bab f 8 6 3 f deb 4 9 0 df 6 3 ede 9 9 7 5 fcc f 0 6 ", ĊĠĠĠĠĠĠĠ Ġexpected Encoded Output Header Ġ= Ġ"\ $ argon 2 i \$ m = 2 5 6 , t = 2 , p = 1 \$ c 2 9 t ZX N hb HQ ", ĊĠĠĠĠĠĠĠ Ġexpected Encoded Output Hash Ġ= Ġ"\ $/ U 3 YP XY s Sb 3 q 9 Xx H vc 0 ML x ur + GP 9 6 0 k N 9 j 7 em XX 8 zw Y ", Ġmode Ġ= ĠArg on 2 Mode . ARG ON 2 _ I ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġofficial TestSuite _ v 1 0 _ argon 2 i _ case 4 () Ġ= Ġrun Test ( ĊĠĠĠĠĠĠĠ Ġversion Ġ= ĠArg on 2 Version . V 1 0 , Ġt Ġ= Ġ 2 , Ġm Ġ= Ġ 8 , Ġp Ġ= Ġ 2 , ĊĠĠĠĠĠĠĠ Ġpassword Ġ= Ġ" password ", Ġsalt Ġ= Ġ" some salt ", ĊĠĠĠĠĠĠĠ Ġexpected Hex Hash Ġ= Ġ" b 6 c 1 1 5 6 0 a 6 a 9 d 6 1 eac 7 0 6 b 7 9 a 2 f 9 7 d 6 8 b 4 4 6 3 aa 3 ad 8 7 e 0 0 c 0 7 e 2 b 0 1 e 9 0 c 5 6 4 fb ", ĊĠĠĠĠĠĠĠ Ġexpected Encoded Output Header Ġ= Ġ"\ $ argon 2 i \$ m = 2 5 6 , t = 2 , p = 2 \$ c 2 9 t ZX N hb HQ ", ĊĠĠĠĠĠĠĠ Ġexpected Encoded Output Hash Ġ= Ġ"\ $ ts EV YK ap 1 h 6 sc Gt 5 ov l 9 a LR GO q O th + AMB + Kw Hp DF Z Ps ", Ġmode Ġ= ĠArg on 2 Mode . ARG ON 2 _ I ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġofficial TestSuite _ v 1 0 _ argon 2 i _ case 5 () Ġ= Ġrun Test ( ĊĠĠĠĠĠĠĠ Ġversion Ġ= ĠArg on 2 Version . V 1 0 , Ġt Ġ= Ġ 1 , Ġm Ġ= Ġ 1 6 , Ġp Ġ= Ġ 1 , ĊĠĠĠĠĠĠĠ Ġpassword Ġ= Ġ" password ", Ġsalt Ġ= Ġ" some salt ", ĊĠĠĠĠĠĠĠ Ġexpected Hex Hash Ġ= Ġ" 8 1 6 3 0 5 5 2 b 8 f 3 b 1 f 4 8 cdb 1 9 9 2 c 4 c 6 7 8 6 4 3 d 4 9 0 b 2 b 5 eb 4 ff 6 c 4 b 3 4 3 8 b 5 6 2 1 7 2 4 b 2 ", ĊĠĠĠĠĠĠĠ Ġexpected Encoded Output Header Ġ= Ġ"\ $ argon 2 i \$ m = 6 5 5 3 6 , t = 1 , p = 1 \$ c 2 9 t ZX N hb HQ ", ĊĠĠĠĠĠĠĠ Ġexpected Encoded Output Hash Ġ= Ġ"\ $ g WM FU r jz sf SM 2 xm Sx MZ 4 ZD 1 JC yt et P 9 s Sz Q 4 t W IX J LI ", Ġmode Ġ= ĠArg on 2 Mode . ARG ON 2 _ I ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġofficial TestSuite _ v 1 0 _ argon 2 i _ case 6 () Ġ= Ġrun Test ( ĊĠĠĠĠĠĠĠ Ġversion Ġ= ĠArg on 2 Version . V 1 0 , Ġt Ġ= Ġ 4 , Ġm Ġ= Ġ 1 6 , Ġp Ġ= Ġ 1 , ĊĠĠĠĠĠĠĠ Ġpassword Ġ= Ġ" password ", Ġsalt Ġ= Ġ" some salt ", ĊĠĠĠĠĠĠĠ Ġexpected Hex Hash Ġ= Ġ" f 2 1 2 f 0 1 6 1 5 e 6 eb 5 d 7 4 7 3 4 dc 3 ef 4 0 ade 2 d 5 1 d 0 5 2 4 6 8 d 8 c 6 9 4 4 0 a 3 a 1 f 2 c 1 c 2 8 4 7 b ", ĊĠĠĠĠĠĠĠ Ġexpected Encoded Output Header Ġ= Ġ"\ $ argon 2 i \$ m = 6 5 5 3 6 , t = 4 , p = 1 \$ c 2 9 t ZX N hb HQ ", ĊĠĠĠĠĠĠĠ Ġexpected Encoded Output Hash Ġ= Ġ"\ $ 8 h Lw Fh Xm 6 1 1 0 c 0 3 D 7 0 Ct 4 t Ud BS Ro 2 Ma U QK Oh 8 s H Ch Hs ", Ġmode Ġ= ĠArg on 2 Mode . ARG ON 2 _ I ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġofficial TestSuite _ v 1 0 _ argon 2 i _ case 7 () Ġ= Ġrun Test ( ĊĠĠĠĠĠĠĠ Ġversion Ġ= ĠArg on 2 Version . V 1 0 , Ġt Ġ= Ġ 2 , Ġm Ġ= Ġ 1 6 , Ġp Ġ= Ġ 1 , ĊĠĠĠĠĠĠĠ Ġpassword Ġ= Ġ" different password ", Ġsalt Ġ= Ġ" some salt ", ĊĠĠĠĠĠĠĠ Ġexpected Hex Hash Ġ= Ġ" e 9 c 9 0 2 0 7 4 b 6 7 5 4 5 3 1 a 3 a 0 be 5 1 9 e 5 baf 4 0 4 b 3 0 ce 6 9 b 3 f 0 1 ac 3 bf 2 1 2 2 9 9 6 0 1 0 9 a 3 ", ĊĠĠĠĠĠĠĠ Ġexpected Encoded Output Header Ġ= Ġ"\ $ argon 2 i \$ m = 6 5 5 3 6 , t = 2 , p = 1 \$ c 2 9 t ZX N hb HQ ", ĊĠĠĠĠĠĠĠ Ġexpected Encoded Output Hash Ġ= Ġ"\ $ 6 ck CB 0 tn V FM a Og vl Ge W 6 9 AS z DO ab Pw Gs O / IS K ZY BC a M ", Ġmode Ġ= ĠArg on 2 Mode . ARG ON 2 _ I ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġofficial TestSuite _ v 1 0 _ argon 2 i _ case 8 () Ġ= Ġrun Test ( ĊĠĠĠĠĠĠĠ Ġversion Ġ= ĠArg on 2 Version . V 1 0 , Ġt Ġ= Ġ 2 , Ġm Ġ= Ġ 1 6 , Ġp Ġ= Ġ 1 , ĊĠĠĠĠĠĠĠ Ġpassword Ġ= Ġ" password ", Ġsalt Ġ= Ġ" dif fs alt ", ĊĠĠĠĠĠĠĠ Ġexpected Hex Hash Ġ= Ġ" 7 9 a 1 0 3 b 9 0 fe 8 aef 8 5 7 0 cb 3 1 fc 8 b 2 2 2 5 9 7 7 8 9 1 6 f 8 3 3 6 b 7 bd ac 3 8 9 2 5 6 9 d 4 f 1 c 4 9 7 ", ĊĠĠĠĠĠĠĠ Ġexpected Encoded Output Header Ġ= Ġ"\ $ argon 2 i \$ m = 6 5 5 3 6 , t = 2 , p = 1 \$ Z Gl m Zn N hb HQ ", ĊĠĠĠĠĠĠĠ Ġexpected Encoded Output Hash Ġ= Ġ"\ $ ea ED u Q / or vh X DL M fy LI i WX e JF vg za 3 v aw 4 klad T xx Jc ", Ġmode Ġ= ĠArg on 2 Mode . ARG ON 2 _ I ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġ// ĊĠĠĠ Ġ// ĠV 1 3 , ĠArg on 2 i ĊĠĠĠ Ġ// ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġofficial TestSuite _ v 1 3 _ argon 2 i _ case 1 () Ġ= Ġrun Test ( ĊĠĠĠĠĠĠĠ Ġversion Ġ= ĠArg on 2 Version . V 1 3 , Ġt Ġ= Ġ 2 , Ġm Ġ= Ġ 1 6 , Ġp Ġ= Ġ 1 , ĊĠĠĠĠĠĠĠ Ġpassword Ġ= Ġ" password ", Ġsalt Ġ= Ġ" some salt ", ĊĠĠĠĠĠĠĠ Ġexpected Hex Hash Ġ= Ġ" c 1 6 2 8 8 3 2 1 4 7 d 9 7 2 0 c 5 bd 1 cfd 6 1 3 6 7 0 7 8 7 2 9 f 6 dfb 6 f 8 fea 9 ff 9 8 1 5 8 e 0 d 7 8 1 6 ed 0 ", ĊĠĠĠĠĠĠĠ Ġexpected Encoded Output Header Ġ= Ġ"\ $ argon 2 i \$ v = 1 9 \$ m = 6 5 5 3 6 , t = 2 , p = 1 \$ c 2 9 t ZX N hb HQ ", ĊĠĠĠĠĠĠĠ Ġexpected Encoded Output Hash Ġ= Ġ"\ $ w WK IM h R 9 ly DF v Rz 9 Y TZ we HK fb ft vj + qf + Y FY 4 Ne B bt A ", Ġmode Ġ= ĠArg on 2 Mode . ARG ON 2 _ I ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġofficial TestSuite _ v 1 3 _ argon 2 i _ case 2 () Ġ= Ġrun Test ( ĊĠĠĠĠĠĠĠ Ġversion Ġ= ĠArg on 2 Version . V 1 3 , Ġt Ġ= Ġ 2 , Ġm Ġ= Ġ 1 8 , Ġp Ġ= Ġ 1 , ĊĠĠĠĠĠĠĠ Ġpassword Ġ= Ġ" password ", Ġsalt Ġ= Ġ" some salt ", ĊĠĠĠĠĠĠĠ Ġexpected Hex Hash Ġ= Ġ" 2 9 6 db ae 8 0 b 8 0 7 cd ce aad 4 4 ae 7 4 1 b 5 0 6 f 1 4 db 0 9 5 9 2 6 7 b 1 8 3 b 1 1 8 f 9 b 2 4 2 2 9 bc 7 cb ", ĊĠĠĠĠĠĠĠ Ġexpected Encoded Output Header Ġ= Ġ"\ $ argon 2 i \$ v = 1 9 \$ m = 2 6 2 1 4 4 , t = 2 , p = 1 \$ c 2 9 t ZX N hb HQ ", ĊĠĠĠĠĠĠĠ Ġexpected Encoded Output Hash Ġ= Ġ"\ $ KW 2 6 6 Au Af Nz qr US ud Bt Q bx Tb CV k mex g 7 EY + b J CK bx 8 s ", Ġmode Ġ= ĠArg on 2 Mode . ARG ON 2 _ I ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġofficial TestSuite _ v 1 3 _ argon 2 i _ case 3 () Ġ= Ġrun Test ( ĊĠĠĠĠĠĠĠ Ġversion Ġ= ĠArg on 2 Version . V 1 3 , Ġt Ġ= Ġ 2 , Ġm Ġ= Ġ 8 , Ġp Ġ= Ġ 1 , ĊĠĠĠĠĠĠĠ Ġpassword Ġ= Ġ" password ", Ġsalt Ġ= Ġ" some salt ", ĊĠĠĠĠĠĠĠ Ġexpected Hex Hash Ġ= Ġ" 8 9 e 9 0 2 9 f 4 6 3 7 b 2 9 5 beb 0 2 7 0 5 6 a 7 3 3 6 c 4 1 4 f add 4 3 f 6 b 2 0 8 6 4 5 2 8 1 cb 2 1 4 a 5 6 4 5 2 f ", ĊĠĠĠĠĠĠĠ Ġexpected Encoded Output Header Ġ= Ġ"\ $ argon 2 i \$ v = 1 9 \$ m = 2 5 6 , t = 2 , p = 1 \$ c 2 9 t ZX N hb HQ ", ĊĠĠĠĠĠĠĠ Ġexpected Encoded Output Hash Ġ= Ġ"\ $ ie k Cn 0 Y 3 sp W + s Cc Fan M 2 xB T 6 3 UP 2 sg hk Uo H LI Up WR S 8 ", Ġmode Ġ= ĠArg on 2 Mode . ARG ON 2 _ I ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġofficial TestSuite _ v 1 3 _ argon 2 i _ case 4 () Ġ= Ġrun Test ( ĊĠĠĠĠĠĠĠ Ġversion Ġ= ĠArg on 2 Version . V 1 3 , Ġt Ġ= Ġ 2 , Ġm Ġ= Ġ 8 , Ġp Ġ= Ġ 2 , ĊĠĠĠĠĠĠĠ Ġpassword Ġ= Ġ" password ", Ġsalt Ġ= Ġ" some salt ", ĊĠĠĠĠĠĠĠ Ġexpected Hex Hash Ġ= Ġ" 4 ff 5 ce 2 7 6 9 a 1 d 7 f 4 c 8 a 4 9 1 df 0 9 d 4 1 a 9 fbe 9 0 e 5 eb 0 2 1 5 5 a 1 3 e 4 c 0 1 e 2 0 cd 4 eab 6 1 ", ĊĠĠĠĠĠĠĠ Ġexpected Encoded Output Header Ġ= Ġ"\ $ argon 2 i \$ v = 1 9 \$ m = 2 5 6 , t = 2 , p = 2 \$ c 2 9 t ZX N hb HQ ", ĊĠĠĠĠĠĠĠ Ġexpected Encoded Output Hash Ġ= Ġ"\ $ T / XO J 2 mh 1 / TI p JH f Cd Q an 7 6 Q 5 es CF Vo T 5 MA e IM 1 O q 2 E ", Ġmode Ġ= ĠArg on 2 Mode . ARG ON 2 _ I ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġofficial TestSuite _ v 1 3 _ argon 2 i _ case 5 () Ġ= Ġrun Test ( ĊĠĠĠĠĠĠĠ Ġversion Ġ= ĠArg on 2 Version . V 1 3 , Ġt Ġ= Ġ 1 , Ġm Ġ= Ġ 1 6 , Ġp Ġ= Ġ 1 , ĊĠĠĠĠĠĠĠ Ġpassword Ġ= Ġ" password ", Ġsalt Ġ= Ġ" some salt ", ĊĠĠĠĠĠĠĠ Ġexpected Hex Hash Ġ= Ġ" d 1 6 8 0 7 5 c 4 d 9 8 5 e 1 3 ebe ae 5 6 0 cf 8 b 9 4 c 3 b 5 d 8 a 1 6 c 5 1 9 1 6 b 6 f 4 ac 2 da 3 ac 1 1 bb ecf ", ĊĠĠĠĠĠĠĠ Ġexpected Encoded Output Header Ġ= Ġ"\ $ argon 2 i \$ v = 1 9 \$ m = 6 5 5 3 6 , t = 1 , p = 1 \$ c 2 9 t ZX N hb HQ ", ĊĠĠĠĠĠĠĠ Ġexpected Encoded Output Hash Ġ= Ġ"\ $ 0 Wg HX E 2 YX h Pr 6 u V gz 4 u Uw 7 XY o Wx Rk W tv Ss La Os Eb vs 8 ", Ġmode Ġ= ĠArg on 2 Mode . ARG ON 2 _ I ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġofficial TestSuite _ v 1 3 _ argon 2 i _ case 6 () Ġ= Ġrun Test ( ĊĠĠĠĠĠĠĠ Ġversion Ġ= ĠArg on 2 Version . V 1 3 , Ġt Ġ= Ġ 4 , Ġm Ġ= Ġ 1 6 , Ġp Ġ= Ġ 1 , ĊĠĠĠĠĠĠĠ Ġpassword Ġ= Ġ" password ", Ġsalt Ġ= Ġ" some salt ", ĊĠĠĠĠĠĠĠ Ġexpected Hex Hash Ġ= Ġ" aaa 9 5 3 d 5 8 af 3 7 0 6 ce 3 df 1 aef d 4 a 6 4 a 8 4 e 3 1 d 7 f 5 4 1 7 5 2 3 1 f 1 2 8 5 2 5 9 f 8 8 1 7 4 ce 5 b ", ĊĠĠĠĠĠĠĠ Ġexpected Encoded Output Header Ġ= Ġ"\ $ argon 2 i \$ v = 1 9 \$ m = 6 5 5 3 6 , t = 4 , p = 1 \$ c 2 9 t ZX N hb HQ ", ĊĠĠĠĠĠĠĠ Ġexpected Encoded Output Hash Ġ= Ġ"\ $ q ql T 1 Y rz c G zj 3 x rv 1 K Z Kh OM df 1 QX Uj Hx K FJ Z + IF 0 z ls ", Ġmode Ġ= ĠArg on 2 Mode . ARG ON 2 _ I ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġofficial TestSuite _ v 1 3 _ argon 2 i _ case 7 () Ġ= Ġrun Test ( ĊĠĠĠĠĠĠĠ Ġversion Ġ= ĠArg on 2 Version . V 1 3 , Ġt Ġ= Ġ 2 , Ġm Ġ= Ġ 1 6 , Ġp Ġ= Ġ 1 , ĊĠĠĠĠĠĠĠ Ġpassword Ġ= Ġ" different password ", Ġsalt Ġ= Ġ" some salt ", ĊĠĠĠĠĠĠĠ Ġexpected Hex Hash Ġ= Ġ" 1 4 ae 8 da 0 1 afe a 8 7 0 0 c 2 3 5 8 d cef 7 c 5 3 5 8 d 9 0 2 1 2 8 2 bd 8 8 6 6 3 a 4 5 6 2 f 5 9 fb 7 4 d 2 2 ee ", ĊĠĠĠĠĠĠĠ Ġexpected Encoded Output Header Ġ= Ġ"\ $ argon 2 i \$ v = 1 9 \$ m = 6 5 5 3 6 , t = 2 , p = 1 \$ c 2 9 t ZX N hb HQ ", ĊĠĠĠĠĠĠĠ Ġexpected Encoded Output Hash Ġ= Ġ"\ $ FK 6 No Br + q H AM I 1 jc 7 3 x T WN k CE o K 9 i GY 6 R WL 1 n 7 d NI u 4 ", Ġmode Ġ= ĠArg on 2 Mode . ARG ON 2 _ I ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġofficial TestSuite _ v 1 3 _ argon 2 i _ case 8 () Ġ= Ġrun Test ( ĊĠĠĠĠĠĠĠ Ġversion Ġ= ĠArg on 2 Version . V 1 3 , Ġt Ġ= Ġ 2 , Ġm Ġ= Ġ 1 6 , Ġp Ġ= Ġ 1 , ĊĠĠĠĠĠĠĠ Ġpassword Ġ= Ġ" password ", Ġsalt Ġ= Ġ" dif fs alt ", ĊĠĠĠĠĠĠĠ Ġexpected Hex Hash Ġ= Ġ" b 0 3 5 7 cc cf bef 9 1 f 3 8 6 0 b 0 dba 4 4 7 b 2 3 4 8 cbe fec ad af 9 9 0 ab fe 9 cc 4 0 7 2 6 c 5 2 1 2 7 1 ", ĊĠĠĠĠĠĠĠ Ġexpected Encoded Output Header Ġ= Ġ"\ $ argon 2 i \$ v = 1 9 \$ m = 6 5 5 3 6 , t = 2 , p = 1 \$ Z Gl m Zn N hb HQ ", ĊĠĠĠĠĠĠĠ Ġexpected Encoded Output Hash Ġ= Ġ"\ $ s DV 8 z Pv vk f O GC w 2 6 RH sj SM vv 7 K 2 vm Qq / 6 cx Ac mx S En E ", Ġmode Ġ= ĠArg on 2 Mode . ARG ON 2 _ I ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġ// ĊĠĠĠ Ġ// ĠV 1 3 , ĠArg on 2 id ĊĠĠĠ Ġ// ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġofficial TestSuite _ v 1 3 _ argon 2 id _ case 1 () Ġ= Ġrun Test ( ĊĠĠĠĠĠĠĠ Ġversion Ġ= ĠArg on 2 Version . V 1 3 , Ġt Ġ= Ġ 2 , Ġm Ġ= Ġ 1 6 , Ġp Ġ= Ġ 1 , ĊĠĠĠĠĠĠĠ Ġpassword Ġ= Ġ" password ", Ġsalt Ġ= Ġ" some salt ", ĊĠĠĠĠĠĠĠ Ġexpected Hex Hash Ġ= Ġ" 0 9 3 1 6 1 1 5 d 5 cf 2 4 ed 5 a 1 5 a 3 1 a 3 ba 3 2 6 e 5 cf 3 2 edc 2 4 7 0 2 9 8 7 c 0 2 b 6 5 6 6 f 6 1 9 1 3 cf 7 ", ĊĠĠĠĠĠĠĠ Ġexpected Encoded Output Header Ġ= Ġ"\ $ argon 2 id \$ v = 1 9 \$ m = 6 5 5 3 6 , t = 2 , p = 1 \$ c 2 9 t ZX N hb HQ ", ĊĠĠĠĠĠĠĠ Ġexpected Encoded Output Hash Ġ= Ġ"\ $ CT Fh Fd XP JO 1 a Fa Ma O 6 Mm 5 c 8 y 7 c J HA ph 8 Ar ZW b 2 GR PP c ", Ġmode Ġ= ĠArg on 2 Mode . ARG ON 2 _ ID ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġofficial TestSuite _ v 1 3 _ argon 2 id _ case 2 () Ġ= Ġrun Test ( ĊĠĠĠĠĠĠĠ Ġversion Ġ= ĠArg on 2 Version . V 1 3 , Ġt Ġ= Ġ 2 , Ġm Ġ= Ġ 1 8 , Ġp Ġ= Ġ 1 , ĊĠĠĠĠĠĠĠ Ġpassword Ġ= Ġ" password ", Ġsalt Ġ= Ġ" some salt ", ĊĠĠĠĠĠĠĠ Ġexpected Hex Hash Ġ= Ġ" 7 8 fe 1 ec 9 1 fb 3 aa 5 6 5 7 d 7 2 e 7 1 0 8 5 4 e 4 c 3 d 9 b 9 1 9 8 c 7 4 2 f 9 6 1 6 c 2 f 0 8 5 bed 9 5 b 2 e 8 c ", ĊĠĠĠĠĠĠĠ Ġexpected Encoded Output Header Ġ= Ġ"\ $ argon 2 id \$ v = 1 9 \$ m = 2 6 2 1 4 4 , t = 2 , p = 1 \$ c 2 9 t ZX N hb HQ ", ĊĠĠĠĠĠĠĠ Ġexpected Encoded Output Hash Ġ= Ġ"\ $ eP 4 ey R + z ql ZX 1 y 5 xC FT kw 9 m 5 GY x 0 L 5 YW wv CF v tl b Low ", Ġmode Ġ= ĠArg on 2 Mode . ARG ON 2 _ ID ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġofficial TestSuite _ v 1 3 _ argon 2 id _ case 3 () Ġ= Ġrun Test ( ĊĠĠĠĠĠĠĠ Ġversion Ġ= ĠArg on 2 Version . V 1 3 , Ġt Ġ= Ġ 2 , Ġm Ġ= Ġ 8 , Ġp Ġ= Ġ 1 , ĊĠĠĠĠĠĠĠ Ġpassword Ġ= Ġ" password ", Ġsalt Ġ= Ġ" some salt ", ĊĠĠĠĠĠĠĠ Ġexpected Hex Hash Ġ= Ġ" 9 df eb 9 1 0 e 8 0 bad 0 3 1 1 fee 2 0 f 9 c 0 e 2 b 1 2 c 1 7 9 8 7 b 4 cac 9 0 c 2 ef 5 4 d 5 b 3 0 2 1 c 6 8 bfe ", ĊĠĠĠĠĠĠĠ Ġexpected Encoded Output Header Ġ= Ġ"\ $ argon 2 id \$ v = 1 9 \$ m = 2 5 6 , t = 2 , p = 1 \$ c 2 9 t ZX N hb HQ ", ĊĠĠĠĠĠĠĠ Ġexpected Encoded Output Hash Ġ= Ġ"\ $ nf 6 5 EO g Lr Q MR / u IP nA 4 r Es F 5 h 7 TK y Q wu 9 U 1 b M CH Gi / 4 ", Ġmode Ġ= ĠArg on 2 Mode . ARG ON 2 _ ID ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġofficial TestSuite _ v 1 3 _ argon 2 id _ case 4 () Ġ= Ġrun Test ( ĊĠĠĠĠĠĠĠ Ġversion Ġ= ĠArg on 2 Version . V 1 3 , Ġt Ġ= Ġ 2 , Ġm Ġ= Ġ 8 , Ġp Ġ= Ġ 2 , ĊĠĠĠĠĠĠĠ Ġpassword Ġ= Ġ" password ", Ġsalt Ġ= Ġ" some salt ", ĊĠĠĠĠĠĠĠ Ġexpected Hex Hash Ġ= Ġ" 6 d 0 9 3 c 5 0 1 fd 5 9 9 9 6 4 5 e 0 ea 3 bf 6 2 0 d 7 b 8 be 7 fd 2 db 5 9 c 2 0 d 9 fff 9 5 3 9 da 2 bf 5 7 0 3 7 ", ĊĠĠĠĠĠĠĠ Ġexpected Encoded Output Header Ġ= Ġ"\ $ argon 2 id \$ v = 1 9 \$ m = 2 5 6 , t = 2 , p = 2 \$ c 2 9 t ZX N hb HQ ", ĊĠĠĠĠĠĠĠ Ġexpected Encoded Output Hash Ġ= Ġ"\ $ b Qk 8 UB / Vm ZZ F 4 Oo 7 9 i DX u L 5 / 0 tt Z wg 2 f / 5 U 5 2 iv 1 c Dc ", Ġmode Ġ= ĠArg on 2 Mode . ARG ON 2 _ ID ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġofficial TestSuite _ v 1 3 _ argon 2 id _ case 5 () Ġ= Ġrun Test ( ĊĠĠĠĠĠĠĠ Ġversion Ġ= ĠArg on 2 Version . V 1 3 , Ġt Ġ= Ġ 1 , Ġm Ġ= Ġ 1 6 , Ġp Ġ= Ġ 1 , ĊĠĠĠĠĠĠĠ Ġpassword Ġ= Ġ" password ", Ġsalt Ġ= Ġ" some salt ", ĊĠĠĠĠĠĠĠ Ġexpected Hex Hash Ġ= Ġ" f 6 a 5 adc 1 ba 7 2 3 dd def 9 b 5 ac 1 d 4 6 4 e 1 8 0 fcd 9 d ffc 9 d 1 cbf 7 6 cca 2 fed 7 9 5 d 9 ca 9 8 ", ĊĠĠĠĠĠĠĠ Ġexpected Encoded Output Header Ġ= Ġ"\ $ argon 2 id \$ v = 1 9 \$ m = 6 5 5 3 6 , t = 1 , p = 1 \$ c 2 9 t ZX N hb HQ ", ĊĠĠĠĠĠĠĠ Ġexpected Encoded Output Hash Ġ= Ġ"\ $ 9 q W tw b py Pd 3 vm 1 r B 1 G Th g Pz Z 3 / yd HL 9 2 z KL + 1 5 X Zy pg ", Ġmode Ġ= ĠArg on 2 Mode . ARG ON 2 _ ID ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġofficial TestSuite _ v 1 3 _ argon 2 id _ case 6 () Ġ= Ġrun Test ( ĊĠĠĠĠĠĠĠ Ġversion Ġ= ĠArg on 2 Version . V 1 3 , Ġt Ġ= Ġ 4 , Ġm Ġ= Ġ 1 6 , Ġp Ġ= Ġ 1 , ĊĠĠĠĠĠĠĠ Ġpassword Ġ= Ġ" password ", Ġsalt Ġ= Ġ" some salt ", ĊĠĠĠĠĠĠĠ Ġexpected Hex Hash Ġ= Ġ" 9 0 2 5 d 4 8 e 6 8 ef 7 3 9 5 cca 9 0 7 9 da 4 c 4 ec 3 aff b 3 c 8 9 1 1 fe 4 f 8 6 d 1 a 2 5 2 0 8 5 6 f 6 3 1 7 2 c ", ĊĠĠĠĠĠĠĠ Ġexpected Encoded Output Header Ġ= Ġ"\ $ argon 2 id \$ v = 1 9 \$ m = 6 5 5 3 6 , t = 4 , p = 1 \$ c 2 9 t ZX N hb HQ ", ĊĠĠĠĠĠĠĠ Ġexpected Encoded Output Hash Ġ= Ġ"\ $ k CX U jm j vc 5 XM q Q ed p MT s Ov + zy JE f 5 P ht Gi U gh W 9 j F yw ", Ġmode Ġ= ĠArg on 2 Mode . ARG ON 2 _ ID ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġofficial TestSuite _ v 1 3 _ argon 2 id _ case 7 () Ġ= Ġrun Test ( ĊĠĠĠĠĠĠĠ Ġversion Ġ= ĠArg on 2 Version . V 1 3 , Ġt Ġ= Ġ 2 , Ġm Ġ= Ġ 1 6 , Ġp Ġ= Ġ 1 , ĊĠĠĠĠĠĠĠ Ġpassword Ġ= Ġ" different password ", Ġsalt Ġ= Ġ" some salt ", ĊĠĠĠĠĠĠĠ Ġexpected Hex Hash Ġ= Ġ" 0 b 8 4 d 6 5 2 cf 6 b 0 c 4 bea ef 0 dfe 2 7 8 ba 6 a 8 0 df 6 6 9 6 2 8 1 d 7 e 0 d 2 8 9 1 b 8 1 7 d 8 c 4 5 8 fde ", ĊĠĠĠĠĠĠĠ Ġexpected Encoded Output Header Ġ= Ġ"\ $ argon 2 id \$ v = 1 9 \$ m = 6 5 5 3 6 , t = 2 , p = 1 \$ c 2 9 t ZX N hb HQ ", ĊĠĠĠĠĠĠĠ Ġexpected Encoded Output Hash Ġ= Ġ"\ $ C 4 TW Us 9 r DE vq 7 w 3 + J 4 um q A 3 2 aW KB 1 + DS i Ru Bf Y xF j 9 4 ", Ġmode Ġ= ĠArg on 2 Mode . ARG ON 2 _ ID ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġofficial TestSuite _ v 1 3 _ argon 2 id _ case 8 () Ġ= Ġrun Test ( ĊĠĠĠĠĠĠĠ Ġversion Ġ= ĠArg on 2 Version . V 1 3 , Ġt Ġ= Ġ 2 , Ġm Ġ= Ġ 1 6 , Ġp Ġ= Ġ 1 , ĊĠĠĠĠĠĠĠ Ġpassword Ġ= Ġ" password ", Ġsalt Ġ= Ġ" dif fs alt ", ĊĠĠĠĠĠĠĠ Ġexpected Hex Hash Ġ= Ġ" bdf 3 2 b 0 5 ccc 4 2 eb 1 5 d 5 8 fd 1 9 b 1 f 8 5 6 b 1 1 3 da 1 e 9 a 5 8 7 4 fd cc 5 4 4 3 0 8 5 6 5 aa 8 1 4 1 c ", ĊĠĠĠĠĠĠĠ Ġexpected Encoded Output Header Ġ= Ġ"\ $ argon 2 id \$ v = 1 9 \$ m = 6 5 5 3 6 , t = 2 , p = 1 \$ Z Gl m Zn N hb HQ ", ĊĠĠĠĠĠĠĠ Ġexpected Encoded Output Hash Ġ= Ġ"\ $ vf Mr B cz EL r Fd WP 0 Z sf h Ws RP a H pp Y d P 3 M VE M IV l qo FB w ", Ġmode Ġ= ĠArg on 2 Mode . ARG ON 2 _ ID ĊĠĠĠ Ġ) Ċ } Ċ Ċ private Ġfun Ġrun Test ( ĊĠĠĠ Ġversion : ĠArg on 2 Version , ĊĠĠĠ Ġt : ĠInt , ĊĠĠĠ Ġm : ĠInt , ĊĠĠĠ Ġp : ĠInt , ĊĠĠĠ Ġpassword : ĠString , ĊĠĠĠ Ġsalt : ĠString , ĊĠĠĠ Ġexpected Hex Hash : ĠString , ĊĠĠĠ Ġexpected Encoded Output Header : ĠString , ĊĠĠĠ Ġexpected Encoded Output Hash : ĠString , ĊĠĠĠ Ġmode : ĠArg on 2 Mode Ċ ) Ġ{ ĊĠĠĠ Ġval Ġhash Result Ġ= ĠArg on 2 Kt (). hash ( ĊĠĠĠĠĠĠĠ Ġmode Ġ= Ġmode , ĊĠĠĠĠĠĠĠ Ġpassword Ġ= Ġpassword . toByteArray (), ĊĠĠĠĠĠĠĠ Ġsalt Ġ= Ġsalt . toByteArray (), ĊĠĠĠĠĠĠĠ Ġt Cost In Iterations Ġ= Ġt , ĊĠĠĠĠĠĠĠ Ġm Cost In K ib ib yte Ġ= Ġ 1 . sh l ( m ), ĊĠĠĠĠĠĠĠ Ġparallel ism Ġ= Ġp , ĊĠĠĠĠĠĠĠ Ġhash Length InBytes Ġ= Ġ 3 2 , ĊĠĠĠĠĠĠĠ Ġversion Ġ= Ġversion ĊĠĠĠ Ġ) ĊĊĠĠĠ ĠassertThat ( hash Result . raw Hash As Hex adecimal ()). isEqualTo ( expected Hex Hash ) ĊĠĠĠ Ġif Ġ( version Ġ== ĠARG ON 2 KT _ DEFAULT _ VERSION ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġthe Ġversion Ġstring Ġdoes Ġnot Ġmatch Ġfor ĠV 1 0 Ġ( see Ġtest . c Ġin Ġoriginal Ġarg on 2 Ġrepo ) ĊĠĠĠĠĠĠĠ ĠassertThat ( hash Result . encoded Output AsString ()). isEqualTo ( expected Encoded Output Header Ġ+ Ġexpected Encoded Output Hash ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġverification Result Ġ= ĠArg on 2 Kt (). verify ( ĊĠĠĠĠĠĠĠ Ġmode Ġ= Ġmode , ĊĠĠĠĠĠĠĠ Ġencoded Ġ= Ġhash Result . encoded Output AsString (), ĊĠĠĠĠĠĠĠ Ġpassword Ġ= Ġpassword . toByteArray () ĊĠĠĠ Ġ) ĊĠĠĠ ĠassertThat ( verification Result ). isTrue () Ċ } Ċ Ċ private Ġfun Ġassert This Line Not Executed () Ġ= Ġfail < Void >(" This Ġline Ġshouldn 't Ġbe Ġexecuted Ġ( most Ġlikely Ġexpected Ġexception ") Ċ