Skip to content
Merged
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
967 changes: 564 additions & 403 deletions Cargo.lock

Large diffs are not rendered by default.

49 changes: 47 additions & 2 deletions apiclient/src/as_api/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -33,8 +33,9 @@ use phnxtypes::{
},
client_as_out::{
AsClientConnectionPackageResponseIn, AsCredentialsResponseIn, AsProcessResponseIn,
AsVersionedProcessResponseIn, ConnectionPackageIn, InitClientAdditionResponseIn,
InitUserRegistrationResponseIn, UserClientsResponseIn,
AsVersionedProcessResponseIn, ConnectionPackageIn, EncryptedUserProfile,
GetUserProfileParams, GetUserProfileResponse, InitClientAdditionResponseIn,
InitUserRegistrationResponseIn, UpdateUserProfileParamsTbs, UserClientsResponseIn,
UserConnectionPackagesResponseIn,
},
client_qs::DequeueMessagesResponse,
Expand Down Expand Up @@ -160,13 +161,15 @@ impl ApiClient {
connection_packages: Vec<ConnectionPackage>,
opaque_registration_record: OpaqueRegistrationRecord,
signing_key: &ClientSigningKey,
encrypted_user_profile: EncryptedUserProfile,
) -> Result<(), AsRequestError> {
let tbs = FinishUserRegistrationParamsTbs {
client_id: signing_key.credential().identity().clone(),
queue_encryption_key,
initial_ratchet_secret,
connection_packages,
opaque_registration_record,
encrypted_user_profile,
};
let payload = tbs.sign(signing_key)?;
let params = AsRequestParamsOut::FinishUserRegistration(payload);
Expand All @@ -182,6 +185,48 @@ impl ApiClient {
})
}

pub async fn as_get_user_profile(
&self,
client_id: AsClientId,
) -> Result<GetUserProfileResponse, AsRequestError> {
let payload = GetUserProfileParams { client_id };
let params = AsRequestParamsOut::GetUserProfile(payload);
self.prepare_and_send_as_message(params)
.await
// Check if the response is what we expected it to be.
.and_then(|response| {
if let AsProcessResponseIn::GetUserProfile(response) = response {
Ok(response)
} else {
Err(AsRequestError::UnexpectedResponse)
}
})
}

pub async fn as_update_user_profile(
&self,
client_id: AsClientId,
signing_key: &ClientSigningKey,
encrypted_user_profile: EncryptedUserProfile,
) -> Result<(), AsRequestError> {
let payload = UpdateUserProfileParamsTbs {
client_id,
user_profile: encrypted_user_profile,
}
.sign(signing_key)?;
let params = AsRequestParamsOut::UpdateUserProfile(payload);
self.prepare_and_send_as_message(params)
.await
// Check if the response is what we expected it to be.
.and_then(|response| {
if matches!(response, AsProcessResponseIn::Ok) {
Ok(())
} else {
Err(AsRequestError::UnexpectedResponse)
}
})
}

