pub struct PkiAuthenticationPlugin { /* private fields */ }Expand description
PKI/X.509-basierter AuthenticationPlugin. Verifiziert Identity-
Certs gegen einen vorgegebenen Trust-Anchor und fuehrt einen
3-Round PKI-DH-Handshake (Spec §10.3.2.6-8 Tab.56/57/58) zum Peer.
Wire (C3.1): drei DataHolder-Tokens
DDS:Auth:PKI-DH:1.2+AuthReq / +AuthReply / +AuthFinal. Beide
Seiten echo’n cert_der + dh* + challenge* + Hash-Bindings.
Replier signiert (kagree || ch1 || dh1 || ch2 || dh2) mit
Identity-Private-Key; Initiator signiert (kagree || ch2 || dh2 ||
ch1 || dh1).
Implementations§
Source§impl PkiAuthenticationPlugin
impl PkiAuthenticationPlugin
Sourcepub fn validate_with_config(
&mut self,
cfg: IdentityConfig,
_participant_guid: [u8; 16],
) -> SecurityResult<IdentityHandle>
pub fn validate_with_config( &mut self, cfg: IdentityConfig, _participant_guid: [u8; 16], ) -> SecurityResult<IdentityHandle>
Sourcepub fn secret_bytes(&self, handle: SharedSecretHandle) -> Option<&[u8]>
pub fn secret_bytes(&self, handle: SharedSecretHandle) -> Option<&[u8]>
Liest die rohen 32-byte SharedSecret-Bytes. Primär fuer Tests;
im Produktions-Pfad wird der SharedSecretHandle an den
CryptoPlugin durchgereicht, ohne dass der Caller die Bytes
sieht.
Trait Implementations§
Source§impl AuthenticationPlugin for PkiAuthenticationPlugin
impl AuthenticationPlugin for PkiAuthenticationPlugin
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 PkiAuthenticationPlugin
impl Default for PkiAuthenticationPlugin
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 PkiAuthenticationPlugin
impl RefUnwindSafe for PkiAuthenticationPlugin
impl Send for PkiAuthenticationPlugin
impl Sync for PkiAuthenticationPlugin
impl Unpin for PkiAuthenticationPlugin
impl UnsafeUnpin for PkiAuthenticationPlugin
impl UnwindSafe for PkiAuthenticationPlugin
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