package Ġmain . kotlin . core . src Ċ Ċ // ĠImports Ċ import Ġorg . mind rot . j bcrypt . BC rypt Ċ import Ġjava . util . Collections . emptyList Ċ Ċ class ĠSession Ġ{ ĊĠĠĠ Ġvar Ġname : ĠString Ġ= Ġ"" ĊĠĠĠ Ġvar Ġpassword : ĠString Ġ= Ġ"" ĊĠĠĠ Ġvar Ġid : ĠInt Ġ= Ġ 0 ĊĊĠĠĠ Ġ// Ġhashes Ġthe Ġpassword Ġand Ġsaves Ġit Ġin Ġsession ĊĠĠĠ Ġfun ĠStore Has hed Pass ow rd ( password : String ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// ĠEncrypt Ġpassword Ġ- ĠD in uda ĊĠĠĠ Ġfun Ġencrypt Password ( session : ĠSession ) Ġ{ ĊĠĠĠĠĠĠĠ Ġuser . password Hash Ġ= ĠBC rypt . hash pw ( password , ĠBC rypt . gens alt ()) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ// Ġverifies Ġif Ġthe Ġpassword Ġis Ġcorrect ĊĠĠĠ Ġfun ĠVerify Password ( password : ĠString ): ĠBoolean { ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠSession Store Ġ{ ĊĠĠĠ Ġvar Ġsessions : ĠMutable List < Session > Ġ= Ġempty List () ĊĊĠĠĠ Ġ// Ġreturns Ġa Ġsession Ġdepending Ġon Ġthe Ġusername ĊĠĠĠ Ġfun ĠFind Session ( name : String ): ĠSession ? Ġ{ ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġsessions ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( i . name Ġ== Ġname ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġi ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// Ġreturns Ġa Ġsession Ġdepending Ġon Ġthe Ġid ĊĠĠĠ Ġfun ĠFind Session ( id : Int ): ĠSession ? Ġ{ ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġsessions ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( i . id Ġ== Ġid ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġi ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġadd ( s : ĠSession ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsessions . add ( s ) ĊĠĠĠ Ġ} Ċ } Ċ