package Ġcom . example . core android . sources Ċ Ċ import Ġcom . example . core android . sources . enums . Environment Ċ import Ġjava . util .* Ċ import Ġkotlin . experimental . xor Ċ import Ġkotlin . text . Charsets . UTF _ 8 Ċ Ċ /** Ċ Ġ* ĠCreated Ġby Ġah med sa ad Ġon Ġ 2 0 1 8 - 0 1 - 0 3 . Ċ Ġ* ĠCopyright ĠÂ© Ġ 2 0 1 7 . ĠAll Ġrights Ġreserved . Ċ Ġ*/ Ċ object ĠNSObject Ċ object ĠNSString Ċ Ċ interface ĠConstants Type Ġ{ ĊĠĠĠ Ġval Ġjwt SecretKey : ĠString ĊĠĠĠ Ġval Ġgoogle Places API Key : ĠString ĊĠĠĠ Ġval Ġyoutube API Key : ĠString ĊĠĠĠ Ġval Ġfirebase ApiKey : ĠString ĊĠĠĠ Ġval Ġfirebase Application ID : ĠString ĊĠĠĠ Ġval Ġfirebase Database Url : ĠString ĊĠĠĠ Ġval Ġfirebase Project ID : ĠString ĊĠĠĠ Ġval Ġfirebase Storage Bucket : ĠString ĊĠĠĠ Ġval Ġlog DNA Key : ĠString Ċ } Ċ Ċ class ĠApp Constants : ĠConstants Type Ġ{ ĊĠĠĠ Ġoverride Ġval Ġjwt SecretKey : ĠString ĊĠĠĠĠĠĠĠ Ġget () Ġ= ĠApp Constants . jwt SecretKey ĊĠĠĠ Ġoverride Ġval Ġgoogle Places API Key : ĠString ĊĠĠĠĠĠĠĠ Ġget () Ġ= ĠApp Constants . google Places API Key ĊĠĠĠ Ġoverride Ġval Ġyoutube API Key : ĠString ĊĠĠĠĠĠĠĠ Ġget () Ġ= ĠApp Constants . youtube API Key ĊĠĠĠ Ġoverride Ġval Ġfirebase ApiKey : ĠString ĊĠĠĠĠĠĠĠ Ġget () Ġ= ĠApp Constants . firebase ApiKey ĊĠĠĠ Ġoverride Ġval Ġfirebase Application ID : ĠString ĊĠĠĠĠĠĠĠ Ġget () Ġ= ĠApp Constants . firebase Application ID ĊĠĠĠ Ġoverride Ġval Ġfirebase Database Url : ĠString ĊĠĠĠĠĠĠĠ Ġget () Ġ= ĠApp Constants . firebase Database Url ĊĠĠĠ Ġoverride Ġval Ġfirebase Project ID : ĠString ĊĠĠĠĠĠĠĠ Ġget () Ġ= ĠApp Constants . firebase Project ID ĊĠĠĠ Ġoverride Ġval Ġfirebase Storage Bucket : ĠString ĊĠĠĠĠĠĠĠ Ġget () Ġ= ĠApp Constants . firebase Storage Bucket ĊĠĠĠ Ġoverride Ġval Ġlog DNA Key : ĠString ĊĠĠĠĠĠĠĠ Ġget () Ġ= ĠApp Constants . log DNA Key ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġjwt SecretKey Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġun ob fusc ate ( key Ġ= Ġbyte ArrayOf ( 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġgoogle Places API Key Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġun ob fusc ate ( key Ġ= Ġbyte ArrayOf ( 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġyoutube API Key Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġun ob fusc ate ( key Ġ= Ġbyte ArrayOf ( 2 6 , Ġ 7 , Ġ 4 1 , Ġ 4 6 , Ġ 4 9 , Ġ 1 9 , Ġ 3 3 , Ġ 5 7 , Ġ 5 9 , Ġ 1 2 5 , Ġ 8 6 , Ġ 4 0 , Ġ 2 9 , Ġ 1 2 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 3 3 , Ġ 7 1 , Ġ 2 6 , Ġ 3 3 , Ġ 8 2 , Ġ 2 2 , Ġ 5 0 , Ġ 4 3 , Ġ 2 9 , Ġ 4 6 , Ġ 5 1 , Ġ 3 , Ġ 4 6 , Ġ 5 2 , Ġ 2 5 , Ġ 2 5 , Ġ 7 7 , Ġ 1 3 , Ġ 2 0 , Ġ 3 3 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 4 , Ġ 1 7 , Ġ 5 6 , Ġ 9 5 , Ġ 3 4 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĊĠĠĠĠĠĠĠ Ġval Ġfirebase ApiKey Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġun ob fusc ate ( key Ġ= Ġwhen Ġ( Environment . mode ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠEnvironment . DE VELO P MENT Ġ-> Ġbyte ArrayOf ( 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠEnvironment . PRO DU CTION Ġ-> Ġbyte ArrayOf ( 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġfirebase Application ID Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġun ob fusc ate ( key Ġ= Ġwhen Ġ( Environment . mode ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠEnvironment . DE VELO P MENT Ġ-> Ġbyte ArrayOf ( 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠEnvironment . PRO DU CTION Ġ-> Ġbyte ArrayOf ( 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġfirebase Database Url Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġun ob fusc ate ( key Ġ= Ġwhen Ġ( Environment . mode ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠEnvironment . DE VELO P MENT Ġ-> Ġbyte ArrayOf ( 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠEnvironment . PRO DU CTION Ġ-> Ġbyte ArrayOf ( 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġfirebase Project ID Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġun ob fusc ate ( key Ġ= Ġwhen Ġ( Environment . mode ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠEnvironment . DE VELO P MENT Ġ-> Ġbyte ArrayOf ( 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠEnvironment . PRO DU CTION Ġ-> Ġbyte ArrayOf ( 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġfirebase Storage Bucket Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġun ob fusc ate ( key Ġ= Ġwhen Ġ( Environment . mode ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠEnvironment . DE VELO P MENT Ġ-> Ġbyte ArrayOf ( 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠEnvironment . PRO DU CTION Ġ-> Ġbyte ArrayOf ( 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġlog DNA Key Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġun ob fusc ate ( byte ArrayOf ( 0 )) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/// ĠThe Ġsalt Ġused Ġto Ġob fusc ate Ġand Ġreveal Ġthe Ġstring . ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġsecret Salt Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠArrays . toString ( array Of ( NSObject :: class . java . simple Name , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠNSString :: class . java . simple Name )) ĊĠĠĠĠĠĠĠ Ġ} () ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠ ĠThis Ġmethod Ġob fusc ates Ġthe Ġstring Ġpassed Ġin Ġusing Ġthe Ġsalt ĊĠĠĠĠĠĠĠ Ġthat Ġwas Ġused Ġwhen Ġthe ĠO bf usc ator Ġwas Ġinitialized . ĊĠĠĠĠĠĠĠ Ġhttps :// gist . github . com / De jan En spy ra / 8 0 e 2 5 9 e 3 c 9 adf 5 e 4 6 6 3 2 6 3 1 b 4 9 cd 1 0 0 7 ĊĊĠĠĠĠĠĠĠ Ġ- Ġparameter Ġstring : Ġthe Ġstring Ġto Ġob fusc ate ĊĊĠĠĠĠĠĠĠ Ġ- Ġreturns : Ġthe Ġob fuscated Ġstring Ġin Ġa Ġbyte Ġarray ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġob fusc ate ( string : ĠString ): ĠString Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtext Ġ= Ġstring . toByteArray ( UTF _ 8 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcipher Ġ= ĠApp Constants . secret Salt . toByteArray ( UTF _ 8 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlength Ġ= Ġcipher . count () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġencrypted Ġ= Ġmutable ListOf < Byte >() ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġtext . map Indexed To ( encrypted ) Ġ{ Ġindex , Ġvalue Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvalue Ġxor Ġcipher [ index Ġ% Ġlength ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġencrypted . join ToString () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠ ĠThis Ġmethod Ġreve als Ġthe Ġoriginal Ġstring Ġfrom Ġthe Ġob fuscated ĊĠĠĠĠĠĠĠ Ġbyte Ġarray Ġpassed Ġin . ĠThe Ġsalt Ġmust Ġbe Ġthe Ġsame Ġas Ġthe Ġone ĊĠĠĠĠĠĠĠ Ġused Ġto Ġencrypt Ġit Ġin Ġthe Ġfirst Ġplace . ĊĊĠĠĠĠĠĠĠ Ġ- Ġparameter Ġkey : Ġthe Ġbyte Ġarray Ġto Ġreveal ĊĊĠĠĠĠĠĠĠ Ġ- Ġreturns : Ġthe Ġoriginal Ġstring ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġun ob fusc ate ( key : ĠByteArray ): ĠString Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcipher Ġ= ĠApp Constants . secret Salt . toByteArray ( UTF _ 8 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlength Ġ= Ġcipher . count () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdecrypted Ġ= Ġmutable ListOf < Byte >() ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġkey . map Indexed To ( de crypted ) Ġ{ Ġindex , Ġvalue Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvalue Ġxor Ġcipher [ index Ġ% Ġlength ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠString ( de crypted . toByteArray (), Ġcharset Ġ= ĠUTF _ 8 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }