DEENESPTFRRUARHIKOZHNL

class ara::diag::SecurityAccess

[SWS_DM_00761] Upstream: RS_Diag_04005

class SecurityAccess {...};

DiagnosticSecurityAccessInterface.

Header-Datei#include "ara/diag/security_access.h"
Forwarding-Header#include "ara/diag/diag_fwd.h"
Scopenamespace ara::diag

User GuideKI-GENERIERT

Dient der Bereitstellung und Validierung von Seed- und Schlüssel-Werten für diagnostische Sicherheitszugriffe.
KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 1943cee6c64f Herkunft Offene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Dient der Bereitstellung und Validierung von Seed- und Schlüssel-Werten für diagnostische Sicherheitszugriffe.

Die Klasse ara::diag::SecurityAccess dient der anwendungsspezifischen Implementierung diagnostischer Sicherheitszugriffe nach UDS-Dienst 0x27 ([SWS_DM_00762]). Nach der Aktivierung über Offer() empfängt der Handler Aufforderungen zur Seed-Bereitstellung und validiert übermittelte Schlüsselwerte asynchron ([SWS_DM_00766]). Als unkopierbare sowie unverschiebbare Instanz verlangt die Schnittstelle eine explizite Konfiguration des Nebenläufigkeitsverhaltens im Konstruktor, während Verarbeitungsfehler über standardisierte UDS-Rückgabecodes an das Diagnosesystem gemeldet werden ([SWS_DM_00765]).

Kontext

Die Klasse ara::diag::SecurityAccess stellt in AUTOSAR Adaptive die Schnittstelle zur Implementierung des UDS-Dienstes 0x27 (SecurityAccess) dar. Sie fungiert als Bindeglied zwischen dem internen Diagnostic Management (DM) und der anwendungsspezifischen Authentifizierungslogik einer adaptiven Anwendung. Wenn ein externer Diagnosetester eine sicherheitsrelevante Diagnoseoperation anfordert, übermittelt er entsprechende Diagnosenachrichten gemäß ISO 14229-1 an das Fahrzeug (AUTOSAR_AP_SWS_Diagnostics §4.1 „Limitations of sub-functions of 0x19 ReadDTCInformation“). Das Diagnostic Management nimmt diese Anfragen entgegen und leitet die Seed-Anfrage sowie den Schlüsselvergleich an die registrierte Instanz von ara::diag::SecurityAccess weiter ([SWS_DM_00766]).

SecurityAccessKontext client Diagnose-Client dm Diagnostic Management (DM) client->dm UDS-Service 0x27 secacc ara::diag::SecurityAccess dm->secacc Weiterleitung app Adaptive Applikation secacc->app Vererbung / Handler

Kontextdiagramm: Einordnung von ara::diag::SecurityAccess zwischen Diagnosetester, Diagnostic Management und Anwendung. Quellen: [SWS_DM_00762], [SWS_DM_00766], AUTOSAR_AP_SWS_Diagnostics §4.1 „Limitations of sub-functions of 0x19 ReadDTCInformation“

Lebenszyklus

Die Instanziierung erfolgt über den Konstruktor unter Angabe eines ara::core::InstanceSpecifier sowie des Nebenläufigkeitsverhaltens concurrencyType ([SWS_DM_00762]). Der Instanzbezeichner verknüpft das Objekt mit einem Port-Prototyp, der durch ein DiagnosticSecurityLevelInterface typisiert sein muss ([SWS_DM_00762]). Der Parameter concurrencyType legt verbindlich fest, ob die Methodenaufrufe threadsicher (kConcurrent) oder nicht-threadsicher (kNotConcurrent) abgearbeitet werden müssen ([SWS_DM_00762]).

Hinsichtlich der Besitzsemantik ist die Klasse als Einzelexemplar ausgelegt: Sowohl Kopierkonstruktor ([SWS_DM_01617]) und Kopierzuweisungsoperator ([SWS_DM_01615]) als auch Move-Konstruktor ([SWS_DM_01618]) und Move-Zuweisungsoperator ([SWS_DM_01616]) sind gelöscht (=delete). Nach der Erzeugung befindet sich die Instanz in einem inaktiven Zustand, bis sie mittels Offer() beim DM registriert wird ([SWS_DM_00766]). Vor der Beendigung deaktiviert StopOffer() die Weiterleitung von Anfragen ([SWS_DM_00767]). Interpretation: StopOffer() dürfte stets vor der Zerstörung des Objekts durch den virtuellen Destruktor ([SWS_DM_00763]) aufgerufen werden, um eine Deregistrierung laufender Anfragen beim DM sicherzustellen. Frage Q-3bbb715f727e373a (offen)

Nutzungspfad

