Page Menu
Home
Phabricator
Search
Configure Global Search
Log In
Files
F2774606
D11861.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
14 KB
Referenced Files
None
Subscribers
None
D11861.diff
View Options
diff --git a/native/native_rust_library/src/identity.rs b/native/native_rust_library/src/identity.rs
--- a/native/native_rust_library/src/identity.rs
+++ b/native/native_rust_library/src/identity.rs
@@ -52,9 +52,7 @@
pub access_token: String,
}
-pub struct PasswordUserInfo {
- pub username: String,
- pub password: String,
+pub struct DeviceKeys {
pub key_payload: String,
pub key_payload_signature: String,
pub content_prekey: String,
@@ -63,21 +61,52 @@
pub notif_prekey_signature: String,
pub content_one_time_keys: Vec<String>,
pub notif_one_time_keys: Vec<String>,
+}
+
+pub struct LogInPasswordUserInfo {
+ pub username: String,
+ pub password: String,
+ pub device_keys: DeviceKeys,
+}
+
+pub struct RegisterPasswordUserInfo {
+ pub username: String,
+ pub password: String,
+ pub device_keys: DeviceKeys,
pub farcaster_id: Option<String>,
+ pub initial_device_list: String,
}
-pub struct WalletUserInfo {
+pub struct RegisterReservedPasswordUserInfo {
+ pub username: String,
+ pub password: String,
+ pub device_keys: DeviceKeys,
+ pub keyserver_message: String,
+ pub keyserver_signature: String,
+ pub initial_device_list: String,
+}
+
+pub struct LogInWalletUserInfo {
pub siwe_message: String,
pub siwe_signature: String,
- pub key_payload: String,
- pub key_payload_signature: String,
- pub content_prekey: String,
- pub content_prekey_signature: String,
- pub notif_prekey: String,
- pub notif_prekey_signature: String,
- pub content_one_time_keys: Vec<String>,
- pub notif_one_time_keys: Vec<String>,
+ pub device_keys: DeviceKeys,
+}
+
+pub struct RegisterWalletUserInfo {
+ pub siwe_message: String,
+ pub siwe_signature: String,
+ pub device_keys: DeviceKeys,
pub farcaster_id: Option<String>,
+ pub initial_device_list: String,
+}
+
+pub struct RegisterReservedWalletUserInfo {
+ pub siwe_message: String,
+ pub siwe_signature: String,
+ pub device_keys: DeviceKeys,
+ pub keyserver_message: String,
+ pub keyserver_signature: String,
+ pub initial_device_list: String,
}
#[derive(Serialize)]
diff --git a/native/native_rust_library/src/identity/login.rs b/native/native_rust_library/src/identity/login.rs
--- a/native/native_rust_library/src/identity/login.rs
+++ b/native/native_rust_library/src/identity/login.rs
@@ -9,11 +9,17 @@
};
use tracing::instrument;
-use super::{PasswordUserInfo, UserIDAndDeviceAccessToken, WalletUserInfo};
+use super::{
+ LogInPasswordUserInfo, LogInWalletUserInfo, UserIDAndDeviceAccessToken,
+};
use crate::utils::jsi_callbacks::handle_string_result_as_callback;
use crate::{Error, CODE_VERSION, DEVICE_TYPE, IDENTITY_SOCKET_ADDR, RUNTIME};
pub mod ffi {
+ use crate::identity::{
+ DeviceKeys, LogInPasswordUserInfo, LogInWalletUserInfo,
+ };
+
use super::*;
#[instrument]
@@ -29,18 +35,19 @@
promise_id: u32,
) {
RUNTIME.spawn(async move {
- let password_user_info = PasswordUserInfo {
+ let password_user_info = LogInPasswordUserInfo {
username,
password,
- key_payload,
- key_payload_signature,
- content_prekey,
- content_prekey_signature,
- notif_prekey,
- notif_prekey_signature,
- content_one_time_keys: Vec::new(),
- notif_one_time_keys: Vec::new(),
- farcaster_id: None,
+ device_keys: DeviceKeys {
+ key_payload,
+ key_payload_signature,
+ content_prekey,
+ content_prekey_signature,
+ notif_prekey,
+ notif_prekey_signature,
+ content_one_time_keys: Vec::new(),
+ notif_one_time_keys: Vec::new(),
+ },
};
let result = log_in_password_user_helper(password_user_info).await;
handle_string_result_as_callback(result, promise_id);
@@ -60,18 +67,19 @@
promise_id: u32,
) {
RUNTIME.spawn(async move {
- let wallet_user_info = WalletUserInfo {
+ let wallet_user_info = LogInWalletUserInfo {
siwe_message,
siwe_signature,
- key_payload,
- key_payload_signature,
- content_prekey,
- content_prekey_signature,
- notif_prekey,
- notif_prekey_signature,
- content_one_time_keys: Vec::new(),
- notif_one_time_keys: Vec::new(),
- farcaster_id: None,
+ device_keys: DeviceKeys {
+ key_payload,
+ key_payload_signature,
+ content_prekey,
+ content_prekey_signature,
+ notif_prekey,
+ notif_prekey_signature,
+ content_one_time_keys: Vec::new(),
+ notif_one_time_keys: Vec::new(),
+ },
};
let result = log_in_wallet_user_helper(wallet_user_info).await;
handle_string_result_as_callback(result, promise_id);
@@ -144,7 +152,7 @@
}
async fn log_in_password_user_helper(
- password_user_info: PasswordUserInfo,
+ password_user_info: LogInPasswordUserInfo,
) -> Result<String, Error> {
let mut client_login = Login::new();
let opaque_login_request = client_login
@@ -155,19 +163,25 @@
username: password_user_info.username,
device_key_upload: Some(DeviceKeyUpload {
device_key_info: Some(IdentityKeyInfo {
- payload: password_user_info.key_payload,
- payload_signature: password_user_info.key_payload_signature,
+ payload: password_user_info.device_keys.key_payload,
+ payload_signature: password_user_info.device_keys.key_payload_signature,
}),
content_upload: Some(Prekey {
- prekey: password_user_info.content_prekey,
- prekey_signature: password_user_info.content_prekey_signature,
+ prekey: password_user_info.device_keys.content_prekey,
+ prekey_signature: password_user_info
+ .device_keys
+ .content_prekey_signature,
}),
notif_upload: Some(Prekey {
- prekey: password_user_info.notif_prekey,
- prekey_signature: password_user_info.notif_prekey_signature,
+ prekey: password_user_info.device_keys.notif_prekey,
+ prekey_signature: password_user_info.device_keys.notif_prekey_signature,
}),
- one_time_content_prekeys: password_user_info.content_one_time_keys,
- one_time_notif_prekeys: password_user_info.notif_one_time_keys,
+ one_time_content_prekeys: password_user_info
+ .device_keys
+ .content_one_time_keys,
+ one_time_notif_prekeys: password_user_info
+ .device_keys
+ .notif_one_time_keys,
device_type: DEVICE_TYPE.into(),
}),
force: None,
@@ -205,26 +219,28 @@
}
async fn log_in_wallet_user_helper(
- wallet_user_info: WalletUserInfo,
+ wallet_user_info: LogInWalletUserInfo,
) -> Result<String, Error> {
let login_request = WalletAuthRequest {
siwe_message: wallet_user_info.siwe_message,
siwe_signature: wallet_user_info.siwe_signature,
device_key_upload: Some(DeviceKeyUpload {
device_key_info: Some(IdentityKeyInfo {
- payload: wallet_user_info.key_payload,
- payload_signature: wallet_user_info.key_payload_signature,
+ payload: wallet_user_info.device_keys.key_payload,
+ payload_signature: wallet_user_info.device_keys.key_payload_signature,
}),
content_upload: Some(Prekey {
- prekey: wallet_user_info.content_prekey,
- prekey_signature: wallet_user_info.content_prekey_signature,
+ prekey: wallet_user_info.device_keys.content_prekey,
+ prekey_signature: wallet_user_info.device_keys.content_prekey_signature,
}),
notif_upload: Some(Prekey {
- prekey: wallet_user_info.notif_prekey,
- prekey_signature: wallet_user_info.notif_prekey_signature,
+ prekey: wallet_user_info.device_keys.notif_prekey,
+ prekey_signature: wallet_user_info.device_keys.notif_prekey_signature,
}),
- one_time_content_prekeys: wallet_user_info.content_one_time_keys,
- one_time_notif_prekeys: wallet_user_info.notif_one_time_keys,
+ one_time_content_prekeys: wallet_user_info
+ .device_keys
+ .content_one_time_keys,
+ one_time_notif_prekeys: wallet_user_info.device_keys.notif_one_time_keys,
device_type: DEVICE_TYPE.into(),
}),
farcaster_id: None,
diff --git a/native/native_rust_library/src/identity/registration.rs b/native/native_rust_library/src/identity/registration.rs
--- a/native/native_rust_library/src/identity/registration.rs
+++ b/native/native_rust_library/src/identity/registration.rs
@@ -13,11 +13,15 @@
use tracing::instrument;
use super::{
- farcaster::farcaster_id_string_to_option, PasswordUserInfo,
- UserIDAndDeviceAccessToken, WalletUserInfo,
+ farcaster::farcaster_id_string_to_option, RegisterPasswordUserInfo,
+ RegisterWalletUserInfo, UserIDAndDeviceAccessToken,
};
pub mod ffi {
+ use crate::identity::{
+ DeviceKeys, RegisterPasswordUserInfo, RegisterWalletUserInfo,
+ };
+
use super::*;
#[instrument]
@@ -37,22 +41,23 @@
promise_id: u32,
) {
RUNTIME.spawn(async move {
- let password_user_info = PasswordUserInfo {
+ let password_user_info = RegisterPasswordUserInfo {
username,
password,
- key_payload,
- key_payload_signature,
- content_prekey,
- content_prekey_signature,
- notif_prekey,
- notif_prekey_signature,
- content_one_time_keys,
- notif_one_time_keys,
+ device_keys: DeviceKeys {
+ key_payload,
+ key_payload_signature,
+ content_prekey,
+ content_prekey_signature,
+ notif_prekey,
+ notif_prekey_signature,
+ content_one_time_keys,
+ notif_one_time_keys,
+ },
farcaster_id: farcaster_id_string_to_option(&farcaster_id),
+ initial_device_list,
};
- let result =
- register_password_user_helper(password_user_info, initial_device_list)
- .await;
+ let result = register_password_user_helper(password_user_info).await;
handle_string_result_as_callback(result, promise_id);
});
}
@@ -74,30 +79,30 @@
promise_id: u32,
) {
RUNTIME.spawn(async move {
- let wallet_user_info = WalletUserInfo {
+ let wallet_user_info = RegisterWalletUserInfo {
siwe_message,
siwe_signature,
- key_payload,
- key_payload_signature,
- content_prekey,
- content_prekey_signature,
- notif_prekey,
- notif_prekey_signature,
- content_one_time_keys,
- notif_one_time_keys,
+ device_keys: DeviceKeys {
+ key_payload,
+ key_payload_signature,
+ content_prekey,
+ content_prekey_signature,
+ notif_prekey,
+ notif_prekey_signature,
+ content_one_time_keys,
+ notif_one_time_keys,
+ },
farcaster_id: farcaster_id_string_to_option(&farcaster_id),
+ initial_device_list,
};
- let result =
- register_wallet_user_helper(wallet_user_info, initial_device_list)
- .await;
+ let result = register_wallet_user_helper(wallet_user_info).await;
handle_string_result_as_callback(result, promise_id);
});
}
}
async fn register_password_user_helper(
- password_user_info: PasswordUserInfo,
- initial_device_list: String,
+ password_user_info: RegisterPasswordUserInfo,
) -> Result<String, Error> {
let mut client_registration = Registration::new();
let opaque_registration_request = client_registration
@@ -108,23 +113,29 @@
username: password_user_info.username,
device_key_upload: Some(DeviceKeyUpload {
device_key_info: Some(IdentityKeyInfo {
- payload: password_user_info.key_payload,
- payload_signature: password_user_info.key_payload_signature,
+ payload: password_user_info.device_keys.key_payload,
+ payload_signature: password_user_info.device_keys.key_payload_signature,
}),
content_upload: Some(Prekey {
- prekey: password_user_info.content_prekey,
- prekey_signature: password_user_info.content_prekey_signature,
+ prekey: password_user_info.device_keys.content_prekey,
+ prekey_signature: password_user_info
+ .device_keys
+ .content_prekey_signature,
}),
notif_upload: Some(Prekey {
- prekey: password_user_info.notif_prekey,
- prekey_signature: password_user_info.notif_prekey_signature,
+ prekey: password_user_info.device_keys.notif_prekey,
+ prekey_signature: password_user_info.device_keys.notif_prekey_signature,
}),
- one_time_content_prekeys: password_user_info.content_one_time_keys,
- one_time_notif_prekeys: password_user_info.notif_one_time_keys,
+ one_time_content_prekeys: password_user_info
+ .device_keys
+ .content_one_time_keys,
+ one_time_notif_prekeys: password_user_info
+ .device_keys
+ .notif_one_time_keys,
device_type: DEVICE_TYPE.into(),
}),
farcaster_id: password_user_info.farcaster_id,
- initial_device_list,
+ initial_device_list: password_user_info.initial_device_list,
};
let mut identity_client = get_unauthenticated_client(
@@ -161,31 +172,32 @@
}
async fn register_wallet_user_helper(
- wallet_user_info: WalletUserInfo,
- initial_device_list: String,
+ wallet_user_info: RegisterWalletUserInfo,
) -> Result<String, Error> {
let registration_request = WalletAuthRequest {
siwe_message: wallet_user_info.siwe_message,
siwe_signature: wallet_user_info.siwe_signature,
device_key_upload: Some(DeviceKeyUpload {
device_key_info: Some(IdentityKeyInfo {
- payload: wallet_user_info.key_payload,
- payload_signature: wallet_user_info.key_payload_signature,
+ payload: wallet_user_info.device_keys.key_payload,
+ payload_signature: wallet_user_info.device_keys.key_payload_signature,
}),
content_upload: Some(Prekey {
- prekey: wallet_user_info.content_prekey,
- prekey_signature: wallet_user_info.content_prekey_signature,
+ prekey: wallet_user_info.device_keys.content_prekey,
+ prekey_signature: wallet_user_info.device_keys.content_prekey_signature,
}),
notif_upload: Some(Prekey {
- prekey: wallet_user_info.notif_prekey,
- prekey_signature: wallet_user_info.notif_prekey_signature,
+ prekey: wallet_user_info.device_keys.notif_prekey,
+ prekey_signature: wallet_user_info.device_keys.notif_prekey_signature,
}),
- one_time_content_prekeys: wallet_user_info.content_one_time_keys,
- one_time_notif_prekeys: wallet_user_info.notif_one_time_keys,
+ one_time_content_prekeys: wallet_user_info
+ .device_keys
+ .content_one_time_keys,
+ one_time_notif_prekeys: wallet_user_info.device_keys.notif_one_time_keys,
device_type: DEVICE_TYPE.into(),
}),
farcaster_id: wallet_user_info.farcaster_id,
- initial_device_list,
+ initial_device_list: wallet_user_info.initial_device_list,
};
let mut identity_client = get_unauthenticated_client(
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Sat, Sep 21, 3:43 AM (9 h, 28 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
2157135
Default Alt Text
D11861.diff (14 KB)
Attached To
Mode
D11861: [native_rust_library] refactor helper structs to avoid duplication
Attached
Detach File
Event Timeline
Log In to Comment