Skip to main content

Crate zerodds_security_permissions

Crate zerodds_security_permissions 

Source
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)

  • PermissionsAccessControlAccessControlPlugin-Implementation.
  • [xml]-Modul — Parser fuer Permissions-XML (<grant><allow_rule><publish>/<subscribe><topic>).
  • [governance]-Modul — Parser fuer Governance-XML (<topic_access_rule> mit enable_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) auf rustls-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§

CmsPkcs7Verifier
Verifier fuer S/MIME-PKCS#7-signierte Permissions/Governance-XML.
DomainFilter
Domain-Filter: Liste von (min, max)-Ranges. Eine einzelne Id wird als min == max gespeichert.
DomainRule
Eine Domain-Regel im Governance-XML.
EdgeIdentityConfig
Edge-Identity-Konfiguration aus <zerodds:edge_identities>.
EnvelopeCheckVerifier
Simple-Envelope-Verifier fuer Tests und Pseudo-Signatur.
Governance
Vollstaendige Governance-Config.
Grant
Ein Grant-Eintrag: pro Subject welche Topics erlaubt sind.
InterfaceBindingRule
Interface-spezifische Regel aus <zerodds:interface_bindings> .
NoOpVerifier
No-op-Verifier fuer Development — akzeptiert jedes Input als gueltig und behandelt es als Klartext-XML. NIE in Produktion einsetzen.
PeerClass
Peer-Klasse aus <zerodds:peer_class> (RC1, Spec: Architektur- Doc §5).
PeerClassMatch
Match-Kriterien einer Peer-Klasse. Alle gesetzten Felder muessen erfuellt sein (UND-Verknuepfung). None/Default-Werte werden ignoriert.
Permissions
Vollstaendige Permissions-Datei.
PermissionsAccessControl
Access-Control-Plugin: erlaubt Topics nur, wenn sie im Permissions- XML fuer den Subject-Name matchen.
TopicRule
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§

EdgeIdentityMode
Edge-Identity-Mode.
PermissionsError
Parse-Fehler.
ProtectionKind
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§

XmlSignatureVerifier
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.example gilt: "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.