Der typische Nutzungsablauf einer abgeleiteten Handler-Implementierung umfasst folgende Schritte:

  1. Aktivierung: Die Anwendung instanziiert die abgeleitete Klasse und ruft Offer() auf, um das Weiterleiten von Diagnoseanfragen durch das DM zu aktivieren ([SWS_DM_00766]).
  2. Seed-Bereitstellung: Trifft eine Diagnoseanfrage zur Seed-Erzeugung ein, ruft das DM die Methode GetSeed auf ([SWS_DM_00764]). Die Anwendung verarbeitet den übergebenen securityAccessDataRecord, berücksichtigt den cancellationHandler und gibt den berechneten Seed asynchron über ein ara::core::Future<ara::core::Vector<std::uint8_t>> zurück ([SWS_DM_00764]). Der Puffer des übergebenen Daten-Spans bleibt bis zur Erfüllung des Promises oder bis zum Abbruch gültig ([SWS_DM_00764]).
  3. Schlüsselvalidierung: Sobald der Diagnosetester den berechneten Schlüssel übermittelt, ruft das DM CompareKey auf ([SWS_DM_00765]). Die Anwendung prüft den Parameter key und übermittelt das Ergebnis asynchron über ein ara::core::Future<KeyCompareResultType> ([SWS_DM_00765]).
  4. Deaktivierung: Zum Beenden des Diagnosebetriebs ruft die Anwendung StopOffer() auf ([SWS_DM_00767]).
Ablauf der Sicherheitsauthentifizierung über SecurityAccessAnwendungara::diag::SecurityAccessDiagnostic ManagementUse Case: AktivierungOffer()Dienst registrierenResult<void>Result<void>Use Case: Seed anfordernGetSeed(securityAccessDataRecord, metaInfo, cancellationHandler)Seed generierenFuture<Vector<uint8_t>> (Seed)Use Case: Schlüssel verifizierenCompareKey(key, metaInfo, cancellationHandler)Schlüssel prüfenFuture<KeyCompareResultType>Use Case: DeaktivierungStopOffer()Dienst deregistrieren

Sequenzdiagramm: Interaktionszyklus von der Aktivierung über GetSeed und CompareKey bis zur Deaktivierung. Quellen: [SWS_DM_00764], [SWS_DM_00765], [SWS_DM_00766], [SWS_DM_00767]

Fehlerszenarien

Bei der Verwendung von ara::diag::SecurityAccess sind mehrere Fehlerebenen spezifiziert:

  • Konstruktor- und Modellverletzungen: Kann der InstanceSpecifier im Modell nicht aufgelöst werden oder referenziert er kein PortPrototype, wird eine InstanceSpecifierMappingIntegrityViolation gemeldet ([SWS_DM_00762]). Ist der referenzierte Port nicht durch ein DiagnosticSecurityLevelInterface typisiert, liegt eine PortInterfaceMappingViolation vor ([SWS_DM_00762]). Fehlt der passende modellierte Prozess zur Laufzeit, tritt eine ProcessMappingViolation auf, und bei mehrfacher Verwendung desselben Bezeichners innerhalb des Prozesses wird eine InstanceSpecifierAlreadyInUseViolation ausgelöst ([SWS_DM_00762]).
  • Zustandsfehler beim Angebot: Ein erneuter Aufruf von Offer() bei bereits aktivem Dienstangebot schlägt fehl und liefert den Fehler DiagOfferErrc::kAlreadyOffered mit Rollback-Semantik ([SWS_DM_00766]).
  • Negative UDS-Rückmeldungen: Schlägt die Generierung des Seeds oder die Schlüsselprüfung fehl, muss die Anwendung über DiagUdsNrcErrc einen passenden Negative Response Code (NRC) nach ISO 14229-1 melden ([SWS_DM_00764], [SWS_DM_00765]).
  • Abbruch der Diagnoseverbindung: Über den Parameter cancellationHandler kann die Anwendung mittels IsCanceled() prüfen, ob die Konversation abgebrochen wurde, oder über SetNotifier() eine Benachrichtigungsfunktion für einen Abbruch registrieren ([SWS_DM_00764], [SWS_DM_00765]).
  • Persistierung fehlgeschlagener Versuche: Das Diagnostic Management erfordert nach jedem Fehlversuch zur Sicherheitslevel-Änderung eine persistente Speicherung des Zählers, um Manipulationen oder Resets zu überdauern (AUTOSAR_AP_SWS_Diagnostics §4.1 „Limitations of sub-functions of 0x19 ReadDTCInformation“, [SWS_DM_00479]).

Dieser Leitfaden basiert auf der Spezifikation AUTOSAR Adaptive R25-11 und fasst die Anforderungen an die Klasse ara::diag::SecurityAccess zusammen.

Mitgliederkarte

Konstruktoren und Destruktor

2

Operatoren

1

Klassendiagramm

Hohle Dreieckspfeile = Vererbung (zeigt zur Basisklasse); Klicken öffnet die jeweilige Klassenseite.

G nara__diag__SecurityAccess583 SecurityAccess + SecurityAccess() + operator=() + ~SecurityAccess() + CompareKey() + GetSeed() + Offer() + StopOffer()

Detailansicht

Wähle in der Gliederung einen Eintrag aus.

Konstruktoren und Destruktor

SecurityAccess function 3

Constructor of SecurityAccess.

Überladungen SecurityAccess 3
explicit SecurityAccess (const ara::core::InstanceSpecifier &specifier, ConcurrencyType concurrencyType) noexcept; SWS_DM_00762
SecurityAccess (SecurityAccess &)=delete; SWS_DM_01617
SecurityAccess (SecurityAccess &&) noexcept=delete; SWS_DM_01618

Destructor of SecurityAccess .

