Expand description
Crate zerodds-security-permissions. Safety classification: SAFE (reiner XML-Parser + Topic-Match; Signatur-Validierung delegiert an [cms]-Modul, das rustls-webpki nutzt).
Permissions/Governance-XML-Parser + AccessControlPlugin-Implementation
fuer DDS-Security 1.1 §9.4 (“Builtin Access Control Plugin”).
§Schichten-Position
Layer 4 — Core Services. Konsumiert zerodds-security (SPI).
§Public API (Stand 1.0.0-rc.1)
PermissionsAccessControl—AccessControlPlugin-Implementation.- [
xml]-Modul — Parser fuer Permissions-XML (<grant>→<allow_rule>→<publish>/<subscribe>→<topic>). - [
governance]-Modul — Parser fuer Governance-XML (<topic_access_rule>mitenable_discovery_protection/enable_liveliness_protection/metadata_protection_kind/data_protection_kind). - [
signature]-Modul —XmlSignatureVerifier-Trait +NoOpVerifier(Dev) +EnvelopeCheckVerifier+open_signed_permissions. - [
cms]-Modul — produktiver CMS/PKCS#7-Verifier (RFC 5751/5652/5280) aufrustls-webpki-Basis. topic_match-Modul — Wildcard-Match*/?.delegation_check-Modul — Permissions-Delegation-Chain (Sub-CA-Validation).psk_access-Modul — Pre-Shared-Key-Access-Control fuer Out-of-Band-Setups.
Re-exports§
pub use delegation_check::DelegationCheckError;pub use delegation_check::DelegationCheckResult;pub use delegation_check::DelegationProfile;pub use delegation_check::TrustAnchor;pub use delegation_check::TrustPolicy;pub use delegation_check::ValidatedChain;pub use delegation_check::scope_intersect;pub use delegation_check::validate_chain;pub use psk_access::CLASS_ID_PSK_PERMISSIONS;pub use psk_access::PROP_PSK_GOVERNANCE_XML;pub use psk_access::PROP_PSK_PERMISSIONS_ID;pub use psk_access::PROP_PSK_PERMISSIONS_XML;pub use psk_access::PROP_PSK_SUBJECT_NAME;pub use psk_access::PskPermissionsAccessControl;pub use psk_access::PskProfile;
Modules§
- delegation_
check - Delegation-Chain-Validation fuer Permissions-Sub-CAs.
- psk_
access - Builtin Pre-Shared-Key Access-Control-Plugin (Spec §10.8).
Structs§
- CmsPkcs7
Verifier - Verifier fuer S/MIME-PKCS#7-signierte Permissions/Governance-XML.
- Domain
Filter - Domain-Filter: Liste von (min, max)-Ranges. Eine einzelne Id wird
als
min == maxgespeichert. - Domain
Rule - Eine Domain-Regel im Governance-XML.
- Edge
Identity Config - Edge-Identity-Konfiguration aus
<zerodds:edge_identities>. - Envelope
Check Verifier - Simple-Envelope-Verifier fuer Tests und Pseudo-Signatur.
- Governance
- Vollstaendige Governance-Config.
- Grant
- Ein Grant-Eintrag: pro Subject welche Topics erlaubt sind.
- Interface
Binding Rule - Interface-spezifische Regel aus
<zerodds:interface_bindings>. - NoOp
Verifier - No-op-Verifier fuer Development — akzeptiert jedes Input als gueltig und behandelt es als Klartext-XML. NIE in Produktion einsetzen.
- Peer
Class - Peer-Klasse aus
<zerodds:peer_class>(RC1, Spec: Architektur- Doc §5). - Peer
Class Match - Match-Kriterien einer Peer-Klasse. Alle gesetzten Felder muessen
erfuellt sein (UND-Verknuepfung).
None/Default-Werte werden ignoriert. - Permissions
- Vollstaendige Permissions-Datei.
- Permissions
Access Control - Access-Control-Plugin: erlaubt Topics nur, wenn sie im Permissions- XML fuer den Subject-Name matchen.
- Topic
Rule - Regel fuer eine Topic-Klasse (oder Wildcard).
- Validity
- Validity-Periode:
not_before <= now < not_after. Werte sind ISO-8601-Strings aus dem XML; der Parser konvertiert sie zu Unix-Epoch-Seconds (u64). Spec §9.4.1.3.2.2.
Enums§
- Edge
Identity Mode - Edge-Identity-Mode.
- Permissions
Error - Parse-Fehler.
- Protection
Kind - Topic-Protection-Kind (Spec §9.4.1.2 Tabelle 48).
Constants§
- DEFAULT_
EPHEMERAL_ LIFETIME_ SECS - Default-Lifetime fuer Ephemeral-Edge-Identities (Sekunden).
- PROP_
PERMISSIONS_ CA - Property-Key fuer das PEM-CA-Bundle der Permissions-CA. Spec-konform gemaess Tabelle 63 (DDS-Security 1.2).
- ZERODDS_
NS - XML-Namespace-URI fuer ZeroDDS-Extensions in Governance.xml.
Traits§
- XmlSignature
Verifier - Abstraktion fuer den S/MIME-Verify-Schritt.
Functions§
- cn_
pattern_ match - Wildcard-Matcher fuer Cert-CN-Patterns. Einziger Joker ist
*, matcht beliebig viele Zeichen (inkl..). Leeres Pattern matcht nur leere Strings. Fuer*.fast.examplegilt:"w1.fast.example"→true,"fast.example"→false. - open_
signed_ permissions - High-Level-Wrapper: verifiziert Signatur, parst Permissions-XML.
- parse_
governance_ xml - Parst ein Governance-XML-Dokument.
- parse_
permissions_ xml - Parsed ein Permissions-XML-Dokument.
- topic_
match - Glob-Match. Rein iterativ/DP, kein Regex-Engine-Overhead.