Files
herolib/lib/osal/ssh_key.v
2024-12-25 08:40:56 +01:00

42 lines
1.0 KiB
V

module osal
import freeflowuniverse.herolib.core.pathlib
import os
@[noinit]
pub struct SSHKey {
pub:
name string
directory string
}
// returns the public ssh key's path of the keypair
pub fn (key SSHKey) public_key_path() !pathlib.Path {
path_str := os.join_path(key.directory, '${key.name}.pub')
return pathlib.get_file(path: path_str) or {
return error('Failed to get public key path: ${err}')
}
}
// returns the private ssh key's path of the keypair
pub fn (key SSHKey) private_key_path() !pathlib.Path {
path_str := os.join_path(key.directory, '${key.name}')
return pathlib.get_file(path: path_str) or {
return error('Failed to get public key path: ${err}')
}
}
// returns the public ssh key of the keypair
pub fn (key SSHKey) public_key() !string {
mut path := key.public_key_path()!
content := path.read()!
return content
}
// returns the private ssh key of the keypair
pub fn (key SSHKey) private_key() !string {
mut path := key.private_key_path()!
content := path.read()!
return content
}