summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLars Wirzenius <liw@sequoia-pgp.org>2021-10-15 15:29:36 +0300
committerLars Wirzenius <liw@sequoia-pgp.org>2021-10-15 15:43:58 +0300
commit8b0506f8b1570b34ccec908ed4fa3797cbe9222f (patch)
treed3f432a6fb9343b9264493e92f6a8d89e32508e3
parent102cb378ea13e972acad02dd0540da71b82ca8dd (diff)
sq: When merging keyrings, produce output in a reproducible order
The output keyring now has keys in fingerprint order. Closes #762
-rw-r--r--sq/src/commands/keyring.rs9
1 files changed, 7 insertions, 2 deletions
diff --git a/sq/src/commands/keyring.rs b/sq/src/commands/keyring.rs
index 81fce15e..fc3d867a 100644
--- a/sq/src/commands/keyring.rs
+++ b/sq/src/commands/keyring.rs
@@ -371,8 +371,13 @@ fn merge(inputs: Option<clap::Values>, output: &mut dyn io::Write)
}
}
- for (_, cert) in certs.iter_mut() {
- cert.take().unwrap().as_tsk().serialize(output)?;
+ let mut fingerprints: Vec<Fingerprint> = certs.keys().cloned().collect();
+ fingerprints.sort();
+
+ for fpr in fingerprints.iter() {
+ if let Some(Some(cert)) = certs.get(fpr) {
+ cert.as_tsk().serialize(output)?;
+ }
}
Ok(())