Skip to content

Commit b4032fd

Browse files
Merge pull request #24 from torusresearch/feat/updates
Feat/updates
2 parents 38f2f76 + ce9f73c commit b4032fd

11 files changed

Lines changed: 102 additions & 35 deletions

File tree

build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
plugins {
22
id 'java-library'
3+
id 'maven-publish'
34
}
45

5-
apply plugin: 'maven'
66

77
group 'org.torusresearch'
88
version '3.1.2'

gradle/wrapper/gradle-wrapper.jar

4.24 KB
Binary file not shown.
Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
1-
#Wed Mar 25 11:16:25 SGT 2020
2-
distributionUrl=https\://services.gradle.org/distributions/gradle-5.2.1-all.zip
31
distributionBase=GRADLE_USER_HOME
42
distributionPath=wrapper/dists
5-
zipStorePath=wrapper/dists
3+
distributionUrl=https\://services.gradle.org/distributions/gradle-7.2-bin.zip
64
zipStoreBase=GRADLE_USER_HOME
5+
zipStorePath=wrapper/dists

src/main/java/org/torusresearch/torusutils/TorusUtils.java

Lines changed: 32 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,39 @@
33
import com.google.gson.Gson;
44
import com.google.gson.GsonBuilder;
55
import com.google.gson.JsonSyntaxException;
6-
import okhttp3.internal.http2.Header;
6+
77
import org.bouncycastle.jce.ECNamedCurveTable;
88
import org.bouncycastle.jce.provider.BouncyCastleProvider;
99
import org.bouncycastle.jce.spec.ECNamedCurveParameterSpec;
1010
import org.bouncycastle.math.ec.ECPoint;
1111
import org.torusresearch.fetchnodedetails.types.TorusNodePub;
12-
import org.torusresearch.torusutils.apis.*;
13-
import org.torusresearch.torusutils.helpers.*;
14-
import org.torusresearch.torusutils.types.*;
12+
import org.torusresearch.torusutils.apis.APIUtils;
13+
import org.torusresearch.torusutils.apis.CommitmentRequestParams;
14+
import org.torusresearch.torusutils.apis.JsonRPCResponse;
15+
import org.torusresearch.torusutils.apis.KeyAssignResult;
16+
import org.torusresearch.torusutils.apis.KeyAssignment;
17+
import org.torusresearch.torusutils.apis.NodeSignature;
18+
import org.torusresearch.torusutils.apis.PubKey;
19+
import org.torusresearch.torusutils.apis.ShareRequestParams;
20+
import org.torusresearch.torusutils.apis.VerifierLookupItem;
21+
import org.torusresearch.torusutils.apis.VerifierLookupRequestResult;
22+
import org.torusresearch.torusutils.helpers.AES256CBC;
23+
import org.torusresearch.torusutils.helpers.Base64;
24+
import org.torusresearch.torusutils.helpers.PredicateFailedException;
25+
import org.torusresearch.torusutils.helpers.Some;
26+
import org.torusresearch.torusutils.helpers.Utils;
27+
import org.torusresearch.torusutils.types.DecryptedShare;
28+
import org.torusresearch.torusutils.types.GetOrSetNonceError;
29+
import org.torusresearch.torusutils.types.GetOrSetNonceResult;
30+
import org.torusresearch.torusutils.types.MetadataParams;
31+
import org.torusresearch.torusutils.types.MetadataPubKey;
32+
import org.torusresearch.torusutils.types.MetadataResponse;
33+
import org.torusresearch.torusutils.types.RetrieveSharesResponse;
34+
import org.torusresearch.torusutils.types.TorusCtorOptions;
35+
import org.torusresearch.torusutils.types.TorusException;
36+
import org.torusresearch.torusutils.types.TorusPublicKey;
37+
import org.torusresearch.torusutils.types.TypeOfUser;
38+
import org.torusresearch.torusutils.types.VerifierArgs;
1539
import org.web3j.crypto.ECDSASignature;
1640
import org.web3j.crypto.ECKeyPair;
1741
import org.web3j.crypto.Hash;
@@ -27,6 +51,8 @@
2751
import java.util.concurrent.CompletableFuture;
2852
import java.util.concurrent.atomic.AtomicBoolean;
2953

