Skip to content
Clone
main
26 lines 1.2 KB Rust
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
}