File size: 1,082 Bytes
3d7d9b5 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct CredentialEntry {
pub id: String,
pub domain: String,
pub username: String,
pub vault_key: String,
pub label: String,
}
/// Credentials are managed via frontend Stronghold JS API + SQLite metadata index.
/// Rust side provides helper commands for the metadata layer.
#[tauri::command]
pub fn credentials_list() -> Result<Vec<CredentialEntry>, String> {
// Credentials stored via frontend Stronghold + SQL plugin
Ok(vec![])
}
#[tauri::command]
pub fn credentials_generate_password(length: u32) -> String {
let charset: Vec<char> = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%&*-_=+".chars().collect();
let len = length.max(8).min(64) as usize;
let mut password = String::with_capacity(len);
for i in 0..len {
let seed = (chrono::Utc::now().timestamp_subsec_nanos() as usize).wrapping_mul(7 + i * 13);
password.push(charset[seed % charset.len()]);
}
password
}
|