package Ġcom . vet all l . core . encryption Ċ Ċ class ĠB low Fish Crypt ( ĊĠĠĠ Ġval Ġkey : ĠByteArray Ċ ) Ġ{ ĊĠĠĠ Ġval Ġencryption Ġ= ĠB low fish Engine (). apply Ġ{ Ġinit ( true , Ġkey ) Ġ} ĊĠĠĠ Ġval Ġde cryption Ġ= ĠB low fish Engine (). apply Ġ{ Ġinit ( false , Ġkey ) Ġ} ĊĊĠĠĠ Ġfun Ġencrypt ( raw : ĠByteArray , Ġoffset : ĠInt , Ġsize : ĠInt ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġblock Count Ġ= Ġsize Ġ/ Ġ 8 ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= ĠByteArray ( size ) ĊĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil Ġblock Count ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġencryption . process Block ( raw , Ġoffset Ġ+ Ġi Ġ* Ġ 8 , Ġresult , Ġi Ġ* Ġ 8 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠSystem . arraycopy ( result , Ġ 0 , Ġraw , Ġoffset , Ġsize ) ĊĠĠĠĠĠĠĠ Ġreturn Ġresult . size ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġdecrypt ( raw : ĠByteArray , Ġoffset : ĠInt , Ġsize : ĠInt ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġblock Count Ġ= Ġsize Ġ/ Ġ 8 ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= ĠByteArray ( size ) ĊĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil Ġblock Count ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġde cryption . process Block ( raw , Ġoffset Ġ+ Ġi Ġ* Ġ 8 , Ġresult , Ġi Ġ* Ġ 8 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠSystem . arraycopy ( result , Ġ 0 , Ġraw , Ġoffset , Ġsize ) ĊĠĠĠĠĠĠĠ Ġreturn Ġresult . size ĊĠĠĠ Ġ} Ċ }