virtual ~SecurityAccess () noexcept;

Methoden

CompareKey function

This method is called, when a diagnostic request has been finished, to notify about the outcome.

virtual ara::core::Future< KeyCompareResultType > CompareKey (ara::core::Span< const std::uint8_t > key, const MetaInfo &metaInfo, CancellationHandler cancellationHandler) noexcept=0;
GetSeed function

Called for any request messsage.

virtual ara::core::Future< ara::core::Vector< std::uint8_t > > GetSeed (ara::core::Span< const std::uint8_t > securityAccessDataRecord, const MetaInfo &metaInfo, CancellationHandler cancellationHandler) noexcept=0;
Offer function

This Offer will enable the DM to forward request messages to this handler.

ara::core::Result< void > Offer () noexcept;
StopOffer function

This StopOffer will disable the forwarding of request messages from DM.

void StopOffer () noexcept;

Operatoren

operator= function 2

SecurityAccess shall be a single not assignable instance.

Überladungen = 2

Dokumentation der Methoden

function CompareKey [SWS_DM_00765] Upstream: RS_AP_00138, RS_Diag_04005, RS_Diag_04170, RS_AP_00119

virtual ara::core::Future< KeyCompareResultType > CompareKey (ara::core::Span< const std::uint8_t > key, const MetaInfo &metaInfo, CancellationHandler cancellationHandler) noexcept=0;

This method is called, when a diagnostic request has been finished, to notify about the outcome.

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 7e880a8e2b3a Herkunft
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Verwendung

Die rein virtuelle Methode CompareKey aus der Klasse ara::diag::SecurityAccess [SWS_DM_00765] wird anwendungsseitig implementiert, um den vom Client übermittelten Schlüssel beim UDS-Dienst 0x27 (SecurityAccess) zu validieren SWS Diagnostics §7.3.2.8.9 „Service 0x27 – SecurityAccess“. Zusammen mit GetSeed bildet sie die Grundlage für den statischen Seed-Key-Mechanismus nach ISO 14229-1 [SWS_DM_00863].

Die Parameter der Funktion umfassen:

  • key: Ein ara::core::Span<const std::uint8_t> auf die zu prüfenden Schlüsseldaten. Der Puffer bleibt gültig, bis das zugehörige Promise erfüllt oder die Verarbeitung über den cancellationHandler abgebrochen wird [SWS_DM_00765].
  • metaInfo: Metainformationen der eingehenden Diagnoseanfrage [SWS_DM_00765].
  • cancellationHandler: Ermöglicht die Abfrage eines Abbruchs über cancellationHandler.IsCanceled sowie die Registrierung einer Benachrichtigungsfunktion via cancellationHandler.SetNotifier bei Abbruch der Konversation [SWS_DM_00765].

Das Prüfergebnis wird asynchron über ara::core::Future<KeyCompareResultType> bereitgestellt [SWS_DM_00765].

Fehlerbehandlung und Zusammenspiel

Schlägt der Schlüsselvergleich fehl oder tritt während der Verarbeitung ein Fehler auf, ist über das Future ein passender Negative Response Code (NRC) gemäß ISO 14229-1 mittels DiagUdsNrcErrc zu übergeben [SWS_DM_00765]. Ist die angeforderte Subfunktion für CompareKey nicht konfiguriert, wird die Anfrage mit NRC 0x12 (kSubFunctionNotSupported) beantwortet [SWS_DM_00363]. Der Diagnostic Server zählt fehlgeschlagene Versuche [SWS_DM_00270] und vergleicht diese mit Schwellenwerten [SWS_DM_00271].

Wird der Sicherheitszugriff erfolgreich freigeschaltet, aktualisiert der Server die Sicherheitsstufe intern [SWS_DM_00846], setzt den Fehlversuchszähler zurück [SWS_DM_00270] und meldet das Sicherheitsereignis SEV_UDS_SECURITY_ACCESS_SUCCESSFUL an das IdsM [SWS_DM_02019].

Nebenläufigkeit und Einschränkungen

Die Schnittstelle ist als noexcept deklariert und ausnahmesicher (exception safe) [SWS_DM_00765]. Die Thread-Sicherheit ist bedingt (conditional): Ob die Implementierung threadsicher sein muss, wird über den im Konstruktor von SecurityAccess übergebenen ConcurrencyType festgelegt [SWS_DM_00765].

Dieser Nutzungshinweis wurde von einer KI auf Basis der AUTOSAR-Spezifikation generiert.

Implementer's Guide folgt (Komplexität I2)

Header-Datei#include "ara/diag/security_access.h"
Scopeclass ara::diag::SecurityAccess
Exception-Sicherheitexception safe
Thread-Sicherheitconditional whether the function has to be implemented thread safe or non-thread safe is determined by the ConcurrencyType given in the constructor

Parameter (in)

ParameterBeschreibung
keyThe key to be validated. Lifetime: Valid until Promise is fulfilled or the processing is cancelled by the cancellationHandler.
metaInfoMetaInfo of the request.
cancellationHandlerThis parameter is used to • Query the current cancellation status by calling cancellationHandler.IsCanceled. Returns TRUE in case, the current conversation has been cancelled and FALSE otherwise. • Register a notifier function by calling cancellationHandler.SetNotifier. The registered notifier is called if the current conversation is cancelled.

