[pmg-devel] [PATCH acme-rs 2/8] add meta fields returned by the directory
Folke Gleumes
f.gleumes at proxmox.com
Tue Nov 14 15:14:01 CET 2023
According to the rfc, the meta field contains additional fields that
weren't covered by the Meta struct. Of the additional fields, only
external_account_required will be used in the near future, but others
were added for completeness and the case that they might be used in the
future.
Signed-off-by: Folke Gleumes <f.gleumes at proxmox.com>
---
src/directory.rs | 25 +++++++++++++++++++++++--
1 file changed, 23 insertions(+), 2 deletions(-)
diff --git a/src/directory.rs b/src/directory.rs
index 755ea8c..a9d31f2 100644
--- a/src/directory.rs
+++ b/src/directory.rs
@@ -47,6 +47,18 @@ pub struct Meta {
/// The terms of service. This is typically in the form of an URL.
#[serde(skip_serializing_if = "Option::is_none")]
pub terms_of_service: Option<String>,
+
+ /// Flag indicating if EAB is required, None is equivalent to false
+ #[serde(skip_serializing_if = "Option::is_none")]
+ pub external_account_required: Option<bool>,
+
+ /// Website with information about the ACME Server
+ #[serde(skip_serializing_if = "Option::is_none")]
+ pub website: Option<String>,
+
+ /// List of hostnames used by the CA, intended for the use with caa dns records
+ #[serde(skip_serializing_if = "Option::is_none")]
+ pub caa_identities: Option<Vec<String>>,
}
impl Directory {
@@ -64,6 +76,17 @@ impl Directory {
}
}
+ /// Get if external account binding is required
+ pub fn external_account_binding_required(&self) -> bool {
+ matches!(
+ &self.data.meta,
+ Some(Meta {
+ external_account_required: Some(true),
+ ..
+ })
+ )
+ }
+
/// Get the "newNonce" URL. Use `HEAD` requests on this to get a new nonce.
pub fn new_nonce_url(&self) -> &str {
&self.data.new_nonce
@@ -78,8 +101,6 @@ impl Directory {
}
/// Access to the in the Acme spec defined metadata structure.
- /// Currently only contains the ToS URL already exposed via the `terms_of_service_url()`
- /// method.
pub fn meta(&self) -> Option<&Meta> {
self.data.meta.as_ref()
}
--
2.39.2
More information about the pmg-devel
mailing list