package Ġio . github . as ol nt se v . vpn Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . SharedPreferences Ċ import Ġandroid . util . Log Ċ import Ġandroidx . security . crypto . Encrypted SharedPreferences Ċ import Ġandroidx . security . crypto . Master Keys Ċ Ċ class ĠPassword Storage ( application Context : ĠContext ) Ġ{ ĊĠĠĠ Ġprivate Ġval Ġshared Preferences : ĠSharedPreferences Ġ= ĠEn crypted SharedPreferences . create ( ĊĠĠĠĠĠĠĠ Ġ" vpn - password ", ĊĠĠĠĠĠĠĠ ĠMaster Keys . get OrCreate ( Master Keys . AES 2 5 6 _ GCM _ SPEC ), ĊĠĠĠĠĠĠĠ Ġapplication Context , ĊĠĠĠĠĠĠĠ ĠEn crypted SharedPreferences . Pref Key Encryption Scheme . AES 2 5 6 _ SI V , ĊĠĠĠĠĠĠĠ ĠEn crypted SharedPreferences . Pref Value Encryption Scheme . AES 2 5 6 _ GCM ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġfun Ġset Password ( password : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġshared Preferences . edit (). apply () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . i (" Password Storage ", Ġ" save Ġnew Ġvalue Ġ${ password . replace ( Regex (". "), Ġ"* ") }") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġput String (" the - value ", Ġpassword ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapply () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Password (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġshared Preferences . getString (" the - value ", Ġ" not Ġsaved Ġyet ") Ġ?: Ġ"" ĊĠĠĠ Ġ} Ċ }