Rückgabewert

TypBeschreibung
ara::core::Future< KeyCompareResultType >Result of the key validation.

Fehler

FehlercodeBeschreibung
Please use an applicable NRC, as defined in ISO 14229-1, using DiagUdsNrcErrc.

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_DM_00765
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_00765@rel:R25-11#d4d3823f
Content hash
d4d3823f
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_00765
Status: valid/unmigrated Version: rel:R25-11#fcff65aa Versionshistorie & Revisions (1 transition, 8 revision)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/SWS_DM_00765@rel:R25-11#fcff65aa
Point-in-Time History:
Recorded Revisions (8):
  • R25-11rel:R25-11#d4d3823f2026-09-30
  • R19-11rel:R19-11#4bf18d9e2026-10-14
  • R20-11rel:R20-11#52ff58612026-10-14
  • R21-11rel:R21-11#42d7f4462026-10-14
  • R22-11rel:R22-11#94736e912026-10-14
  • R23-11rel:R23-11#cbc123ea2026-10-14
  • R24-11rel:R24-11#e09a76d52026-10-14
  • R25-11rel:R25-11#fcff65aa2026-10-14 active
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill

function GetSeed [SWS_DM_00764] Upstream: RS_AP_00138, RS_Diag_04005, RS_Diag_04170, RS_AP_00119

virtual ara::core::Future< ara::core::Vector< std::uint8_t > > GetSeed (ara::core::Span< const std::uint8_t > securityAccessDataRecord, const MetaInfo &metaInfo, CancellationHandler cancellationHandler) noexcept=0;

Called for any request messsage.

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: d92bef6dc534 Herkunft
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Verwendung

Die rein virtuelle Methode ara::diag::SecurityAccess::GetSeed wird von der Diagnose-Server-Instanz aufgerufen, sobald eine UDS-Anfrage für den Dienst 0x27 SecurityAccess empfangen wird und der übermittelte Subfunktionswert mit der konfigurierten requestSeedId übereinstimmt [SWS_DM_00863]. Dies ist Bestandteil der standardkonformen Realisierung des Dienstes 0x27 gemäß ISO 14229-1 [SWS_DM_00236].

Der Aufruf übergibt die vom Diagnose-Client bereitgestellten Nutzdaten über den Parameter securityAccessDataRecord (als ara::core::Span), die Kontextinformationen in metaInfo sowie ein Objekt vom Typ CancellationHandler [SWS_DM_00764]. Hat der Client keine Daten gesendet, wird der Daten-Span leer übergeben [SWS_DM_00863]. Die übergebenen Daten bleiben gültig, bis das zugehörige Promise erfüllt oder die Verarbeitung abgebrochen wird [SWS_DM_00764].

Asynchrone Semantik und Nebenläufigkeit

Die Funktion liefert asynchron ein ara::core::Future<ara::core::Vector<std::uint8_t>> zurück, welches den generierten Seed enthält [SWS_DM_00764]. Über den cancellationHandler kann die Applikation mittels IsCanceled prüfen, ob die Konversation abgebrochen wurde, oder via SetNotifier eine Benachrichtigung registrieren [SWS_DM_00764]. Auch ein statischer Seed-Mechanismus gemäß ISO 14229-1 muss applikationsseitig in GetSeed implementiert werden SWS Diagnostics §7.3.2.8.9 „Service 0x27 – SecurityAccess“.

Hinsichtlich der Nebenläufigkeit ist die Methode bedingt thread-sicher: Ob die Implementierung thread-sicher sein muss, wird über den ConcurrencyType festgelegt, der dem Konstruktor von SecurityAccess übergeben wird SWS Diagnostics §8.24.2.1.3.2 „GetSeed“.

Fehlerbehandlung

Kann kein gültiger Seed ermittelt werden, ist das Future mit einem passenden Negative Response Code (NRC) gemäß ISO 14229-1 über DiagUdsNrcErrc abzuschließen [SWS_DM_00764]. Die Schnittstelle ist als noexcept deklariert und ausnahmesicher [SWS_DM_00764].

Dieser Nutzungshinweis wurde durch eine KI auf Basis der AUTOSAR-Spezifikation R25-11 erstellt.

Implementer's Guide folgt (Komplexität I2)

Header-Datei#include "ara/diag/security_access.h"
Scopeclass ara::diag::SecurityAccess
Exception-Sicherheitexception safe
Thread-Sicherheitconditional whether the function has to be implemented thread safe or non-thread safe is determined by the ConcurrencyType given in the constructor

Parameter (in)

ParameterBeschreibung
securityAccessDataRecordSecurity Access payload, Lifetime: Valid until Promise is fulfilled or the processing is cancelled by the cancellationHandler.
metaInfoMetaInfo of the request.
cancellationHandlerThis parameter is used to • Query the current cancellation status by calling cancellationHandler.IsCanceled. Returns TRUE in case, the current conversation has been cancelled and FALSE otherwise. • Register a notifier function by calling cancellationHandler.SetNotifier. The registered notifier is called if the current conversation is cancelled.

Rückgabewert

