// Generate Signature KeyPairs for Alice and Bob
let alice = await mls.generateIdentity();
let bob = await mls.generateIdentity();
// Generate Credentials for Alice and Bob
let credential_alice = await mls.generateCredential("alice");
let credential_bob = await mls.generateCredential("bob");
// Generate a KeyPackage for Bob
let kp_bob = await mls.generateKeyPackage(bob, credential_bob);
// Creation of a Group by Alice
let group_alice = await mls.groupCreate(alice, credential_alice);
let members_alice_0 = await group_alice.details();
// Test: compare the group identifier to the invalid value
info("Group ID:", byteArrayToHexString(group_alice.groupId));
isnot(byteArrayToHexString(group_alice.groupId), "", "Group Identifier != ''");
// Alice adds Bob to a group
let commit_output = await group_alice.add(kp_bob);
// Test: compare the commit output to the invalid value
info("Commit Output:", byteArrayToHexString(commit_output.commit));
isnot(byteArrayToHexString(commit_output.commit), "", "Commit != ''");
// Alice receives the commit
let group_and_epoch_1_alice = await group_alice.receive(commit_output.commit);
// Test: make sure that the group epoch has been incremented by one
const expectedEpoch = new Uint8Array(new BigUint64Array([1n]).buffer);
is(byteArrayToHexString(group_and_epoch_1_alice.groupEpoch), byteArrayToHexString(expectedEpoch), "Group Epoch = 1");
// Get the group details
let members_alice_1 = await group_alice.details();
// Test: the group should have exactly one member at epoch 0
is(members_alice_0.members.length, 1, "There should be exactly one member in the group");
// Test: the group should have exactly two members at epoch 1
is(members_alice_1.members.length, 2, "There should be exactly two members in the group");
// Test: compare the group members to the expected value
is(members_alice_1.members.some(member => byteArrayToHexString(member.clientId) === byteArrayToHexString(bob.content)), true, "Bob should be in the group");
is(members_alice_1.members.some(member => byteArrayToHexString(member.clientId) === byteArrayToHexString(alice.content)), true, "Alice should be in the group");
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.