/* Ċ Ġ* Ġ ĠCopyright Ġ 2 0 1 8 ĠJul ian ĠEx en ber ger Ċ Ġ* Ċ Ġ* Ġ Ġ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 `]( 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 Ġio . code stream . util . crypto Ċ Ċ import Ġjava . io . File Ċ import Ġjava . security . Key Ċ import Ġjava . security . KeyStore Ċ import Ġjava . security . cert . X 5 0 9 Certificate Ċ Ċ class ĠJava KeyStore ( val Ġpath : ĠFile , Ġval Ġpassword : ĠString Ġ= Ġ" change it ") Ġ{ ĊĊĊĠĠĠ Ġval Ġstore : ĠKey Store Ġ= ĠKey Store . getInstance (" J KS ") ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( path . exists () Ġ&& Ġpath . isFile ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstore . load ( path . inputStream (), Ġpassword . toCharArray ()) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstore . load ( null , Ġpassword . toCharArray ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsave () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsave () Ġ{ ĊĠĠĠĠĠĠĠ Ġstore . store ( path . output Stream (), Ġpassword . toCharArray ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoperator Ġfun Ġget ( alias : String ): ĠKey Store . Entry ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġstore . getEntry ( alias , ĠKey Store . Password Protection ( password . toCharArray ())) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoperator Ġfun Ġset ( alias : String , Ġkey : Key ) Ġ{ ĊĠĠĠĠĠĠĠ Ġstore . set Key Entry ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġalias , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġkey , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpassword . toCharArray (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġempty Array < X 5 0 9 Certificate >() ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġfun Ġadd Key And Certificate ( alias : ĠString , Ġkey : ĠKey , Ġvar arg Ġcertificate : ĠX 5 0 9 Certificate ) Ġ{ ĊĠĠĠĠĠĠĠ Ġstore . set Key Entry ( alias , Ġkey , Ġpassword . toCharArray (), Ġcertificate ) ĊĠĠĠĠĠĠĠ Ġsave () ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġfun Ġset Certificate ( alias : ĠString , Ġcertificate : ĠX 5 0 9 Certificate ) Ġ{ ĊĠĠĠĠĠĠĠ Ġstore . set Certificate Entry ( alias , Ġcertificate ) ĊĠĠĠĠĠĠĠ Ġsave () ĊĠĠĠ Ġ} Ċ Ċ }