TypBeschreibung
ara::core::Future<ara::core::Vector<std::uint8_t > >provided seed

Fehler

FehlercodeBeschreibung
Please use an applicable NRC, as defined in ISO 14229-1, using DiagUdsNrcErrc.

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_DM_00764
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_00764@rel:R25-11#2e6ffe50
Content hash
2e6ffe50
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_00764
Status: valid/unmigrated Version: rel:R25-11#78b36e49 Versionshistorie & Revisions (1 transition, 8 revision)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/SWS_DM_00764@rel:R25-11#78b36e49
Point-in-Time History:
Recorded Revisions (8):
  • R25-11rel:R25-11#2e6ffe502026-09-30
  • R19-11rel:R19-11#ec261d632026-10-14
  • R20-11rel:R20-11#d20d81e72026-10-14
  • R21-11rel:R21-11#9f3e5c3f2026-10-14
  • R22-11rel:R22-11#b2714bed2026-10-14
  • R23-11rel:R23-11#cb771e7d2026-10-14
  • R24-11rel:R24-11#e4519bf42026-10-14
  • R25-11rel:R25-11#78b36e492026-10-14 active
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill

function Offer [SWS_DM_00766] Upstream: RS_AP_00139, RS_Diag_04005, RS_AP_00119

ara::core::Result< void > Offer () noexcept;

This Offer will enable the DM to forward request messages to this handler.

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 03e774f47039 Herkunft Offene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Verwendung

Die Methode ara::diag::SecurityAccess::Offer ([SWS_DM_00766]) aus dem Header ara/diag/security_access.h ermöglicht es dem Diagnostic Manager (DM), eingehende Anfrage-Nachrichten (Request Messages) an den registrierten Handler für den Sicherheitszugriff weiterzuleiten. Der Aufruf erfolgt synchron ohne Übergabeparameter und liefert ein ara::core::Result<void> zurück.

Fehlerbehandlung

Im Fehlerfall liefert das Rückgabeobjekt einen Fehlercode. Ist der Dienst auf der Instanz bereits registriert, wird DiagOfferErrc::kAlreadyOffered zurückgegeben ([SWS_DM_00766]). Die Funktion ist als noexcept deklariert und garantiert Ausnahme-Sicherheit (exception safe).

Nebenläufigkeit und Einschränkungen

Die Schnittstelle ist als nicht threadsicher (not thread-safe) spezifiziert ([SWS_DM_00766]). Konkurrierende Aufrufe auf derselben Instanz müssen durch die Anwendung synchronisiert werden. Interpretation: Mehrfache unkoordinierte Aufrufe dürften ohne vorheriges Zurücknehmen des Angebots stets mit kAlreadyOffered abgewiesen werden. Frage Q-848ccd3c78403eea (offen)

Zusammenspiel

Das Anbieten von Funktionalität über Offer folgt dem einheitlichen Aktivierungsmuster der AUTOSAR-Adaptive-Diagnose, wie es auch für ServiceValidation ([SWS_DM_00776]) oder DoIPGroupIdentification ([SWS_DM_00725]) definiert ist. Trotz Namensgleichheit mit Kommunikationsschnittstellen handelt es sich um eine diagnosespezifische Implementierung, die nicht mit ara::com vermischt werden darf (SWS Diagnostics §7.3.4.1.2 „Monitors“).

Dieser Text wurde von einer KI auf Basis der Spezifikation AUTOSAR R25-11 generiert.

Implementer's Guide folgt (Komplexität I1)

Header-Datei#include "ara/diag/security_access.h"
Scopeclass ara::diag::SecurityAccess
Exception-Sicherheitexception safe
Thread-Sicherheitnot thread-safe

Rückgabewert

TypBeschreibung
ara::core::Result< void >Returns nothing or an error.

Fehler

FehlercodeBeschreibung
DiagOfferErrc::kAlreadyOfferedrollback_semantics The service is already offered.

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_DM_00766
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_00766@rel:R25-11#56ad395b
Content hash
56ad395b
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_00766
Status: valid/unmigrated Version: rel:R25-11#00210900 Versionshistorie & Revisions (1 transition, 8 revision)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/SWS_DM_00766@rel:R25-11#00210900
Point-in-Time History:
Recorded Revisions (8):
  • R25-11rel:R25-11#56ad395b2026-09-30
  • R19-11rel:R19-11#d015c3bb2026-10-14
  • R20-11rel:R20-11#5653979a2026-10-14
  • R21-11rel:R21-11#d5a352932026-10-14
  • R22-11rel:R22-11#4dd706ea2026-10-14
  • R23-11rel:R23-11#898492102026-10-14
  • R24-11rel:R24-11#6e0b7b5e2026-10-14
  • R25-11rel:R25-11#002109002026-10-14 active
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill

function SecurityAccess [SWS_DM_00762] Upstream: RS_AP_00137, RS_Diag_04005, RS_AP_00170, RS_AP_00171, RS_AP_00172, RS_AP_00173

explicit SecurityAccess (const ara::core::InstanceSpecifier &specifier, ConcurrencyType concurrencyType) noexcept;

Constructor of SecurityAccess.

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 6e8a7c45e17d Herkunft Offene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Verwendung

