/* Ċ Ġ* ĠCopyright Ġ( C ) Ġ 2 0 1 8 ĠSer ge y ĠPar sh in Ġ( qu ar ck @ gmail . com ) Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ package Ġnet . cx if ri . crypto Ċ Ċ import Ġorg . bouncycastle . util . Strings Ċ import Ġorg . bouncycastle . util . en coders . Url Base 6 4 Ċ import Ġjava . nio . charset . Charset Ċ Ċ object ĠCrypto Factory Ġ{ ĊĠĠĠ Ġval Ġsecret Generator Ġ= ĠRandom Shared Secret Generator () ĊĊĠĠĠ Ġfun Ġcreate MessageHandler (): ĠMessage Handler Interface Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠUrl Wrapped MessageHandler ( MessageHandler ( Binary MessageHandler ())) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġderive Key From Password ( password : ĠString , Ġname : ĠString ): ĠKey Entry Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠDerived Key Generator (). generate FromText Password ( password , ĠA EST w of ish Ser pent Engine . KEY _ LENGTH , Ġname ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġgenerate Random Key With C sum (): ĠPair < ByteArray , ĠByteArray > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġsecret Generator . generate Key with CS um ( A EST w of ish Ser pent Engine . KEY _ LENGTH ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġgenerate Random Key (): ĠByteArray Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġsecret Generator . generate ( A EST w of ish Ser pent Engine . KEY _ LENGTH ) ĊĠĠĠ Ġ} Ċ }