pub struct EstLabelConfig {Show 13 fields
pub name: String,
pub ca_id: Option<String>,
pub ca_pool: Vec<String>,
pub auth_methods: Vec<EstAuthMethod>,
pub csr_attributes: Vec<String>,
pub csr_template: Option<CsrTemplate>,
pub require_cn_match: bool,
pub require_san_match: bool,
pub permitted_dns_names: Vec<String>,
pub permitted_ip_addresses: Vec<String>,
pub permitted_emails: Vec<String>,
pub max_validity_days: Option<u32>,
pub disconnected: Option<bool>,
}Expand description
[[est.label]] — per-label enrollment profile.
Each label provides an independent enrollment namespace with its own CA routing, authentication requirements, and CSR attribute set.
[[est.label]]
name = "devices"
ca_id = "device-ca"
auth_methods = ["mtls", "otp"]
require_cn_match = trueFields§
§name: StringLabel name used in the URL path.
Must be a non-empty string matching ^[a-z0-9][a-z0-9_-]*$.
ca_id: Option<String>CA identifier to use for enrollments under this label.
Must reference a [[ca]] entry by its id field.
When absent, the default CA is used.
ca_pool: Vec<String>Explicit authorization for alternate issuers under this label.
auth_methods: Vec<EstAuthMethod>Allowed authentication methods for this label.
When empty, all globally-enabled auth methods are accepted.
csr_attributes: Vec<String>Per-label CSR attribute hints (overrides global csr_attributes
for this label).
csr_template: Option<CsrTemplate>Per-label CSR template (overrides global csr_template for this label).
require_cn_match: boolRequire that the CSR Common Name matches the authenticated identity.
When true, the server rejects CSRs where the CN does not match
the client’s authenticated principal name. NIAP CA PP FDP_ACF.1
identity binding — enforced in crate::auth::enroll_authz.
require_san_match: boolRequire the authenticated identity to appear as a Subject Alternative Name entry (dNSName, rfc822Name, or iPAddress, matched by type).
NIAP CA PP FDP_ACF.1 identity binding. Complements
require_cn_match; both may be set. Default: false.
permitted_dns_names: Vec<String>Name-authorization allowlist of permitted dNSName patterns (RFC 6125, wildcards allowed). When non-empty, every dNSName SAN in the CSR must match one entry, bounding this label to a fixed namespace.
permitted_ip_addresses: Vec<String>Name-authorization allowlist of permitted iPAddress SANs (textual
form, e.g. "10.0.0.1" or "2001:db8::1"). When non-empty, every
iPAddress SAN in the CSR must equal one entry.
permitted_emails: Vec<String>Name-authorization allowlist of permitted rfc822Name patterns (full address or bare domain). When non-empty, every rfc822Name SAN in the CSR must match one entry.
max_validity_days: Option<u32>Maximum validity period (days) for certificates issued under this label.
Overrides the CA’s default validity_days for this label.
disconnected: Option<bool>Enable disconnected mode for this specific label.
Overrides the global [est].disconnected setting.
Trait Implementations§
Source§impl Clone for EstLabelConfig
impl Clone for EstLabelConfig
Source§fn clone(&self) -> EstLabelConfig
fn clone(&self) -> EstLabelConfig
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for EstLabelConfig
impl Debug for EstLabelConfig
Source§impl<'de> Deserialize<'de> for EstLabelConfig
impl<'de> Deserialize<'de> for EstLabelConfig
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Auto Trait Implementations§
impl Freeze for EstLabelConfig
impl RefUnwindSafe for EstLabelConfig
impl Send for EstLabelConfig
impl Sync for EstLabelConfig
impl Unpin for EstLabelConfig
impl UnsafeUnpin for EstLabelConfig
impl UnwindSafe for EstLabelConfig
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more