Der explizite Konstruktor initialisiert eine Instanz von ara::diag::SecurityAccess synchron und ausnahmesicher ([SWS_DM_00762]). Er nimmt als Parameter eine Referenz auf einen ara::core::InstanceSpecifier sowie einen ConcurrencyType entgegen. Der Parameter specifier muss einen modellierten PortPrototype referenzieren, der durch ein DiagnosticSecurityLevelInterface typisiert ist. Über concurrencyType wird festgelegt, ob die Callback-Methoden der Schnittstelle nebenläufig (kConcurrent) oder nicht-nebenläufig (kNotConcurrent) abgearbeitet werden.

Fehlerbehandlung

Die Funktion ist mit noexcept deklariert ([SWS_DM_00762]). Bei Fehlkonfigurationen der Modellierung können folgende Violations auftreten:

  • InstanceSpecifierMappingIntegrityViolation: Der InstanceSpecifier lässt sich im Ausführungskontext nicht auflösen oder verweist nicht auf einen PortPrototype.
  • PortInterfaceMappingViolation: Der referenzierte PortPrototype ist nicht als DiagnosticSecurityLevelInterface typisiert.
  • ProcessMappingViolation: Zum Instanzbezeichner existiert kein passender modellierter Prozess zur Laufzeit.
  • InstanceSpecifierAlreadyInUseViolation: Der InstanceSpecifier wird innerhalb des Prozesses bereits verwendet.

Interpretation: Das Auftreten einer solchen Verletzung dürfte framework-intern zu einem Laufzeitabbruch oder einer Sicherheitsbehandlung führen, da der Konstruktor keine Fehlercodes über einen Rückgabewert meldet. Frage Q-de6e36dc7947326e (offen)

Nebenläufigkeit und Einschränkungen

Der Konstruktor selbst ist als threadsicher spezifiziert ([SWS_DM_00762]). Kopier- und Verschiebekonstruktoren sowie die zugehörigen Zuweisungsoperatoren sind explizit gelöscht ([SWS_DM_01617], [SWS_DM_01618], [SWS_DM_01615], [SWS_DM_01616]); eine Instanz kann somit weder kopiert noch verschoben werden. Der beim Konstruktor übergebene concurrencyType bedingt, ob die virtuellen Methoden GetSeed ([SWS_DM_00764]) und CompareKey ([SWS_DM_00765]) threadsicher bereitgestellt werden müssen. Der Destruktor ist hingegen nicht threadsicher ([SWS_DM_00763]).

Zusammenspiel

Nach der Instanziierung muss die Anwendung Offer ([SWS_DM_00766]) aufrufen, damit der Diagnostic Server (DM) eingehende UDS-Anfragen für den Dienst 0x27 (SWS Diagnostics §7.3.2.8.9 „Service 0x27 – SecurityAccess“, [SWS_DM_00236]) weiterleitet. Bei passender Subfunktion leitet der Server Anfragen an GetSeed weiter ([SWS_DM_00863]). Die Weiterleitung kann mit StopOffer ([SWS_DM_00767]) wieder deaktiviert werden.

Dieser Nutzungshinweis wurde automatisiert auf Basis der AUTOSAR-Spezifikation R25-11 generiert.

Implementer's Guide folgt (Komplexität I3)

Header-Datei#include "ara/diag/security_access.h"
Scopeclass ara::diag::SecurityAccess
Exception-Sicherheitexception safe
Thread-Sicherheitthread-safe
Verletzungen (Violations)InstanceSpeci- InstanceSpecifier either cannot be resolved in the model in the fierMappingIn- context of your executable, or it refers to a model element other tegrityViolation than a PortPrototype. PortInterfaceMap- A PortPrototype that is referenced by a pingViolation DiagnosticSecurityLevelPortMapping needs to be typed by a DiagnosticSecurityLevelInterface. ProcessMappingVio- Matching InstanceRef exists, but no matching (modelled) Process lation found that matches the (runtime) process. InstanceSpecifier- Violation message that is sent in case a constructor in the ara AlreadyInUseViola- framework was called with an InstanceSpecifier already in use in tion this process.

Parameter (in)

ParameterBeschreibung
specifierInstanceSpecifier to a PortPrototype of a DiagnosticSecurityLevelInterface.
concurrencyTypeSpecifies if the interface is implemented as thread safe ( kConcurrent) or non-thread safe (kNotConcurrent).

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_DM_00762
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_00762@rel:R25-11#043c5c7d
Content hash
043c5c7d
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_00762
Status: valid/unmigrated Version: rel:R25-11#d28cef1a Versionshistorie & Revisions (1 transition, 8 revision)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/SWS_DM_00762@rel:R25-11#d28cef1a
Point-in-Time History:
Recorded Revisions (8):
  • R25-11rel:R25-11#043c5c7d2026-09-30
  • R19-11rel:R19-11#7b2a44bb2026-10-14
  • R20-11rel:R20-11#7227b8b52026-10-14
  • R21-11rel:R21-11#7227b8b52026-10-14
  • R22-11rel:R22-11#63feab942026-10-14
  • R23-11rel:R23-11#00b457c22026-10-14
  • R24-11rel:R24-11#9298af8d2026-10-14
  • R25-11rel:R25-11#d28cef1a2026-10-14 active
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill

