// Copyright (c) 2024 Mozilla Corporation and contributors. // SPDX-License-Identifier: (Apache-2.0 OR MIT) use mls_platform_api::PlatformError; // // Scenario // // * Alice, Bob, Charlie and Diana create signing identity (generate_signature_keypair) // * Alice, Bob, Charlie and Diana create credentials (generate_credential_basic) // * Bob and Charlie create key packages (generate_key_package) // * Alice creates a group (group_create) #[test] fn test_group_create() -> Result<(), PlatformError> { // Default group configuration let group_config = mls_platform_api::GroupConfig::default(); // Storage states let mut state_global = mls_platform_api::state_access("global.db", &[0u8; 32])?; // Credentials let alice_cred = mls_platform_api::mls_generate_credential_basic("alice".as_bytes())?; println!("\nAlice credential: {}", hex::encode(&alice_cred)); // Create signature keypairs and store them in the state let alice_id = mls_platform_api::mls_generate_identity(&state_global, group_config.ciphersuite)?; println!("\nAlice identifier: {}", hex::encode(&alice_id)); // Create a group with Alice let gide = mls_platform_api::mls_group_create( &mut state_global, &alice_id, &alice_cred, None, None, &Default::default(), )?; println!("\nGroup created by Alice: {}", hex::encode(&gide.group_id)); // List the members of the group let members = mls_platform_api::mls_group_details(&state_global, &gide.group_id, &alice_id)?; println!("Members (alice, empty group): {members:?}"); Ok(()) }