summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLars Wirzenius <liw@liw.fi>2022-11-09 10:26:19 +0200
committerLars Wirzenius <liw@liw.fi>2022-11-09 10:26:19 +0200
commit51c4336add802db55e79d6bd5029154aab1e230e (patch)
tree836b203d78f198865ef55c88a6fd4d25bc005f88
parent38cbf4ab4cbc78bceaeedbd331e819dc6f49571c (diff)
downloadsshca-51c4336add802db55e79d6bd5029154aab1e230e.tar.gz
feat: add an optional valid_until field to host information
Sponsored-by: author
-rw-r--r--src/cmd/host.rs3
-rw-r--r--src/info.rs3
-rw-r--r--src/store.rs1
3 files changed, 6 insertions, 1 deletions
diff --git a/src/cmd/host.rs b/src/cmd/host.rs
index d93bb3d..e75b592 100644
--- a/src/cmd/host.rs
+++ b/src/cmd/host.rs
@@ -130,7 +130,7 @@ impl Runnable for New {
} else {
self.principals.to_vec()
};
- let host = info::Host::new(public, None, self.hostname.clone(), principals);
+ let host = info::Host::new(public, None, None, self.hostname.clone(), principals);
store.insert_host(host).map_err(CAError::KeyStoreError)?;
Ok(())
}
@@ -281,6 +281,7 @@ impl Runnable for Generate {
let host = info::Host::new(
pair.public().clone(),
Some(pair.private().clone()),
+ None,
self.hostname.clone(),
principals,
);
diff --git a/src/info.rs b/src/info.rs
index 45fd2f7..f72f369 100644
--- a/src/info.rs
+++ b/src/info.rs
@@ -60,6 +60,7 @@ impl Info for SafeCA {
pub struct Host {
public: PublicKey,
private: Option<PrivateKey>,
+ valid_until: Option<String>,
name: String,
#[serde(default)]
principals: Vec<String>,
@@ -69,12 +70,14 @@ impl Host {
pub fn new(
public: PublicKey,
private: Option<PrivateKey>,
+ valid_until: Option<String>,
name: String,
principals: Vec<String>,
) -> Self {
Self {
public,
private,
+ valid_until,
name,
principals,
}
diff --git a/src/store.rs b/src/store.rs
index f3ed0d7..0ac4ff2 100644
--- a/src/store.rs
+++ b/src/store.rs
@@ -293,6 +293,7 @@ mod test {
Host::new(
PublicKey::new("dummy-public".into()),
Some(PrivateKey::new("dummy-private".into())),
+ None,
"dummy-host".into(),
vec!["dummy-host".into()],
)