pub async fn as_delete_user(
&self,
user_name: QualifiedUserName,
Expand Down
12 changes: 5 additions & 7 deletions apiclient/src/ds_api/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,7 @@ use crate::version::{extract_api_version_negotiation, negotiate_api_version};
use super::*;
use mls_assist::{
messages::AssistedMessageOut,
openmls::prelude::{
GroupEpoch, GroupId, LeafNodeIndex, MlsMessageOut, RatchetTreeIn, tls_codec::Serialize,
},
openmls::prelude::{GroupEpoch, GroupId, LeafNodeIndex, MlsMessageOut, tls_codec::Serialize},
};
use phnxtypes::{
LibraryError,
Expand All @@ -34,7 +32,7 @@ use phnxtypes::{
DsProcessResponseIn, DsRequestParamsOut, DsVersionedProcessResponseIn,
DsVersionedRequestParamsOut, ExternalCommitInfoIn, GroupOperationParamsOut,
JoinConnectionGroupParamsOut, ResyncParamsOut, SelfRemoveParamsOut,
SendMessageParamsOut, UpdateParamsOut,
SendMessageParamsOut, UpdateParamsOut, WelcomeInfoIn,
},
},
time::TimeStamp,
Expand Down Expand Up @@ -182,7 +180,7 @@ impl ApiClient {
epoch: GroupEpoch,
group_state_ear_key: &GroupStateEarKey,
signing_key: &PseudonymousCredentialSigningKey,
) -> Result<RatchetTreeIn, DsRequestError> {
) -> Result<WelcomeInfoIn, DsRequestError> {
let payload = WelcomeInfoParams {
sender: signing_key.credential().verifying_key().clone(),
group_id,
Expand All @@ -196,8 +194,8 @@ impl ApiClient {
.await
// Check if the response is what we expected it to be.
.and_then(|response| {
if let DsProcessResponseIn::WelcomeInfo(ratchet_tree) = response {
Ok(ratchet_tree)
if let DsProcessResponseIn::WelcomeInfo(welcome_info) = response {
Ok(welcome_info)
} else {
Err(DsRequestError::UnexpectedResponse)
}
Expand Down
48 changes: 24 additions & 24 deletions app/pubspec.lock
Original file line number Diff line number Diff line change
Expand Up @@ -21,18 +21,18 @@ packages:
dependency: transitive
description:
name: archive
sha256: "0c64e928dcbefddecd234205422bcfc2b5e6d31be0b86fef0d0dd48d7b4c9742"
sha256: "7dcbd0f87fe5f61cb28da39a1a8b70dbc106e2fe0516f7836eb7bb2948481a12"
url: "https://pub.dev"
source: hosted
version: "4.0.4"
version: "4.0.5"
args:
dependency: transitive
description:
name: args
sha256: bf9f5caeea8d8fe6721a9c358dd8a5c1947b27f1cfaa18b39c301273594919e6
sha256: d0481093c50b1da8910eb0bb301626d4d8eb7284aa739614d2b394ee09e3ea04
url: "https://pub.dev"
source: hosted
version: "2.6.0"
version: "2.7.0"
async:
dependency: transitive
description:
Expand Down Expand Up @@ -133,10 +133,10 @@ packages:
dependency: transitive
description:
name: built_value
sha256: "8b158ab94ec6913e480dc3f752418348b5ae099eb75868b5f4775f0572999c61"
sha256: ea90e81dc4a25a043d9bee692d20ed6d1c4a1662a28c03a96417446c093ed6b4
url: "https://pub.dev"
source: hosted
version: "8.9.4"
version: "8.9.5"
characters:
dependency: transitive
description:
Expand Down Expand Up @@ -269,10 +269,10 @@ packages:
dependency: transitive
description:
name: file_selector_android
sha256: "98ac58e878b05ea2fdb204e7f4fc4978d90406c9881874f901428e01d3b18fbc"
sha256: f3a3d48a36d1640b4dca22a086f26b426c246925a80eddc2953120775fbcf86a
url: "https://pub.dev"
source: hosted
version: "0.5.1+12"
version: "0.5.1+13"
file_selector_ios:
dependency: transitive
description:
Expand Down Expand Up @@ -462,10 +462,10 @@ packages:
dependency: transitive
description:
name: image
sha256: "13d3349ace88f12f4a0d175eb5c12dcdd39d35c4c109a8a13dfeb6d0bd9e31c3"
sha256: "4e973fcf4caae1a4be2fa0a13157aa38a8f9cb049db6529aa00b4d71abc4d928"
url: "https://pub.dev"
source: hosted
version: "4.5.3"
version: "4.5.4"
image_picker:
dependency: "direct main"
description:
Expand All @@ -478,10 +478,10 @@ packages:
dependency: transitive
description:
name: image_picker_android
sha256: "82652a75e3dd667a91187769a6a2cc81bd8c111bbead698d8e938d2b63e5e89a"
sha256: "8bd392ba8b0c8957a157ae0dc9fcf48c58e6c20908d5880aea1d79734df090e9"
url: "https://pub.dev"
source: hosted
version: "0.8.12+21"
version: "0.8.12+22"
image_picker_for_web:
dependency: transitive
description:
Expand All @@ -502,10 +502,10 @@ packages:
dependency: transitive
description:
name: image_picker_linux
sha256: "4ed1d9bb36f7cd60aa6e6cd479779cc56a4cb4e4de8f49d487b1aaad831300fa"
sha256: "34a65f6740df08bbbeb0a1abd8e6d32107941fd4868f67a507b25601651022c9"
url: "https://pub.dev"
source: hosted
version: "0.2.1+1"
version: "0.2.1+2"
image_picker_macos:
dependency: transitive
description:
Expand Down Expand Up @@ -667,10 +667,10 @@ packages:
dependency: transitive
description:
name: package_config
sha256: "92d4488434b520a62570293fbd33bb556c7d49230791c1b4bbd973baf6d2dc67"
sha256: f096c55ebb7deb7e384101542bfba8c52696c1b56fca2eb62827989ef2353bbc
url: "https://pub.dev"
source: hosted
version: "2.1.1"
version: "2.2.0"
path:
dependency: "direct main"
description:
Expand All @@ -691,10 +691,10 @@ packages:
dependency: transitive
description:
name: path_provider_android
sha256: "4adf4fd5423ec60a29506c76581bc05854c55e3a0b72d35bb28d661c9686edf2"
sha256: "0ca7359dad67fd7063cb2892ab0c0737b2daafd807cf1acecd62374c8fae6c12"
url: "https://pub.dev"
source: hosted
version: "2.2.15"
version: "2.2.16"
path_provider_foundation:
dependency: transitive
description:
Expand Down Expand Up @@ -834,18 +834,18 @@ packages:
dependency: "direct main"
description:
name: provider
sha256: c8a055ee5ce3fd98d6fc872478b03823ffdb448699c6ebdbbc71d59b596fd48c
sha256: "489024f942069c2920c844ee18bb3d467c69e48955a4f32d1677f71be103e310"
url: "https://pub.dev"
source: hosted
version: "6.1.2"
version: "6.1.4"
pub_semver:
dependency: transitive
description:
name: pub_semver
sha256: "7b3cfbf654f3edd0c6298ecd5be782ce997ddf0e00531b9464b55245185bbbbd"
sha256: "5bfcf68ca79ef689f8990d1160781b4bad40a3bd5e5218ad4076ddb7f4081585"
url: "https://pub.dev"
source: hosted
version: "2.1.5"
version: "2.2.0"
pubspec_parse:
dependency: transitive
description:
Expand Down Expand Up @@ -1151,10 +1151,10 @@ packages:
dependency: transitive
description:
name: win32
sha256: b89e6e24d1454e149ab20fbb225af58660f0c0bf4475544650700d8e2da54aef
sha256: dc6ecaa00a7c708e5b4d10ee7bec8c270e9276dfcab1783f57e9962d7884305f
url: "https://pub.dev"
source: hosted
version: "5.11.0"
version: "5.12.0"
xdg_directories:
dependency: transitive
description:
Expand Down
Loading
Loading