function SecurityAccess [SWS_DM_01617] Upstream: RS_AP_00147

SecurityAccess (SecurityAccess &)=delete;

SecurityAccess shall be a single not copy-able instance.

Header-Datei#include "ara/diag/security_access.h"
Scopeclass ara::diag::SecurityAccess

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_DM_01617
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_01617@rel:R25-11#3fb7c46d
Content hash
3fb7c46d
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_01617
Status: valid/unmigrated Version: rel:R25-11#d3831de3 Versionshistorie & Revisions (1 transition, 4 revision)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/SWS_DM_01617@rel:R25-11#d3831de3
Point-in-Time History:
Recorded Revisions (4):
  • R25-11rel:R25-11#3fb7c46d2026-09-30
  • R23-11rel:R23-11#50f56be22026-10-14
  • R24-11rel:R24-11#177a95552026-10-14
  • R25-11rel:R25-11#d3831de32026-10-14 active
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill

function SecurityAccess [SWS_DM_01618] Upstream: RS_AP_00147

SecurityAccess (SecurityAccess &&) noexcept=delete;

Move constructor of SecurityAccess.

Header-Datei#include "ara/diag/security_access.h"
Scopeclass ara::diag::SecurityAccess

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_DM_01618
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_01618@rel:R25-11#b7a6da4b
Content hash
b7a6da4b
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_01618
Status: valid/unmigrated Version: rel:R25-11#99b5fc60 Versionshistorie & Revisions (1 transition, 4 revision)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/SWS_DM_01618@rel:R25-11#99b5fc60
Point-in-Time History:
Recorded Revisions (4):
  • R25-11rel:R25-11#b7a6da4b2026-09-30
  • R23-11rel:R23-11#f9d976f12026-10-14
  • R24-11rel:R24-11#99b5fc602026-10-14
  • R25-11rel:R25-11#99b5fc602026-10-14 active
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill

function StopOffer [SWS_DM_00767] Upstream: RS_Diag_04005

void StopOffer () noexcept;

This StopOffer will disable the forwarding of request messages from DM.

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: cc611929a4e2 Herkunft
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Verwendung

Die Elementfunktion StopOffer der Klasse ara::diag::SecurityAccess (Header ara/diag/security_access.h) dient dazu, die Weiterleitung eingehender Anfrage-Nachrichten aus dem Diagnostic Management (DM) an die Instanz zu deaktivieren [SWS_DM_00767]. Der Aufruf erfolgt synchron, akzeptiert keine Parameter und liefert keinen Rückgabewert (void) [SWS_DM_00767].

Fehlerbehandlung

Die Funktion ist mit noexcept deklariert und als ausnahmesicher (exception safe) eingestuft [SWS_DM_00767]. Es werden weder Fehlercodes noch C++-Exceptions gemeldet; ein Fehlverhalten oder Ausnahmezustand bei der Deregistrierung ist in der Schnittstellenspezifikation nicht vorgesehen [SWS_DM_00767].

Nebenläufigkeit und Einschränkungen

Gemäß Spezifikation ist StopOffer nicht threadsicher (not thread-safe) [SWS_DM_00767]. Greifen mehrere Threads einer Adaptive Application nebenläufig auf dieselbe Instanz von ara::diag::SecurityAccess zu, muss der Aufruf extern synchronisiert werden.

Zusammenspiel

Die Methode ist Teil eines modulübergreifenden Funktionsmusters im DM-Bereich. Ähnliche StopOffer-Methoden existieren für zahlreiche weitere Diagnose-Services wie:

Obwohl die Namensgebung an die Service-Bereitstellung in ara::com angelehnt ist, handelt es sich um eine eigenständige Diagnose-Implementierung zur Steuerung des Nachrichtenflusses innerhalb von ara::diag AUTOSAR_AP_SWS_Diagnostics §7.3.4.1.2 „Monitors“.

Dieser Nutzungshinweis wurde automatisiert auf Basis der AUTOSAR-Spezifikation für R25-11 generiert.

Implementer's Guide folgt (Komplexität I2)

Header-Datei#include "ara/diag/security_access.h"
Scopeclass ara::diag::SecurityAccess
Exception-Sicherheitexception safe
Thread-Sicherheitnot thread-safe

Rückgabewert

TypBeschreibung
None

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_DM_00767
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_00767@rel:R25-11#f7249348
Content hash
f7249348
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_00767
Status: valid/unmigrated Version: rel:R25-11#942cb137 Versionshistorie & Revisions (1 transition, 8 revision)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/SWS_DM_00767@rel:R25-11#942cb137
Point-in-Time History:
Recorded Revisions (8):
  • R25-11rel:R25-11#f72493482026-09-30
  • R19-11rel:R19-11#78ac458e2026-10-14
  • R20-11rel:R20-11#d7a868c22026-10-14
  • R21-11rel:R21-11#84fad67f2026-10-14
  • R22-11rel:R22-11#8e125bd42026-10-14
  • R23-11rel:R23-11#70d9a1082026-10-14
  • R24-11rel:R24-11#4b26aa9f2026-10-14
  • R25-11rel:R25-11#942cb1372026-10-14 active
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill

function operator= [SWS_DM_01615] Upstream: RS_AP_00147

