summaryrefslogtreecommitdiffstats
path: root/sq/tests/sq-key-generate.rs
diff options
context:
space:
mode:
Diffstat (limited to 'sq/tests/sq-key-generate.rs')
-rw-r--r--sq/tests/sq-key-generate.rs45
1 files changed, 45 insertions, 0 deletions
diff --git a/sq/tests/sq-key-generate.rs b/sq/tests/sq-key-generate.rs
new file mode 100644
index 00000000..89f78648
--- /dev/null
+++ b/sq/tests/sq-key-generate.rs
@@ -0,0 +1,45 @@
+use std::time;
+
+use assert_cmd::Command;
+use tempfile::TempDir;
+
+use sequoia_openpgp as openpgp;
+use openpgp::Result;
+use openpgp::cert::prelude::*;
+use openpgp::parse::Parse;
+use openpgp::policy::StandardPolicy;
+
+mod integration {
+ use super::*;
+
+ const P: &StandardPolicy = &StandardPolicy::new();
+
+ #[test]
+ fn sq_key_generate_creation_time() -> Result<()>
+ {
+ // $ date +'%Y%m%dT%H%M%S%z'; date +'%s'
+ let iso8601 = "20220120T163236+0100";
+ let t = 1642692756;
+
+ let dir = TempDir::new()?;
+ let key_pgp = dir.path().join("key.pgp");
+
+ // Build up the command line.
+ let mut cmd = Command::cargo_bin("sq")?;
+ cmd.args(["key", "generate",
+ "--creation-time", iso8601,
+ "--expires", "never",
+ "--export", &*key_pgp.to_string_lossy()]);
+
+ cmd.assert().success();
+
+ let result = Cert::from_file(key_pgp)?;
+ let vc = result.with_policy(P, None)?;
+
+ assert_eq!(vc.primary_key().creation_time(),
+ time::UNIX_EPOCH + time::Duration::new(t, 0));
+ assert!(vc.primary_key().key_expiration_time().is_none());
+
+ Ok(())
+ }
+}