54+
import okhttp3.internal.http2.Header;
55+
3056
public class TorusUtils {
3157

3258
public final TorusCtorOptions options;
@@ -94,7 +120,8 @@ private void setupBouncyCastle() {
94120

95121
public CompletableFuture<RetrieveSharesResponse> retrieveShares(String[] endpoints, BigInteger[] indexes, String verifier, HashMap<String, Object> verifierParams, String idToken, HashMap<String, Object> extraParams) {
96122
try {
97-
APIUtils.get(this.options.getAllowHost(), new Header[]{new Header("Origin", this.options.getOrigin()), new Header("verifier", verifier), new Header("verifier_id", verifierParams.get("verifier_id").toString()), new Header("network", this.options.getNetwork())}, true).get();
123+
APIUtils.get(this.options.getAllowHost(), new Header[]{new Header("Origin", this.options.getOrigin()), new Header("verifier", verifier), new Header("verifier_id", verifierParams.get("verifier_id").toString()), new Header("network", this.options.getNetwork()), new Header("clientid", this.options.getClientId()),
124+
new Header("enablegating", "true")}, true).get();
98125
List<CompletableFuture<String>> promiseArr = new ArrayList<>();
99126
// generate temporary private and public key that is used to secure receive shares
100127
ECKeyPair tmpKey = Keys.createEcKeyPair();

src/main/java/org/torusresearch/torusutils/types/TorusCtorOptions.java

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,11 @@ public class TorusCtorOptions {
1313
private String network = "mainnet";
1414

1515
private boolean legacyNonce = false;
16+
private String clientId;
1617

17-
public TorusCtorOptions(String origin) {
18+
public TorusCtorOptions(String origin, String clientid) {
1819
this.origin = origin;
20+
this.clientId = clientid;
1921
}
2022

2123
public String getNetwork() {
@@ -81,4 +83,12 @@ public boolean isLegacyNonce() {
8183
public void setLegacyNonce(boolean legacyNonce) {
8284
this.legacyNonce = legacyNonce;
8385
}
86+
87+
public String getClientId() {
88+
return clientId;
89+
}
90+
91+
public void setClientId(String clientId) {
92+
this.clientId = clientId;
93+
}
8494
}

src/test/java/org/torusresearch/torusutilstest/AquaTest.java

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,23 @@
11
package org.torusresearch.torusutilstest;
22

3+
import static org.junit.jupiter.api.Assertions.assertEquals;
4+
import static org.junit.jupiter.api.Assertions.assertNotEquals;
5+
import static org.junit.jupiter.api.Assertions.assertNotNull;
6+
37
import com.auth0.jwt.algorithms.Algorithm;
8+
49
import org.junit.jupiter.api.BeforeAll;
510
import org.junit.jupiter.api.DisplayName;
611
import org.junit.jupiter.api.Test;
712
import org.torusresearch.fetchnodedetails.FetchNodeDetails;
813
import org.torusresearch.fetchnodedetails.types.NodeDetails;
914
import org.torusresearch.fetchnodedetails.types.TorusNetwork;
1015
import org.torusresearch.torusutils.TorusUtils;
11-
import org.torusresearch.torusutils.types.*;
16+
import org.torusresearch.torusutils.types.RetrieveSharesResponse;
17+
import org.torusresearch.torusutils.types.TorusCtorOptions;
18+
import org.torusresearch.torusutils.types.TorusException;
19+
import org.torusresearch.torusutils.types.TorusPublicKey;
20+
import org.torusresearch.torusutils.types.VerifierArgs;
1221
import org.torusresearch.torusutilstest.utils.JwtUtils;
1322
import org.torusresearch.torusutilstest.utils.PemUtils;
1423
import org.torusresearch.torusutilstest.utils.VerifyParams;
@@ -25,8 +34,6 @@
2534
import java.util.HashMap;
2635
import java.util.concurrent.ExecutionException;
2736

28-
import static org.junit.jupiter.api.Assertions.*;
29-
3037
public class AquaTest {
3138

3239
static FetchNodeDetails fetchNodeDetails;
@@ -43,7 +50,7 @@ public class AquaTest {
4350
static void setup() throws ExecutionException, InterruptedException, IOException, NoSuchAlgorithmException, InvalidKeySpecException {
4451
System.out.println("Setup Starting");
4552
fetchNodeDetails = new FetchNodeDetails(TorusNetwork.AQUA, FetchNodeDetails.PROXY_ADDRESS_AQUA);
46-
TorusCtorOptions opts = new TorusCtorOptions("Custom");
53+
TorusCtorOptions opts = new TorusCtorOptions("Custom", "YOUR_CLIENT_ID");
4754
opts.setNetwork("aqua");
4855
opts.setSignerHost("https://signer-polygon.tor.us/api/sign");
4956
opts.setAllowHost("https://signer-polygon.tor.us/api/allow");

src/test/java/org/torusresearch/torusutilstest/CelesteTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ public class CelesteTest {
5151
static void setup() throws ExecutionException, InterruptedException, IOException, NoSuchAlgorithmException, InvalidKeySpecException {
5252
System.out.println("Setup Startingg");
5353
fetchNodeDetails = new FetchNodeDetails(TorusNetwork.CELESTE, FetchNodeDetails.PROXY_ADDRESS_CELESTE);
54-
TorusCtorOptions opts = new TorusCtorOptions("Custom");
54+
TorusCtorOptions opts = new TorusCtorOptions("Custom", "YOUR_CLIENT_ID");
5555
opts.setNetwork("celeste");
5656
opts.setSignerHost("https://signer-polygon.tor.us/api/sign");
5757
opts.setAllowHost("https://signer-polygon.tor.us/api/allow");

src/test/java/org/torusresearch/torusutilstest/CyanTest.java

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,24 @@
11
package org.torusresearch.torusutilstest;
22

3+
import static org.junit.jupiter.api.Assertions.assertEquals;
4+
import static org.junit.jupiter.api.Assertions.assertNotEquals;
5+
import static org.junit.jupiter.api.Assertions.assertNotNull;
6+
37
import com.auth0.jwt.algorithms.Algorithm;
8+
49
import org.junit.jupiter.api.BeforeAll;
510
import org.junit.jupiter.api.DisplayName;
611
import org.junit.jupiter.api.Test;
712
import org.torusresearch.fetchnodedetails.FetchNodeDetails;
813
import org.torusresearch.fetchnodedetails.types.NodeDetails;
914
import org.torusresearch.fetchnodedetails.types.TorusNetwork;
1015
import org.torusresearch.torusutils.TorusUtils;
11-
import org.torusresearch.torusutils.types.*;
16+
import org.torusresearch.torusutils.types.RetrieveSharesResponse;
17+
import org.torusresearch.torusutils.types.TorusCtorOptions;
18+
import org.torusresearch.torusutils.types.TorusException;
19+
import org.torusresearch.torusutils.types.TorusPublicKey;
20+
import org.torusresearch.torusutils.types.TypeOfUser;
21+
import org.torusresearch.torusutils.types.VerifierArgs;
1222
import org.torusresearch.torusutilstest.utils.JwtUtils;
1323
import org.torusresearch.torusutilstest.utils.PemUtils;
1424
import org.torusresearch.torusutilstest.utils.VerifyParams;
@@ -25,8 +35,6 @@
2535
import java.util.HashMap;
2636
import java.util.concurrent.ExecutionException;
2737

28-
import static org.junit.jupiter.api.Assertions.*;
29-
3038
public class CyanTest {
3139

3240
static FetchNodeDetails fetchNodeDetails;
@@ -43,7 +51,7 @@ public class CyanTest {
4351
static void setup() throws ExecutionException, InterruptedException, IOException, NoSuchAlgorithmException, InvalidKeySpecException {
4452
System.out.println("Setup Starting");
4553
fetchNodeDetails = new FetchNodeDetails(TorusNetwork.CYAN, FetchNodeDetails.PROXY_ADDRESS_CYAN);
46-
TorusCtorOptions opts = new TorusCtorOptions("Custom");
54+
TorusCtorOptions opts = new TorusCtorOptions("Custom", "YOUR_CLIENT_ID");
4755
opts.setNetwork("cyan");
4856
opts.setSignerHost("https://signer-polygon.tor.us/api/sign");
4957
opts.setAllowHost("https://signer-polygon.tor.us/api/allow");
@@ -68,8 +76,8 @@ public void shouldFetchUserTypeAndPublicAddress() throws ExecutionException, Int
6876
VerifierArgs args = new VerifierArgs("tkey-google-cyan", TORUS_TEST_EMAIL);
6977
NodeDetails nodeDetails = fetchNodeDetails.getNodeDetails(args.getVerifier(), args.getVerifierId()).get();
7078
TorusPublicKey key = torusUtils.getUserTypeAndAddress(nodeDetails.getTorusNodeEndpoints(), nodeDetails.getTorusNodePub(), args).get();
71-
assertEquals("0xA3767911A84bE6907f26C572bc89426dDdDB2825", key.getAddress());
72-
assertEquals(TypeOfUser.v1, key.getTypeOfUser());
79+
assertEquals("0x3507F0d192a44E436B8a6C32a37d57D022861b1a", key.getAddress());
80+
assertEquals(TypeOfUser.v2, key.getTypeOfUser());
7381

7482
String v2Verifier = "tkey-google-cyan";
7583
// 1/1 user
@@ -106,7 +114,7 @@ public void shouldLogin() throws ExecutionException, InterruptedException, Torus
106114
System.out.println(retrieveSharesResponse.getPrivKey());
107115
BigInteger requiredPrivateKey = new BigInteger("1e0c955d73e73558f46521da55cc66de7b8fcb56c5b24e851616849b6a1278c8", 16);
108116
assert (requiredPrivateKey.equals(retrieveSharesResponse.getPrivKey()));
109-
assertEquals("0x8AA6C8ddCD868873120aA265Fc63E3a2180375BA", retrieveSharesResponse.getEthAddress());
117+
assertEquals("0xC615aA03Dd8C9b2dc6F7c43cBDfF2c34bBa47Ec9", retrieveSharesResponse.getEthAddress());
110118
}
111119

112120
@DisplayName("Aggregate Login test")

src/test/java/org/torusresearch/torusutilstest/MainnetTest.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ public class MainnetTest {
5151
static void setup() throws IOException, NoSuchAlgorithmException, InvalidKeySpecException {
5252
System.out.println("Setup Starting");
5353
fetchNodeDetails = new FetchNodeDetails(TorusNetwork.MAINNET, FetchNodeDetails.PROXY_ADDRESS_MAINNET);
54-
TorusCtorOptions opts = new TorusCtorOptions("Custom");
54+
TorusCtorOptions opts = new TorusCtorOptions("Custom", "YOUR_CLIENT_ID");
5555
opts.setNetwork("mainnet");
5656
torusUtils = new TorusUtils(opts);
5757
ECPrivateKey privateKey = (ECPrivateKey) PemUtils.readPrivateKeyFromFile("src/test/java/org/torusresearch/torusutilstest/keys/key.pem", "EC");
@@ -75,8 +75,8 @@ public void shouldFetchUserTypeAndPublicAddress() throws ExecutionException, Int
7575
VerifierArgs args = new VerifierArgs("google", TORUS_TEST_EMAIL);
7676
NodeDetails nodeDetails = fetchNodeDetails.getNodeDetails(args.getVerifier(), args.getVerifierId()).get();
7777
TorusPublicKey key = torusUtils.getUserTypeAndAddress(nodeDetails.getTorusNodeEndpoints(), nodeDetails.getTorusNodePub(), args).get();
78-
assertEquals("0x0C44AFBb5395a9e8d28DF18e1326aa0F16b9572A", key.getAddress());
79-
assertEquals(TypeOfUser.v1, key.getTypeOfUser());
78+
assertEquals("0xb2e1c3119f8D8E73de7eaF7A535FB39A3Ae98C5E", key.getAddress());//0x0C44AFBb5395a9e8d28DF18e1326aa0F16b9572A
79+
assertEquals(TypeOfUser.v2, key.getTypeOfUser());
8080

8181
String v2Verifier = "tkey-google";
8282
// 1/1 user
@@ -88,8 +88,8 @@ public void shouldFetchUserTypeAndPublicAddress() throws ExecutionException, Int
8888
// v1 user
8989
String v2nTestEmail = "caspertorus@gmail.com";
9090
TorusPublicKey key3 = torusUtils.getUserTypeAndAddress(nodeDetails.getTorusNodeEndpoints(), nodeDetails.getTorusNodePub(), new VerifierArgs(v2Verifier, v2nTestEmail)).get();
91-
assertEquals("0x61E52B6e488EC3dD6FDc0F5ed04a62Bb9c6BeF53", key3.getAddress());
92-
assertEquals(TypeOfUser.v1, key3.getTypeOfUser());
91+
assertEquals("0x40A4A04fDa1f29a3667152C8830112FBd6A77BDD", key3.getAddress());
92+
assertEquals(TypeOfUser.v2, key3.getTypeOfUser());
9393
}
9494

9595
@DisplayName("Key Assign test")

src/test/java/org/torusresearch/torusutilstest/OneKeyTest.java

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,24 @@
11
package org.torusresearch.torusutilstest;
22

3+
import static org.junit.jupiter.api.Assertions.assertEquals;
4+
import static org.junit.jupiter.api.Assertions.assertNotEquals;
5+
import static org.junit.jupiter.api.Assertions.assertNotNull;
6+
37
import com.auth0.jwt.algorithms.Algorithm;
8+
49
import org.junit.jupiter.api.BeforeAll;
510
import org.junit.jupiter.api.DisplayName;
611
import org.junit.jupiter.api.Test;
712
import org.torusresearch.fetchnodedetails.FetchNodeDetails;
813
import org.torusresearch.fetchnodedetails.types.NodeDetails;
914
import org.torusresearch.fetchnodedetails.types.TorusNetwork;
1015
import org.torusresearch.torusutils.TorusUtils;
11-
import org.torusresearch.torusutils.types.*;
16+
import org.torusresearch.torusutils.types.RetrieveSharesResponse;
17+
import org.torusresearch.torusutils.types.TorusCtorOptions;
18+
import org.torusresearch.torusutils.types.TorusException;
19+
import org.torusresearch.torusutils.types.TorusPublicKey;
20+
import org.torusresearch.torusutils.types.TypeOfUser;
21+
import org.torusresearch.torusutils.types.VerifierArgs;
1222
import org.torusresearch.torusutilstest.utils.JwtUtils;
1323
import org.torusresearch.torusutilstest.utils.PemUtils;
1424
import org.torusresearch.torusutilstest.utils.VerifyParams;
@@ -25,8 +35,6 @@
2535
import java.util.HashMap;
2636
import java.util.concurrent.ExecutionException;
2737

28-
import static org.junit.jupiter.api.Assertions.*;
29-
3038
public class OneKeyTest {
3139

3240
static FetchNodeDetails fetchNodeDetails;
@@ -43,7 +51,7 @@ public class OneKeyTest {
4351
static void setup() throws ExecutionException, InterruptedException, IOException, NoSuchAlgorithmException, InvalidKeySpecException {
4452
System.out.println("Setup Starting");
4553
fetchNodeDetails = new FetchNodeDetails(TorusNetwork.TESTNET, FetchNodeDetails.PROXY_ADDRESS_TESTNET);
46-
TorusCtorOptions opts = new TorusCtorOptions("Custom");
54+
TorusCtorOptions opts = new TorusCtorOptions("Custom", "YOUR_CLIENT_ID");
4755
opts.setNetwork("testnet");
4856
opts.setEnableOneKey(true);
4957
torusUtils = new TorusUtils(opts);

0 commit comments

Comments
 (0)