feature/7-add-wasm-api-in-sharenet-passport-for-creating-and-editing-passports #8

Merged
Showing only changes of commit b0097ecb8b - Show all commits

View file

@ -13,7 +13,7 @@ use crate::infrastructure::{
Ed25519KeyDeriver,
XChaCha20FileEncryptor,
};
use crate::domain::entities::{Passport, UserIdentity, UserPreferences, PassportFile, RecoveryPhrase, UserProfile};
use crate::domain::entities::{Passport, UserIdentity, UserPreferences, PassportFile, RecoveryPhrase, UserProfile, Did};
use crate::domain::traits::{MnemonicGenerator, KeyDeriver, FileEncryptor};
/// Create a new passport with the given universe ID and password
@ -114,18 +114,21 @@ pub fn import_from_encrypted_data(
// Decrypt the passport file using the password
let encryptor = XChaCha20FileEncryptor;
let (seed, public_key, private_key, _user_profiles) = encryptor.decrypt(
let (seed, public_key, private_key, user_profiles) = encryptor.decrypt(
&passport_file,
&password,
).map_err(|e| JsValue::from_str(&format!("Failed to decrypt passport: {}", e)))?;
// Create passport
let passport = Passport::new(
// Create passport with decrypted user profiles instead of creating a new default one
let did = Did::new(&public_key);
let passport = Passport {
seed,
public_key,
private_key,
passport_file.univ_id,
);
did,
univ_id: passport_file.univ_id,
user_profiles,
};
let result = serde_wasm_bindgen::to_value(&passport)
.map_err(|e| JsValue::from_str(&format!("Serialization error: {}", e)))?;