pub struct PskAuthenticationPlugin { /* private fields */ }Expand description
Builtin PSK-Authentication-Plugin (Spec §10.7).
Implementations§
Source§impl PskAuthenticationPlugin
impl PskAuthenticationPlugin
Sourcepub fn register_psk(&mut self, id: String, key: Vec<u8>) -> SecurityResult<()>
pub fn register_psk(&mut self, id: String, key: Vec<u8>) -> SecurityResult<()>
Registriert einen Pre-Shared-Key fuer eine Identity. Replace- Semantik: zweite Registrierung mit gleicher ID ueberschreibt.
§Errors
BadArgument wenn id leer oder key leer ist.
Sourcepub fn validate_local_psk_identity(
&mut self,
identity_id: &str,
) -> SecurityResult<IdentityHandle>
pub fn validate_local_psk_identity( &mut self, identity_id: &str, ) -> SecurityResult<IdentityHandle>
Validiert eine lokale PSK-Identity und liefert einen Handle.
§Errors
BadArgument wenn identity_id nicht registriert ist.
Sourcepub fn validate_remote_psk_identity(
&mut self,
remote_token: &[u8],
) -> SecurityResult<IdentityHandle>
pub fn validate_remote_psk_identity( &mut self, remote_token: &[u8], ) -> SecurityResult<IdentityHandle>
Validiert eine Remote-PSK-Identity (aus dem propagierten
IdentityToken). Pruefung: die behauptete psk.id muss in
unserer lokalen PSK-Map vorhanden sein.
§Errors
BadArgument wenn der Token-Format-Fehler hat oder die
psk.id nicht in der lokalen Map ist.
Sourcepub fn build_identity_token(
&self,
local: IdentityHandle,
) -> SecurityResult<Vec<u8>>
pub fn build_identity_token( &self, local: IdentityHandle, ) -> SecurityResult<Vec<u8>>
Erzeugt das Wire-IdentityToken (DDS:Auth:PSK:1.2) fuer eine
lokale Identity.
§Errors
BadArgument wenn der Handle unbekannt ist.
Sourcepub fn secret_bytes(&self, handle: SharedSecretHandle) -> Option<&[u8]>
pub fn secret_bytes(&self, handle: SharedSecretHandle) -> Option<&[u8]>
Liefert das rohe SharedSecret (32 byte) — primaer fuer Tests.
Trait Implementations§
Source§impl AuthenticationPlugin for PskAuthenticationPlugin
impl AuthenticationPlugin for PskAuthenticationPlugin
Source§fn validate_local_identity(
&mut self,
props: &PropertyList,
_participant_guid: [u8; 16],
) -> SecurityResult<IdentityHandle>
fn validate_local_identity( &mut self, props: &PropertyList, _participant_guid: [u8; 16], ) -> SecurityResult<IdentityHandle>
Wird einmal beim Participant-Start aufgerufen: lokale Identity
validieren (Zertifikat, Key, Trust-Anchor) und einen Handle
zurueckgeben. Read more
Source§fn validate_remote_identity(
&mut self,
_local: IdentityHandle,
_remote_participant_guid: [u8; 16],
remote_auth_token: &[u8],
) -> SecurityResult<IdentityHandle>
fn validate_remote_identity( &mut self, _local: IdentityHandle, _remote_participant_guid: [u8; 16], remote_auth_token: &[u8], ) -> SecurityResult<IdentityHandle>
Wird aufgerufen, sobald via SPDP ein Remote-Participant entdeckt
wurde. Plugin validiert das Remote-Cert (aus
remote_auth_token)
gegen seinen Trust-Store. Read moreSource§fn begin_handshake_request(
&mut self,
initiator: IdentityHandle,
_replier: IdentityHandle,
) -> SecurityResult<(HandshakeHandle, HandshakeStepOutcome)>
fn begin_handshake_request( &mut self, initiator: IdentityHandle, _replier: IdentityHandle, ) -> SecurityResult<(HandshakeHandle, HandshakeStepOutcome)>
Startet den Handshake. Liefert das erste Token, das an den
Peer gesendet werden muss. Read more
Source§fn begin_handshake_reply(
&mut self,
replier: IdentityHandle,
_initiator: IdentityHandle,
request_token: &[u8],
) -> SecurityResult<(HandshakeHandle, HandshakeStepOutcome)>
fn begin_handshake_reply( &mut self, replier: IdentityHandle, _initiator: IdentityHandle, request_token: &[u8], ) -> SecurityResult<(HandshakeHandle, HandshakeStepOutcome)>
Peer-Seite des Handshake-Starts.
request_token ist was der
Initiator per begin_handshake_request geschickt hat. Read moreSource§fn process_handshake(
&mut self,
handshake: HandshakeHandle,
token: &[u8],
) -> SecurityResult<HandshakeStepOutcome>
fn process_handshake( &mut self, handshake: HandshakeHandle, token: &[u8], ) -> SecurityResult<HandshakeStepOutcome>
Folge-Nachrichten des Handshakes durchreichen. Read more
Beendet den Handshake und liefert den finalen SharedSecret.
Fehlschlag bricht ab. Wird nach
Complete-Outcome durch den
Caller aufgerufen, um den Secret aus dem Plugin zu ziehen. Read moreSource§fn plugin_class_id(&self) -> &str
fn plugin_class_id(&self) -> &str
Identity-Plugin-Name (z.B. “DDS:Auth:PKI-DH:1.2”). Wird in SPDP als
dds.sec.auth.plugin_class annonciert.Source§fn get_identity_token(
&self,
_local: IdentityHandle,
) -> Result<Vec<u8>, SecurityError>
fn get_identity_token( &self, _local: IdentityHandle, ) -> Result<Vec<u8>, SecurityError>
Liefert das
IdentityToken fuer eine Local-Identity (Spec
§9.3.2.4). Wird im SPDP-Announce als PID_IDENTITY_TOKEN (0x1001)
publiziert. Default: leerer Token (= Plugin unterstuetzt das
Feature nicht). Read moreSource§fn get_identity_status_token(
&self,
_local: IdentityHandle,
) -> Result<Vec<u8>, SecurityError>
fn get_identity_status_token( &self, _local: IdentityHandle, ) -> Result<Vec<u8>, SecurityError>
Liefert das
IdentityStatusToken fuer eine Local-Identity
(Spec §9.3.2.5.1.2). Default: leer. Read moreSource§fn set_permissions_credential_and_token(
&mut self,
_local: IdentityHandle,
_permissions_credential: &[u8],
_permissions_token: &[u8],
) -> Result<(), SecurityError>
fn set_permissions_credential_and_token( &mut self, _local: IdentityHandle, _permissions_credential: &[u8], _permissions_token: &[u8], ) -> Result<(), SecurityError>
Setzt das Permissions-Credential und das Permissions-Token an
einer Local-Identity (Spec §9.3.2.4 + §9.3.2.5.4). Wird vom
Caller-Layer mit dem Output des AccessControlPlugin gespeist. Read more
Source§fn get_authenticated_peer_credential_token(
&self,
_handshake: HandshakeHandle,
) -> Result<Vec<u8>, SecurityError>
fn get_authenticated_peer_credential_token( &self, _handshake: HandshakeHandle, ) -> Result<Vec<u8>, SecurityError>
Liefert das
AuthenticatedPeerCredentialToken (Spec §9.3.2.5.6).
Wird nach erfolgreichem Handshake vom AccessControl-Layer
abgeholt, um den Caller-Subject-Match durchzufuehren.
Default: leer. Read moreSource§impl Default for PskAuthenticationPlugin
impl Default for PskAuthenticationPlugin
Liefert die rohen Bytes des geteilten Schluessels.
None wenn der Handle unbekannt ist (Handshake noch nicht
abgeschlossen oder bereits verworfen).Auto Trait Implementations§
impl !Freeze for PskAuthenticationPlugin
impl RefUnwindSafe for PskAuthenticationPlugin
impl Send for PskAuthenticationPlugin
impl Sync for PskAuthenticationPlugin
impl Unpin for PskAuthenticationPlugin
impl UnsafeUnpin for PskAuthenticationPlugin
impl UnwindSafe for PskAuthenticationPlugin
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
Mutably borrows from an owned value. Read more