/* Ċ Ġ* ĠLicensed Ġto Ġthe ĠApache ĠSoftware ĠFoundation Ġ( ASF ) Ġunder Ġone Ġor Ġmore Ċ Ġ* Ġcontributor Ġlicense Ġagreements . Ġ ĠSee Ġthe ĠNOTICE Ġfile Ġdistributed Ġwith Ċ Ġ* Ġthis Ġwork Ġfor Ġadditional Ġinformation Ġregarding Ġcopyright Ġownership . Ċ Ġ* ĠThe ĠASF Ġlicenses Ġthis Ġfile Ġto ĠYou Ġ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 Ġorg . kin . stell ar fork . codec Ċ Ċ import Ġjava . io . IOException Ċ import Ġjava . io . InputStream Ċ import Ġjava . util . Random Ċ Ċ /** Ċ Ġ* ĠThis Ġrandom Ġdata Ġwas Ġencoded Ġby ĠOpenSSL . ĠJava Ġhad Ġnothing Ġto Ġdo Ġwith Ġit . ĠThis Ġdata Ġhelps Ġus Ġtest Ġinter op Ġbetween Ċ Ġ* ĠCommons - Codec Ġand ĠOpenSSL . ĠNotice Ġthat ĠOpenSSL Ġcreates Ġ 6 4 Ġcharacter Ġlines Ġinstead Ġof Ġthe Ġ 7 6 Ġof ĠCommons - Codec . Ċ Ġ* Ċ Ġ* Ġ@ see Ġ[ RFC Ġ 2 0 4 5 ]( http :// www . ietf . org / rfc / rfc 2 0 4 5 . txt ) Ċ Ġ* Ċ Ġ* Ġ@ since Ġ 1 . 4 Ċ Ġ*/ Ċ object ĠBase 3 2 TestData Ġ{ ĊĠĠĠ Ġconst Ġval ĠSTRING _ FIX TURE Ġ= Ġ" Hello ĠWorld " ĊĠĠĠ Ġconst Ġval ĠBASE 3 2 _ FIX TURE Ġ= Ġ" JB SW Y 3 D PE BL W 6 4 T MM Q ====== \ r \ n " ĊĠĠĠ Ġ// Ġ Ġstatic Ġfinal ĠString ĠBASE 3 2 HEX _ FIX TURE Ġ= Ġ" 9 1 IM OR 3 F 4 1 BM US J CC G ==== ==" ; Ċ // ĠSome Ġutility Ġcode Ġto Ġhelp Ġtest Ġchunk ed Ġreads Ġof Ġthe ĠInputStream . ĊĠĠĠ Ġprivate Ġconst Ġval ĠSIZE _ KEY Ġ= Ġ 0 ĊĠĠĠ Ġprivate Ġconst Ġval ĠLAST _ READ _ KEY Ġ= Ġ 1 ĊĠĠĠ Ġ@ Jvm Over loads ĊĠĠĠ Ġ@ Throws ( IOException :: class ) ĊĠĠĠ Ġfun Ġstream ToBytes (` in `: ĠInputStream , Ġbuf : ĠByteArray Ġ= ĠByteArray ( 7 )): ĠByteArray Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġbuf 1 Ġ= Ġbuf ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġstatus Ġ= Ġfill ( buf 1 , Ġ 0 , Ġ` in `) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġsize Ġ= Ġstatus [ SIZE _ KEY ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġlast Read Ġ= Ġstatus [ LAST _ READ _ KEY ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhile Ġ( last Read Ġ!= Ġ- 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuf 1 Ġ= Ġresize Array ( buf 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstatus Ġ= Ġfill ( buf 1 , Ġsize , Ġ` in `) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsize Ġ= Ġstatus [ SIZE _ KEY ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlast Read Ġ= Ġstatus [ LAST _ READ _ KEY ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( buf 1 . size Ġ!= Ġsize ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsmaller Buf Ġ= ĠByteArray ( size ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSystem . arraycopy ( buf 1 , Ġ 0 , Ġsmaller Buf , Ġ 0 , Ġsize ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuf 1 Ġ= Ġsmaller Buf ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġfinally Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ` in `. close () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġbuf 1 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Throws ( IOException :: class ) ĊĠĠĠ Ġprivate Ġfun Ġfill ( buf : ĠByteArray , Ġoffset : ĠInt , Ġ` in `: ĠInputStream ): ĠInt Array Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġread Ġ= Ġ` in `. read ( buf , Ġoffset , Ġbuf . size Ġ- Ġoffset ) ĊĠĠĠĠĠĠĠ Ġvar Ġlast Read Ġ= Ġread ĊĠĠĠĠĠĠĠ Ġif Ġ( read Ġ== Ġ- 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġread Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġwhile Ġ( last Read Ġ!= Ġ- 1 Ġ&& Ġread Ġ+ Ġoffset Ġ< Ġbuf . size ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlast Read Ġ= Ġ` in `. read ( buf , Ġoffset Ġ+ Ġread , Ġbuf . size Ġ- Ġread Ġ- Ġoffset ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( last Read Ġ!= Ġ- 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġread Ġ+= Ġlast Read ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġint ArrayOf ( offset Ġ+ Ġread , Ġlast Read ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġresize Array ( bytes : ĠByteArray ): ĠByteArray Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbigger Bytes Ġ= ĠByteArray ( bytes . size Ġ* Ġ 2 ) ĊĠĠĠĠĠĠĠ ĠSystem . arraycopy ( bytes , Ġ 0 , Ġbigger Bytes , Ġ 0 , Ġbytes . size ) ĊĠĠĠĠĠĠĠ Ġreturn Ġbigger Bytes ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠReturns Ġan Ġencoded Ġand Ġdecoded Ġcopy Ġof Ġthe Ġsame Ġrandom Ġdata . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġcodec Ġthe Ġcodec Ġto Ġuse ĊĠĠĠĠ Ġ* Ġ@ param Ġsize Ġamount Ġof Ġrandom Ġdata Ġto Ġgenerate Ġand Ġencode ĊĠĠĠĠ Ġ* Ġ@ return Ġtwo Ġbyte [] Ġarrays : Ġ Ġ[ 0 ] Ġ= Ġdecoded , Ġ[ 1 ] Ġ= Ġencoded ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġrandom Data ( codec : ĠBase N Codec , Ġsize : ĠInt ): ĠArray < ByteArray ?> Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġr Ġ= ĠRandom () ĊĠĠĠĠĠĠĠ Ġval Ġdecoded Ġ= ĠByteArray ( size ) ĊĠĠĠĠĠĠĠ Ġr . next Bytes ( decoded ) ĊĠĠĠĠĠĠĠ Ġval Ġencoded Ġ= Ġcodec . encode ( decoded ) ĊĠĠĠĠĠĠĠ Ġreturn ĠarrayOf ( decoded , Ġencoded ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠTests Ġthe Ġsupplied Ġbyte [] Ġarray Ġto Ġsee Ġif Ġit Ġcontains Ġthe Ġspecified Ġbyte Ġc . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġbytes Ġbyte [] Ġarray Ġto Ġtest ĊĠĠĠĠ Ġ* Ġ@ param Ġc Ġbyte Ġto Ġlook Ġfor ĊĠĠĠĠ Ġ* Ġ@ return Ġtrue Ġif Ġbytes Ġcontains Ġc , Ġfalse Ġotherwise ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġbytes Contain ( bytes : ĠByteArray , Ġc : ĠByte ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġfor Ġ( b Ġin Ġbytes ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( b Ġ== Ġc ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠ Ġ} Ċ } Ċ