Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
import org.cardanofoundation.signify.app.clienting.SignifyClient;
import org.cardanofoundation.signify.cesr.exceptions.LibsodiumException;
import org.cardanofoundation.signify.cesr.util.Utils;
import org.cardanofoundation.signify.generated.keria.model.OOBI;

public class Oobis {
private final SignifyClient client;
Expand All @@ -28,7 +29,7 @@ public Oobis(SignifyClient client) {
* @throws JsonProcessingException if there is an error processing the JSON
* @throws LibsodiumException if there is an error in the cryptographic operations
*/
public Optional<Object> get(String name, String role) throws IOException, InterruptedException, LibsodiumException {
public Optional<OOBI> get(String name, String role) throws IOException, InterruptedException, LibsodiumException {
if (role == null) {
role = "agent";
}
Expand All @@ -40,7 +41,7 @@ public Optional<Object> get(String name, String role) throws IOException, Interr
return Optional.empty();
}

return Optional.of(Utils.fromJson(response.body(), Object.class));
return Optional.of(Utils.fromJson(response.body(), OOBI.class));
}

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
import java.util.List;
import java.util.concurrent.CompletableFuture;
import org.cardanofoundation.signify.generated.keria.model.Identifier;
import org.cardanofoundation.signify.generated.keria.model.OOBI;

import static org.cardanofoundation.signify.e2e.utils.TestUtils.unchecked;

Expand All @@ -35,8 +36,8 @@ public static List<Identifier> createAidAndGetHabStateAsync(CreateAidArgs... cre

}

public static List<Object> getOobisAsync(GetOobisArgs... getOobisArgs) {
List<CompletableFuture<Object>> getOobisFutures = new ArrayList<>();
public static List<OOBI> getOobisAsync(GetOobisArgs... getOobisArgs) {
List<CompletableFuture<OOBI>> getOobisFutures = new ArrayList<>();
for (GetOobisArgs getOobisArg : getOobisArgs) {
getOobisFutures.add(getOobisFuture(getOobisArg.signifyClient, getOobisArg.name, getOobisArg.role));
}
Expand Down Expand Up @@ -109,7 +110,7 @@ static CompletableFuture<Identifier> createAidAndGetHabStateFuture(SignifyClient
));
}

static CompletableFuture<Object> getOobisFuture(SignifyClient client, String name, String role) {
static CompletableFuture<OOBI> getOobisFuture(SignifyClient client, String name, String role) {
return CompletableFuture.supplyAsync(unchecked(() ->
client.oobis().get(name, role).get()
));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
import org.cardanofoundation.signify.cesr.Serder;
import org.cardanofoundation.signify.cesr.util.Utils;

import org.cardanofoundation.signify.generated.keria.model.OOBI;
import org.cardanofoundation.signify.generated.keria.model.Tier;
import org.junit.jupiter.api.Test;
import org.slf4j.Logger;
Expand Down Expand Up @@ -97,13 +98,11 @@ void ChallengeTest() throws Exception {
waitOperation(client2, rpyResult2.op());

// Exchange OOBIs
Object oobi1 = client1.oobis().get("alice", "agent").get();
Map<String, Object> oobiBody1 = (Map<String, Object>) oobi1;
ArrayList<String> oobiResponse1 = (ArrayList<String>) oobiBody1.get("oobis");
OOBI oobi1 = client1.oobis().get("alice", "agent").get();
List<String> oobiResponse1 = oobi1.getOobis();

Object oobi2 = client2.oobis().get("bob", "agent").get();
Map<String, Object> oobiBody2 = (Map<String, Object>) oobi2;
ArrayList<String> oobiResponse2 = (ArrayList<String>) oobiBody2.get("oobis");
OOBI oobi2 = client2.oobis().get("bob", "agent").get();
List<String> oobiResponse2 = oobi2.getOobis();

resolveOobi(client1, oobiResponse2.getFirst(), "bob");
resolveOobi(client2, oobiResponse1.getFirst(), "alice");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
import org.cardanofoundation.signify.e2e.utils.TestSteps;
import org.cardanofoundation.signify.e2e.utils.TestUtils;
import org.cardanofoundation.signify.generated.keria.model.Identifier;
import org.cardanofoundation.signify.generated.keria.model.OOBI;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;

Expand Down Expand Up @@ -53,26 +54,26 @@ void delegationMultisigTest() throws Exception {
Identifier delegatee2Aid = aids.get(3);

// Exchange OOBIs
List<Object> oobis = testSteps.step("Exchanging OOBIs", () ->
List<OOBI> oobis = testSteps.step("Exchanging OOBIs", () ->
getOobisAsync(
new GetOobisArgs(delegator1Client, delegator1Name, "agent"),
new GetOobisArgs(delegator2Client, delegator2Name, "agent"),
new GetOobisArgs(delegatee1Client, delegatee1Name, "agent"),
new GetOobisArgs(delegatee2Client, delegatee2Name, "agent")
));

Map<String, Object> delegator1Oobi = (Map<String, Object>) oobis.get(0);
Map<String, Object> delegator2Oobi = (Map<String, Object>) oobis.get(1);
Map<String, Object> delegatee1Oobi = (Map<String, Object>) oobis.get(2);
Map<String, Object> delegatee2Oobi = (Map<String, Object>) oobis.get(3);
OOBI delegator1Oobi = oobis.get(0);
OOBI delegator2Oobi = oobis.get(1);
OOBI delegatee1Oobi = oobis.get(2);
OOBI delegatee2Oobi = oobis.get(3);

// Resolve OOBIs
testSteps.step("Resolving OOBIs", () -> {
resolveOobisAsync(
new ResolveOobisArgs(delegator1Client, ((List<String>) delegator2Oobi.get("oobis")).get(0), delegator2Name),
new ResolveOobisArgs(delegator2Client, ((List<String>) delegator1Oobi.get("oobis")).get(0), delegator1Name),
new ResolveOobisArgs(delegatee1Client, ((List<String>) delegatee2Oobi.get("oobis")).get(0), delegatee2Name),
new ResolveOobisArgs(delegatee2Client, ((List<String>) delegatee1Oobi.get("oobis")).get(0), delegatee1Name)
new ResolveOobisArgs(delegator1Client, delegator2Oobi.getOobis().getFirst(), delegator2Name),
new ResolveOobisArgs(delegator2Client, delegator1Oobi.getOobis().getFirst(), delegator1Name),
new ResolveOobisArgs(delegatee1Client, delegatee2Oobi.getOobis().getFirst(), delegatee2Name),
new ResolveOobisArgs(delegatee2Client, delegatee1Oobi.getOobis().getFirst(), delegatee1Name)
);
});
System.out.println(
Expand Down Expand Up @@ -175,13 +176,13 @@ void delegationMultisigTest() throws Exception {
TestUtils.waitAndMarkNotification(delegator1Client, "/multisig/rpy");
TestUtils.waitAndMarkNotification(delegator2Client, "/multisig/rpy");

Map<String, Object> odelegatorGroupName1 = (Map<String, Object>) delegator1Client.oobis().get(adelegatorGroupName.getName(), "agent").get();
Map<String, Object> odelegatorGroupName2 = (Map<String, Object>) delegator2Client.oobis().get(adelegatorGroupName.getName(), "agent").get();
OOBI odelegatorGroupName1 = delegator1Client.oobis().get(adelegatorGroupName.getName(), "agent").get();
OOBI odelegatorGroupName2 = delegator2Client.oobis().get(adelegatorGroupName.getName(), "agent").get();

assertEquals(odelegatorGroupName1.get("role"), odelegatorGroupName2.get("role"));
assertEquals(odelegatorGroupName1.getRole(), odelegatorGroupName2.getRole());

String stringOobis1 = ((List<String>) odelegatorGroupName1.get("oobis")).get(0);
String stringOobis2 = ((List<String>) odelegatorGroupName2.get("oobis")).get(0);
String stringOobis1 = odelegatorGroupName1.getOobis().getFirst();
String stringOobis2 = odelegatorGroupName2.getOobis().getFirst();

assertEquals(stringOobis1, stringOobis2);
return stringOobis1;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
import org.cardanofoundation.signify.cesr.Salter;
import org.cardanofoundation.signify.e2e.utils.TestSteps;
import org.cardanofoundation.signify.generated.keria.model.Identifier;
import org.cardanofoundation.signify.generated.keria.model.OOBI;
import org.cardanofoundation.signify.generated.keria.model.Tier;
import org.junit.jupiter.api.Test;

Expand Down Expand Up @@ -74,8 +75,8 @@ void delegationTest() throws Exception {
waitOperation(client1, rpyResult1.op());

// Client 2 resolves delegator OOBI
Map<String, Object> oobi1 = (Map<String, Object>) client1.oobis().get("delegator", "agent").get();
ArrayList<String> listOobi1 = (ArrayList<String>) oobi1.get("oobis");
OOBI oobi1 = client1.oobis().get("delegator", "agent").get();
List<String> listOobi1 = oobi1.getOobis();
resolveOobi(client2, listOobi1.getFirst(), "delegator");
System.out.println("OOBI resolved");

Expand Down Expand Up @@ -124,9 +125,8 @@ void delegationTest() throws Exception {
null
);
waitOperation(client2, rpyResult2.op());
Object oobis = client2.oobis().get("delegate", null).get();
Map<String, Object> oobiBody = (Map<String, Object>) oobis;
ArrayList<String> oobisResponse = (ArrayList<String>) oobiBody.get("oobis");
OOBI oobis = client2.oobis().get("delegate", null).get();
List<String> oobisResponse = oobis.getOobis();

oobi = oobisResponse.getFirst().split("/agent/")[0];
assertNotNull(oobi);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@
import org.cardanofoundation.signify.app.credentialing.credentials.CredentialData.CredentialSubject;
import org.cardanofoundation.signify.e2e.utils.ResolveEnv;
import org.cardanofoundation.signify.generated.keria.model.KeyStateRecord;
import org.cardanofoundation.signify.generated.keria.model.OOBI;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;

Expand All @@ -39,7 +40,7 @@
public class MultisigHolderTest extends BaseIntegrationTest {
SignifyClient client1, client2, client3;
Identifier aid1, aid2, aid3;
Object oobi1, oobi2, oobi3;
OOBI oobi1, oobi2, oobi3;
String oobis1, oobis2, oobis3;
private List<HashMap<String, Object>> registryList;

Expand Down Expand Up @@ -77,7 +78,7 @@ void multisigHolderTest() throws Exception {

// Exchange OOBIs
System.out.println("Resolving OOBIs");
List<Object> oobis = getOobisAsync(
List<OOBI> oobis = getOobisAsync(
new GetOobisArgs(client1, "member1", "agent"),
new GetOobisArgs(client2, "member2", "agent"),
new GetOobisArgs(client3, "issuer", "agent")
Expand All @@ -86,9 +87,9 @@ void multisigHolderTest() throws Exception {
oobi2 = oobis.get(1);
oobi3 = oobis.get(2);

oobis1 = getOobisIndexAt0(oobi1);
oobis2 = getOobisIndexAt0(oobi2);
oobis3 = getOobisIndexAt0(oobi3);
oobis1 = oobi1.getOobis().getFirst();
oobis2 = oobi2.getOobis().getFirst();
oobis3 = oobi3.getOobis().getFirst();

Object op1 = client1.oobis().resolve(oobis2, "member2");
op1 = waitOperation(client1, op1);
Expand Down Expand Up @@ -388,9 +389,8 @@ void multisigHolderTest() throws Exception {
System.out.println("End role authorization for agent " + eid2 + " completed!");

// Holder resolve multisig OOBI
Object oobisRes = client1.oobis().get("holder", "agent").get();
Map<String, Object> oobiBody = (Map<String, Object>) oobisRes;
ArrayList<String> oobisResponse = (ArrayList<String>) oobiBody.get("oobis");
OOBI oobisRes = client1.oobis().get("holder", "agent").get();
List<String> oobisResponse = oobisRes.getOobis();

String oobiMultisig = oobisResponse.getFirst().split("/agent/")[0];

Expand Down Expand Up @@ -625,11 +625,4 @@ public Object multisigAdmitCredential(
);
return op;
}

public String getOobisIndexAt0(Object oobi) {
Map<String, Object> oobiBody = (Map<String, Object>) oobi;
ArrayList<String> oobisResponse = (ArrayList<String>) oobiBody.get("oobis");
return oobisResponse.getFirst();
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
import org.cardanofoundation.signify.generated.keria.model.GroupMember;
import org.cardanofoundation.signify.generated.keria.model.Identifier;
import org.cardanofoundation.signify.generated.keria.model.KeyStateRecord;
import org.cardanofoundation.signify.generated.keria.model.OOBI;
import org.junit.jupiter.api.*;

import java.util.*;
Expand All @@ -36,7 +37,7 @@ public class MultisigJoinTest extends BaseIntegrationTest {
static String nameMember3 = "member3";
static String nameMultisig = "multisigGroup";
static String oobi1, oobi2, oobi3, oobiMultisig;
private static Map<String, Object> oobiGetMultisig;
private static OOBI oobiGetMultisig;

@BeforeAll
public static void getClients() throws Exception {
Expand All @@ -48,7 +49,7 @@ public static void getClients() throws Exception {
createAID(client1, nameMember1, new ArrayList<>());
createAID(client2, nameMember2, new ArrayList<>());

List<Object> oobis = getOobisAsync(
List<OOBI> oobis = getOobisAsync(
new GetOobisArgs(client1, nameMember1, "agent"),
new GetOobisArgs(client2, nameMember2, "agent")
);
Expand Down Expand Up @@ -168,8 +169,7 @@ public void multisigJoinTest() throws Exception {
EventResult endRoleOperation1 = client1.identifiers().addEndRole(nameMultisig, "agent", eid1, null);
EventResult endRoleOperation2 = client2.identifiers().addEndRole(nameMultisig, "agent", eid2, null);

oobiGetMultisig = new LinkedHashMap<>();
oobiGetMultisig = (Map<String, Object>) client1.oobis().get(nameMultisig, "agent").get();
oobiGetMultisig = client1.oobis().get(nameMultisig, "agent").get();

waitOperationAsync(
new WaitOperationArgs(client1, endRoleOperation1.op()),
Expand All @@ -184,14 +184,14 @@ public void multisigJoinTestAddMember3() throws Exception {

aid3 = createAID(client3, nameMember3, new ArrayList<>());

List<Object> oobis = getOobisAsync(
List<OOBI> oobis = getOobisAsync(
new GetOobisArgs(client1, nameMember1, "agent"),
new GetOobisArgs(client2, nameMember2, "agent"),
new GetOobisArgs(client3, nameMember3, "agent")
);

oobi3 = getOobisIndexAt0(oobis.get(2));
oobiMultisig = getOobisIndexAt0(oobiGetMultisig);
oobi3 = oobis.get(2).getOobis().getFirst();
oobiMultisig = oobiGetMultisig.getOobis().getFirst();

resolveOobisAsync(
new ResolveOobisArgs(client1, oobi3, nameMember3),
Expand Down Expand Up @@ -445,9 +445,7 @@ public static Identifier createAID(SignifyClient client, String name, List<Strin
return client.identifiers().get(name).get();
}

public static String getOobisIndexAt0(Object oobi) {
Map<String, Object> oobiBody = Utils.toMap(oobi);
ArrayList<String> oobisResponse = (ArrayList<String>) oobiBody.get("oobis");
return oobisResponse.getFirst();
public static String getOobisIndexAt0(OOBI oobi) {
return oobi.getOobis().get(0);
}
}
19 changes: 9 additions & 10 deletions src/test/java/org/cardanofoundation/signify/e2e/MultisigTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@
import org.cardanofoundation.signify.e2e.utils.ResolveEnv;
import org.cardanofoundation.signify.e2e.utils.TestUtils;
import org.cardanofoundation.signify.generated.keria.model.KeyStateRecord;
import org.cardanofoundation.signify.generated.keria.model.OOBI;
import org.junit.jupiter.api.Test;

import java.io.IOException;
Expand Down Expand Up @@ -78,17 +79,17 @@ public void multisig() throws Exception {

// Exchange OOBIs
System.out.println("Resolving OOBIs");
List<Object> oobisLst = getOobisAsync(
List<OOBI> oobisLst = getOobisAsync(
new GetOobisArgs(client1, "member1", "agent"),
new GetOobisArgs(client2, "member2", "agent"),
new GetOobisArgs(client3, "member3", "agent"),
new GetOobisArgs(client4, "holder", "agent")
);

Object oobi1 = oobisLst.get(0);
Object oobi2 = oobisLst.get(1);
Object oobi3 = oobisLst.get(2);
Object oobi4 = oobisLst.get(3);
OOBI oobi1 = oobisLst.get(0);
OOBI oobi2 = oobisLst.get(1);
OOBI oobi3 = oobisLst.get(2);
OOBI oobi4 = oobisLst.get(3);

String oobis1 = getOobisIndexAt0(oobi1);
String oobis2 = getOobisIndexAt0(oobi2);
Expand Down Expand Up @@ -308,7 +309,7 @@ public void multisig() throws Exception {
System.out.println("End role authorization completed!");

// Holder resolve multisig OOBI
Object oobimultisig = client1.oobis().get("multisig", "agent").get();
OOBI oobimultisig = client1.oobis().get("multisig", "agent").get();
op4 = client4.oobis().resolve(getOobisIndexAt0(oobimultisig), "multisig");
waitOperation(client4, op4);
System.out.println("Holder resolved multisig OOBI");
Expand Down Expand Up @@ -834,10 +835,8 @@ public void multisig() throws Exception {
System.out.println("Multisig credential revocation completed!");
}

public String getOobisIndexAt0(Object oobi) {
Map<String, Object> oobiBody = Utils.toMap(oobi);
ArrayList<String> oobisResponse = (ArrayList<String>) oobiBody.get("oobis");
return oobisResponse.getFirst();
public String getOobisIndexAt0(OOBI oobi) {
return oobi.getOobis().getFirst();
}

public void multisigIssue(
Expand Down
Loading
Loading