Save an identity with optional secret key.
(
&self,
identity: &Identity,
secret: Option<(&SecretKey, Option<&str>)>,
)
| 423 | |
| 424 | /// Save an identity with optional secret key. |
| 425 | fn save_with_secret( |
| 426 | &self, |
| 427 | identity: &Identity, |
| 428 | secret: Option<(&SecretKey, Option<&str>)>, |
| 429 | ) -> Result<(), IdentityError> { |
| 430 | // Create identity directory |
| 431 | let identity_dir = self.identity_dir(identity); |
| 432 | fs::create_dir_all(&identity_dir)?; |
| 433 | |
| 434 | // Save identity metadata |
| 435 | let has_secret_key = secret.is_some(); |
| 436 | let stored = StoredIdentity::from_identity(identity, has_secret_key); |
| 437 | let identity_path = identity_dir.join(Self::IDENTITY_FILE); |
| 438 | let content = toml::to_string_pretty(&stored)?; |
| 439 | fs::write(&identity_path, content)?; |
| 440 | |
| 441 | // Save secret key if provided |
| 442 | if let Some((secret_key, password)) = secret { |
| 443 | self.save_secret_key(&identity_dir, secret_key, password)?; |
| 444 | } |
| 445 | |
| 446 | Ok(()) |
| 447 | } |
| 448 | |
| 449 | /// Save a secret key (with optional encryption). |
| 450 | fn save_secret_key( |
no test coverage detected