use auth::models::users::user_ssh_keys; use auth::protos::auth::common::v1::{SshKeyAlgorithm, SshKeyInfo}; use auth::share::auth_convert::datetime_opt; pub fn ssh_key_info(row: &user_ssh_keys::Model) -> SshKeyInfo { SshKeyInfo { key_id: row.id.to_string(), user_id: row.user_id, name: row.name.clone(), description: row.description.clone().unwrap_or_default(), algorithm: ssh_algorithm_code(row.algorithm.clone()), public_key: row.public_key.clone(), fingerprint: row.fingerprint.clone(), created_at: datetime_opt(Some(row.created_at)), expires_at: datetime_opt(row.expires_at), last_used_at: datetime_opt(row.last_used_at), revoked_at: datetime_opt(row.revoked_at), } } pub fn ssh_algorithm_code(value: auth::models::users::user_ssh_keys::PublicKeyType) -> i32 { let algorithm = match value { auth::models::users::user_ssh_keys::PublicKeyType::RSA => SshKeyAlgorithm::Rsa, auth::models::users::user_ssh_keys::PublicKeyType::ED25519 => SshKeyAlgorithm::Ed25519, auth::models::users::user_ssh_keys::PublicKeyType::ECDSA => SshKeyAlgorithm::Ecdsa, }; algorithm as i32 }