From 9a5f4ba36eb7a8bbfa3434f40531ba637250f469 Mon Sep 17 00:00:00 2001 From: Gaurav Goel Date: Mon, 16 Sep 2024 16:47:33 +0530 Subject: [PATCH] feat: Update session-manager-android and code related changes Signed-off-by: Gaurav Goel --- .../com/web3auth/sfaexample/MainActivity.kt | 4 ++-- singlefactorauth/build.gradle | 3 ++- .../com/web3auth/singlefactorauth/AquaTest.kt | 8 +++---- .../com/web3auth/singlefactorauth/CyanTest.kt | 8 +++---- .../singlefactorauth/SapphireDevnetTest.kt | 8 +++---- .../singlefactorauth/SapphireMainnetTest.kt | 8 +++---- .../singlefactorauth/SingleFactorAuthTest.kt | 8 +++---- .../singlefactorauth/SingleFactorAuth.kt | 22 ++++++++++--------- 8 files changed, 36 insertions(+), 33 deletions(-) diff --git a/app/src/main/java/com/web3auth/sfaexample/MainActivity.kt b/app/src/main/java/com/web3auth/sfaexample/MainActivity.kt index a5358ff..3e7a1eb 100644 --- a/app/src/main/java/com/web3auth/sfaexample/MainActivity.kt +++ b/app/src/main/java/com/web3auth/sfaexample/MainActivity.kt @@ -32,7 +32,7 @@ class MainActivity : AppCompatActivity() { val idToken = JwtUtils.generateIdToken(TORUS_TEST_EMAIL) sfaParams = SFAParams(Web3AuthNetwork.SAPPHIRE_MAINNET, "YOUR_CLIENT_ID", null, 0) - singleFactorAuth = SingleFactorAuth(sfaParams, this) + singleFactorAuth = SingleFactorAuth(sfaParams, this, 86400, this.packageName) loginParams = LoginParams(TEST_VERIFIER, TORUS_TEST_EMAIL, idToken) if (singleFactorAuth.isSessionIdExists()) { @@ -47,7 +47,7 @@ class MainActivity : AppCompatActivity() { val idToken = JwtUtils.generateIdToken(TORUS_TEST_EMAIL) loginParams = LoginParams(TEST_VERIFIER, TORUS_TEST_EMAIL, idToken) val sfakey = - singleFactorAuth.connect(loginParams, 86400, this.applicationContext) + singleFactorAuth.connect(loginParams, this.applicationContext) if (sfakey != null) { val text = "Public Address: ${sfakey.getPublicAddress()} , Private Key: ${sfakey.getPrivateKey()}" diff --git a/singlefactorauth/build.gradle b/singlefactorauth/build.gradle index 65e842d..0828c15 100644 --- a/singlefactorauth/build.gradle +++ b/singlefactorauth/build.gradle @@ -44,7 +44,8 @@ dependencies { implementation 'com.google.code.gson:gson:2.10.1' implementation 'org.slf4j:slf4j-simple:2.0.3' //session-manager-sdk - implementation 'com.github.Web3Auth:session-manager-android:2.3.0' + //TODO(): Update version + implementation 'com.github.Web3Auth:session-manager-android:feat~constructor-updates-SNAPSHOT' testImplementation 'junit:junit:4.13.2' testImplementation 'org.junit.jupiter:junit-jupiter-api:5.8.2' diff --git a/singlefactorauth/src/androidTest/java/com/web3auth/singlefactorauth/AquaTest.kt b/singlefactorauth/src/androidTest/java/com/web3auth/singlefactorauth/AquaTest.kt index 676be26..c8cc705 100644 --- a/singlefactorauth/src/androidTest/java/com/web3auth/singlefactorauth/AquaTest.kt +++ b/singlefactorauth/src/androidTest/java/com/web3auth/singlefactorauth/AquaTest.kt @@ -37,7 +37,7 @@ class AquaTest { val context = getInstrumentation().context sfaParams = SFAParams(Web3AuthNetwork.AQUA, "YOUR_CLIENT_ID", null, 0) - singleFactorAuth = SingleFactorAuth(sfaParams, context) + singleFactorAuth = SingleFactorAuth(sfaParams, context, 86400, context.packageName) val privateKey = readPrivateKeyFromReader( WellKnownSecret.pem(), "EC" @@ -51,7 +51,7 @@ class AquaTest { algorithmRs = Algorithm.ECDSA256(publicKey, privateKey) val idToken: String = generateIdToken(TORUS_TEST_EMAIL, algorithmRs) loginParams = LoginParams(TEST_VERIFIER, TORUS_TEST_EMAIL, idToken) - val sfaKey = singleFactorAuth.connect(loginParams, 86400, context) + val sfaKey = singleFactorAuth.connect(loginParams, context) singleFactorAuth.initialize(context) val requiredPrivateKey = BigInteger("d8204e9f8c270647294c54acd8d49ee208789f981a7503158e122527d38626d8", 16) @@ -68,7 +68,7 @@ class AquaTest { fun shouldAggregrateGetTorusKey() { sfaParams = SFAParams(Web3AuthNetwork.AQUA, "YOUR_CLIENT_ID") val context = getInstrumentation().context - singleFactorAuth = SingleFactorAuth(sfaParams, context) + singleFactorAuth = SingleFactorAuth(sfaParams, context, 86400, context.packageName) val privateKey = readPrivateKeyFromReader( WellKnownSecret.pem(), "EC" @@ -88,7 +88,7 @@ class AquaTest { ) ) ) - val sfaKey = singleFactorAuth.connect(loginParams, 86400, context) + val sfaKey = singleFactorAuth.connect(loginParams, context) singleFactorAuth.initialize(context) val requiredPrivateKey = BigInteger("6f8b884f19975fb0d138ed21b22a6a7e1b79e37f611d0a29f1442b34efc6bacd", 16) diff --git a/singlefactorauth/src/androidTest/java/com/web3auth/singlefactorauth/CyanTest.kt b/singlefactorauth/src/androidTest/java/com/web3auth/singlefactorauth/CyanTest.kt index e40b65f..ba5de29 100644 --- a/singlefactorauth/src/androidTest/java/com/web3auth/singlefactorauth/CyanTest.kt +++ b/singlefactorauth/src/androidTest/java/com/web3auth/singlefactorauth/CyanTest.kt @@ -33,7 +33,7 @@ class CyanTest { fun shouldGetTorusKey() { val context = InstrumentationRegistry.getInstrumentation().context sfaParams = SFAParams(Web3AuthNetwork.CYAN, "YOUR_CLIENT_ID", null, 0) - singleFactorAuth = SingleFactorAuth(sfaParams,context) + singleFactorAuth = SingleFactorAuth(sfaParams, context, 86400, context.packageName) val privateKey = readPrivateKeyFromReader( WellKnownSecret.pem(), "EC" @@ -47,7 +47,7 @@ class CyanTest { algorithmRs = Algorithm.ECDSA256(publicKey, privateKey) val idToken: String = generateIdToken(TORUS_TEST_EMAIL, algorithmRs) loginParams = LoginParams(TEST_VERIFIER, TORUS_TEST_EMAIL, idToken) - val sfakey = singleFactorAuth.connect(loginParams, 86400, context) + val sfakey = singleFactorAuth.connect(loginParams, context) if (sfakey != null) { assert("0x6b902fBCEb0E0374e5eB9eDFe68cD4B888c32150" == sfakey.getPublicAddress()) val requiredPrivateKey = @@ -63,7 +63,7 @@ class CyanTest { fun shouldAggregrateGetTorusKey() { val context = InstrumentationRegistry.getInstrumentation().context sfaParams = SFAParams(Web3AuthNetwork.CYAN, "YOUR_CLIENT_ID") - singleFactorAuth = SingleFactorAuth(sfaParams, context) + singleFactorAuth = SingleFactorAuth(sfaParams, context, 86400, context.packageName) val privateKey = readPrivateKeyFromReader( WellKnownSecret.pem(), "EC" @@ -83,7 +83,7 @@ class CyanTest { ) ) ) - val sfakey = singleFactorAuth.connect(loginParams, 86400, context) + val sfakey = singleFactorAuth.connect(loginParams, context) if (sfakey != null) { val requiredPrivateKey = BigInteger("66af498ea82c95d52fdb8c8dedd44cf2f758424a0eecab7ac3dd8721527ea2d4", 16) diff --git a/singlefactorauth/src/androidTest/java/com/web3auth/singlefactorauth/SapphireDevnetTest.kt b/singlefactorauth/src/androidTest/java/com/web3auth/singlefactorauth/SapphireDevnetTest.kt index d6d413b..e868497 100644 --- a/singlefactorauth/src/androidTest/java/com/web3auth/singlefactorauth/SapphireDevnetTest.kt +++ b/singlefactorauth/src/androidTest/java/com/web3auth/singlefactorauth/SapphireDevnetTest.kt @@ -36,7 +36,7 @@ class SapphireDevnetTest { Web3AuthNetwork.SAPPHIRE_DEVNET, "CLIENT ID", null, 0 ) - singleFactorAuth = SingleFactorAuth(sfaParams, context) + singleFactorAuth = SingleFactorAuth(sfaParams, context, 86400, context.packageName) val privateKey = readPrivateKeyFromReader( WellKnownSecret.pem(), "EC" @@ -50,7 +50,7 @@ class SapphireDevnetTest { algorithmRs = Algorithm.ECDSA256(publicKey, privateKey) val idToken: String = generateIdToken(TORUS_TEST_EMAIL, algorithmRs) loginParams = LoginParams(TEST_VERIFIER, TORUS_TEST_EMAIL, idToken) - val sfakey = singleFactorAuth.connect(loginParams, 86400, context) + val sfakey = singleFactorAuth.connect(loginParams, context) if (sfakey != null) { assert("0x462A8BF111A55C9354425F875F89B22678c0Bc44" == sfakey.getPublicAddress()) val requiredPrivateKey = @@ -69,7 +69,7 @@ class SapphireDevnetTest { Web3AuthNetwork.SAPPHIRE_DEVNET, "CLIENT_ID" ) - singleFactorAuth = SingleFactorAuth(sfaParams,context) + singleFactorAuth = SingleFactorAuth(sfaParams, context, 86400, context.packageName) val privateKey = readPrivateKeyFromReader( WellKnownSecret.pem(), "EC" @@ -89,7 +89,7 @@ class SapphireDevnetTest { ) ) ) - val sfakey = singleFactorAuth.connect(loginParams, 86400, context) + val sfakey = singleFactorAuth.connect(loginParams, context) val requiredPrivateKey = BigInteger("edef171853fdf23ed3cfc702d32cf46f181b475a449d2f7b636924cabecd81d4", 16) if (sfakey != null) { diff --git a/singlefactorauth/src/androidTest/java/com/web3auth/singlefactorauth/SapphireMainnetTest.kt b/singlefactorauth/src/androidTest/java/com/web3auth/singlefactorauth/SapphireMainnetTest.kt index ff1a5c8..3b0426d 100644 --- a/singlefactorauth/src/androidTest/java/com/web3auth/singlefactorauth/SapphireMainnetTest.kt +++ b/singlefactorauth/src/androidTest/java/com/web3auth/singlefactorauth/SapphireMainnetTest.kt @@ -37,7 +37,7 @@ class SapphireMainnetTest { "CLIENT ID", null, 0 ) - singleFactorAuth = SingleFactorAuth(sfaParams, context) + singleFactorAuth = SingleFactorAuth(sfaParams, context, 86400, context.packageName) val privateKey = readPrivateKeyFromReader( WellKnownSecret.pem(), "EC" @@ -51,7 +51,7 @@ class SapphireMainnetTest { algorithmRs = Algorithm.ECDSA256(publicKey, privateKey) val idToken: String = generateIdToken(TORUS_TEST_EMAIL, algorithmRs) loginParams = LoginParams(TEST_VERIFIER,TORUS_TEST_EMAIL, idToken) - val sfakey = singleFactorAuth.connect(loginParams, 86400, context) + val sfakey = singleFactorAuth.connect(loginParams, context) if (sfakey != null) { assert("0x0934d844a0a6db37CF75aF0269436ae1b2Ae5D36" == sfakey.getPublicAddress()) val requiredPrivateKey = @@ -70,7 +70,7 @@ class SapphireMainnetTest { Web3AuthNetwork.SAPPHIRE_MAINNET, "CLIENT_ID" ) - singleFactorAuth = SingleFactorAuth(sfaParams, context) + singleFactorAuth = SingleFactorAuth(sfaParams, context, 86400, context.packageName) val privateKey = readPrivateKeyFromReader( WellKnownSecret.pem(), "EC" @@ -90,7 +90,7 @@ class SapphireMainnetTest { ) ) ) - val sfakey = singleFactorAuth.connect(loginParams, 86400, context) + val sfakey = singleFactorAuth.connect(loginParams, context) val requiredPrivateKey = BigInteger("0c724bb285560dc41e585b91aa2ded94fdd703c2e7133dcc64b1361b0d1fd105", 16) diff --git a/singlefactorauth/src/androidTest/java/com/web3auth/singlefactorauth/SingleFactorAuthTest.kt b/singlefactorauth/src/androidTest/java/com/web3auth/singlefactorauth/SingleFactorAuthTest.kt index c740bc2..3cb193e 100644 --- a/singlefactorauth/src/androidTest/java/com/web3auth/singlefactorauth/SingleFactorAuthTest.kt +++ b/singlefactorauth/src/androidTest/java/com/web3auth/singlefactorauth/SingleFactorAuthTest.kt @@ -33,7 +33,7 @@ class SingleFactorAuthTest { fun shouldGetTorusKey() { val context = InstrumentationRegistry.getInstrumentation().context sfaParams = SFAParams(Web3AuthNetwork.MAINNET, "CLIENT_ID", null, 0) - singleFactorAuth = SingleFactorAuth(sfaParams, context) + singleFactorAuth = SingleFactorAuth(sfaParams, context, 86400, context.packageName) val privateKey = readPrivateKeyFromReader( WellKnownSecret.pem(), "EC" @@ -47,7 +47,7 @@ class SingleFactorAuthTest { algorithmRs = Algorithm.ECDSA256(publicKey, privateKey) val idToken: String = generateIdToken(TORUS_TEST_EMAIL, algorithmRs) loginParams = LoginParams(TEST_VERIFIER, TORUS_TEST_EMAIL, idToken) - val sfakey = singleFactorAuth.connect(loginParams, 86400, context) + val sfakey = singleFactorAuth.connect(loginParams, context) if (sfakey != null) { assert("0x90A926b698047b4A87265ba1E9D8b512E8489067" == sfakey.getPublicAddress()) val requiredPrivateKey = @@ -63,7 +63,7 @@ class SingleFactorAuthTest { fun shouldAggregrateGetTorusKey() { val context = InstrumentationRegistry.getInstrumentation().context sfaParams = SFAParams(Web3AuthNetwork.MAINNET, "YOUR_CLIENT_ID") - singleFactorAuth = SingleFactorAuth(sfaParams, context) + singleFactorAuth = SingleFactorAuth(sfaParams, context, 86400, context.packageName) val privateKey = readPrivateKeyFromReader( WellKnownSecret.pem(), "EC" @@ -83,7 +83,7 @@ class SingleFactorAuthTest { ) ) ) - val sfakey = singleFactorAuth.connect(loginParams, 86400, context) + val sfakey = singleFactorAuth.connect(loginParams, context) val requiredPrivateKey = BigInteger("68390578bbdab74e9883de58d3919c176662852bdd42a783bc3a08f1a1024e0c", 16) if (sfakey != null) { diff --git a/singlefactorauth/src/main/java/com/web3auth/singlefactorauth/SingleFactorAuth.kt b/singlefactorauth/src/main/java/com/web3auth/singlefactorauth/SingleFactorAuth.kt index 750cce6..e960735 100644 --- a/singlefactorauth/src/main/java/com/web3auth/singlefactorauth/SingleFactorAuth.kt +++ b/singlefactorauth/src/main/java/com/web3auth/singlefactorauth/SingleFactorAuth.kt @@ -21,7 +21,12 @@ import org.torusresearch.torusutils.types.common.TorusOptions import org.torusresearch.torusutils.types.common.TorusPublicKey import org.web3j.crypto.Hash -class SingleFactorAuth(sfaParams: SFAParams, ctx: Context) { +class SingleFactorAuth( + sfaParams: SFAParams, + ctx: Context, + sessionTime: Long, + allowedOrigin: String +) { private var nodeDetailManager: FetchNodeDetails = FetchNodeDetails(sfaParams.getNetwork()) private val torusUtils: TorusUtils @@ -30,15 +35,13 @@ class SingleFactorAuth(sfaParams: SFAParams, ctx: Context) { private var network: Web3AuthNetwork init { - val torusOptions = sfaParams.getClientId()?.let { - TorusOptions( - it, sfaParams.getNetwork(), - sfaParams.getNetworkUrl(), sfaParams.getServerTimeOffset(), true - ) - } + val torusOptions = TorusOptions( + sfaParams.getClientId(), sfaParams.getNetwork(), + sfaParams.getNetworkUrl(), sfaParams.getServerTimeOffset(), true + ) network = sfaParams.getNetwork() torusUtils = TorusUtils(torusOptions) - sessionManager = SessionManager(ctx) + sessionManager = SessionManager(ctx, sessionTime, allowedOrigin) } fun initialize(ctx: Context): SFAKey { @@ -97,7 +100,6 @@ class SingleFactorAuth(sfaParams: SFAParams, ctx: Context) { fun connect( loginParams: LoginParams, - sessionTime: Long, ctx: Context ): SFAKey? { val torusKey = getTorusKey(loginParams) @@ -119,7 +121,7 @@ class SingleFactorAuth(sfaParams: SFAParams, ctx: Context) { json.put("publicAddress", torusSFAKey.getPublicAddress()) } - sessionManager.createSession(json.toString(), sessionTime, ctx, ctx.packageName).get() + sessionManager.createSession(json.toString(), ctx).get() return torusSFAKey } } \ No newline at end of file