package Ġio . user feeds . identity Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . preference . Preference Manager Ċ import Ġkotlin . Lazy Thread Safety Mode . NONE Ċ Ċ class ĠKey Repository ( context : ĠContext ) Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġprefs Ġby Ġlazy ( NONE ) Ġ{ ĠPreference Manager . getDefault SharedPreferences ( context ) Ġ} ĊĊĠĠĠ Ġval Ġhas Key Ġget () Ġ= Ġprefs . contains ( ENCRYPT ED _ PRIVATE _ KEY _ HEX ) ĊĊĠĠĠ Ġfun Ġstore ( encrypted PrivateKey : ĠByteArray , ĠpublicKey : ĠByteArray , Ġiv : ĠByteArray ) Ġ{ ĊĠĠĠĠĠĠĠ Ġprefs . edit () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. putString ( ENCRYPT ED _ PRIVATE _ KEY _ HEX , Ġencrypted PrivateKey . to HexString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. putString ( PUBLIC _ KEY _ HEX , ĠpublicKey . to HexString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. putString ( IV _ HEX , Ġiv . to HexString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. apply () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġencrypted PrivateKey Ġget () Ġ= ĠbyteArray From HexString ( prefs . getString ( ENCRYPT ED _ PRIVATE _ KEY _ HEX , Ġnull )) ĊĠĠĠ Ġval ĠpublicKey Hex Ġget () Ġ= Ġprefs . getString ( PUBLIC _ KEY _ HEX , Ġnull ) ĊĠĠĠ Ġval Ġiv Ġget () Ġ= ĠbyteArray From HexString ( prefs . getString ( IV _ HEX , Ġnull )) ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠEN CRYPT ED _ PRIVATE _ KEY _ HEX Ġ= Ġ" encrypted PrivateKey Hex " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠPUBLIC _ KEY _ HEX Ġ= Ġ" publicKey Hex " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠIV _ HEX Ġ= Ġ" iv Hex " ĊĠĠĠ Ġ} Ċ } Ċ