use crate::error::{GitCryptError, Result};
use crate::git::GitRepo;
use crate::key::KeyManager;
use std::path::Path;
pub fn export_key(output_path: &Path) -> Result<()> {
println!("Exporting key to: {}", output_path.display());
let repo = GitRepo::open(".")?;
let git_dir = repo.git_dir();
let key_manager = KeyManager::new(git_dir);
if !key_manager.is_initialized() {
return Err(GitCryptError::NotInitialized);
}
key_manager.export_key(output_path)?;
println!("Key exported successfully!");
println!("\nWARNING: Keep this key file secure!");
println!("Anyone with this key can decrypt your encrypted files.");
Ok(())
}
pub fn import_key(input_path: &Path) -> Result<()> {
println!("Importing key from: {}", input_path.display());
let repo = GitRepo::open(".")?;
let git_dir = repo.git_dir();
let key_manager = KeyManager::new(git_dir);
if !key_manager.is_initialized() {
return Err(GitCryptError::NotInitialized);
}
key_manager.import_key(input_path)?;
println!("Key imported successfully!");
Ok(())
}