@@ -13,8 +13,11 @@ import java.security.Signature
1313import java.security.spec.PKCS8EncodedKeySpec
1414import java.security.spec.X509EncodedKeySpec
1515
16- class AuthManager (context : Context ) {
16+ val Context .authManager: AuthManager get() = AuthManager .get(this )
17+
18+ class AuthManager private constructor(context : Context ) {
1719 private val context = context.applicationContext
20+ private val sharedPrefs = context.getSharedPreferences(PREFS_NAME , Context .MODE_PRIVATE )
1821
1922 companion object {
2023 private const val PREFS_NAME = " constellation_prefs"
@@ -24,22 +27,14 @@ class AuthManager(context: Context) {
2427 @Volatile
2528 private var instance: AuthManager ? = null
2629
27- fun get (context : Context ): AuthManager {
28- val existing = instance
29- if (existing != null ) return existing
30-
31- return synchronized(this ) {
32- instance ? : AuthManager (context).also { instance = it }
33- }
30+ fun get (context : Context ): AuthManager = instance ? : synchronized(this ) {
31+ instance ? : AuthManager (context).also { instance = it }
3432 }
3533 }
3634
37- private val sharedPrefs = context.getSharedPreferences(PREFS_NAME , Context .MODE_PRIVATE )
38-
3935 // GMS signing format: {iidToken}:{seconds}:{nanos}
4036 fun signIidToken (iidToken : String ): Pair <ByteArray , Instant > {
41- val now = System .currentTimeMillis()
42- val timestamp = Instant .ofEpochMilli(now)
37+ val timestamp = Instant .ofEpochMilli(System .currentTimeMillis())
4338 val content = " $iidToken :${timestamp.epochSecond} :${timestamp.nano} "
4439 return sign(content) to timestamp
4540 }
@@ -61,10 +56,20 @@ class AuthManager(context: Context) {
6156 try {
6257 val kf = KeyFactory .getInstance(" EC" )
6358 val privateKey = kf.generatePrivate(
64- PKCS8EncodedKeySpec (Base64 .decode(privateKeyStr, Base64 .DEFAULT ))
59+ PKCS8EncodedKeySpec (
60+ Base64 .decode(
61+ privateKeyStr,
62+ Base64 .DEFAULT
63+ )
64+ )
6565 )
6666 val publicKey = kf.generatePublic(
67- X509EncodedKeySpec (Base64 .decode(publicKeyStr, Base64 .DEFAULT ))
67+ X509EncodedKeySpec (
68+ Base64 .decode(
69+ publicKeyStr,
70+ Base64 .DEFAULT
71+ )
72+ )
6873 )
6974 return KeyPair (publicKey, privateKey)
7075 } catch (_: Exception ) {
@@ -96,7 +101,5 @@ class AuthManager(context: Context) {
96101 }
97102 }
98103
99- fun getFid (): String {
100- return InstanceID .getInstance(context).id
101- }
102- }
104+ fun getFid (): String = InstanceID .getInstance(context).id
105+ }
0 commit comments