SecurityAccess & operator= (SecurityAccess &)=delete;

SecurityAccess shall be a single not assignable instance.

Header-Datei#include "ara/diag/security_access.h"
Scopeclass ara::diag::SecurityAccess

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_DM_01615
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_01615@rel:R25-11#b9674d21
Content hash
b9674d21
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_01615
Status: valid/unmigrated Version: rel:R25-11#860bde59 Versionshistorie & Revisions (1 transition, 4 revision)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/SWS_DM_01615@rel:R25-11#860bde59
Point-in-Time History:
Recorded Revisions (4):
  • R25-11rel:R25-11#b9674d212026-09-30
  • R23-11rel:R23-11#2062081c2026-10-14
  • R24-11rel:R24-11#860bde592026-10-14
  • R25-11rel:R25-11#860bde592026-10-14 active
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill

function operator= [SWS_DM_01616] Upstream: RS_AP_00147

SecurityAccess & operator= (SecurityAccess &&)=delete;

Move assignment operator of SecurityAccess.

Header-Datei#include "ara/diag/security_access.h"
Scopeclass ara::diag::SecurityAccess

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_DM_01616
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_01616@rel:R25-11#362e1d63
Content hash
362e1d63
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_01616
Status: valid/unmigrated Version: rel:R25-11#7c8f632b Versionshistorie & Revisions (1 transition, 4 revision)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/SWS_DM_01616@rel:R25-11#7c8f632b
Point-in-Time History:
Recorded Revisions (4):
  • R25-11rel:R25-11#362e1d632026-09-30
  • R23-11rel:R23-11#340c00fd2026-10-14
  • R24-11rel:R24-11#7c8f632b2026-10-14
  • R25-11rel:R25-11#7c8f632b2026-10-14 active
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill

function ~SecurityAccess [SWS_DM_00763] Upstream: RS_AP_00134, RS_Diag_04005

virtual ~SecurityAccess () noexcept;

Destructor of SecurityAccess .

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 34fedca7e76c Herkunft Offene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Der virtuelle Destruktor ~SecurityAccess [SWS_DM_00763] beendet den Lebenszyklus einer Instanz der Service-Klasse ara::diag::SecurityAccess im Modul Diagnostics AUTOSAR_AP_SWS_Diagnostics §8.24.2.1.1.3 „Destructor“. Die Schnittstelle wird über den Header #include "ara/diag/security_access.h" bereitgestellt [SWS_DM_00763]. Die Ausführung erfolgt synchron, wobei die Funktion weder Übergabeparameter entgegennimmt noch einen Rückgabewert liefert [SWS_DM_00763].

Hinsichtlich der Fehlerbehandlung ist die Operation als exception safe klassifiziert und mit noexcept deklariert [SWS_DM_00763]. Sie löst folglich keine Exceptions aus. Spezifische Fehlercodes sowie Fehlermeldungen an Entwicklungs- oder Diagnose-Fehlermanager (DET oder DEM) sind für die Zerstörung des Objekts in der Spezifikation nicht vorgesehen [SWS_DM_00763].

Bezüglich der Nebenläufigkeit ist die Funktion ausdrücklich als not thread-safe eingestuft [SWS_DM_00763]. Ein Zerstören des Objekts darf niemals zeitgleich mit Aufrufen anderer Methoden auf derselben Instanz erfolgen. Als Interpretation gilt: Es dürfte erforderlich sein, vor der Zerstörung alle laufenden Diagnose- und Sicherheitszugriffsaktivitäten dieser Instanz geordnet abzuschließen, da gleichzeitige Zugriffe zu undefiniertem Verhalten führen. Frage Q-12c13e3eebd9e574 (offen)

Im Zusammenspiel mit der Plattform dient die Funktion der Realisierung der Upstream-Requirements RS_AP_00134 und RS_Diag_04005 AUTOSAR_AP_SWS_Diagnostics §8.24.2.1.1.3 „Destructor“.

Automatisch generierter Nutzungshinweis auf Basis der Spezifikation AUTOSAR Adaptive R25-11.

Implementer's Guide folgt (Komplexität I1)

Header-Datei#include "ara/diag/security_access.h"
Scopeclass ara::diag::SecurityAccess
Exception-Sicherheitexception safe
Thread-Sicherheitnot thread-safe

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_DM_00763
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_00763@rel:R25-11#98bb90f7
Content hash
98bb90f7
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_00763
Status: valid/unmigrated Version: rel:R25-11#8b163b56 Versionshistorie & Revisions (1 transition, 8 revision)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/SWS_DM_00763@rel:R25-11#8b163b56
Point-in-Time History:
Recorded Revisions (8):
  • R25-11rel:R25-11#98bb90f72026-09-30
  • R19-11rel:R19-11#1b925c952026-10-14
  • R20-11rel:R20-11#fdb51c102026-10-14
  • R21-11rel:R21-11#5d5e7b7a2026-10-14
  • R22-11rel:R22-11#c67efa4a2026-10-14
  • R23-11rel:R23-11#fccf37df2026-10-14
  • R24-11rel:R24-11#8b163b562026-10-14
  • R25-11rel:R25-11#8b163b562026-10-14 active
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill