Class to implement the subfunction TransmitCertificate (29 04) of UDS service Authentication as interface to application. This class implements a so called generic interface, where the application has means to handle one ore more certificateEvaluationId transferred certificates.
Ermöglicht der Anwendung die Entgegennahme und Prüfung von Diagnose-Zertifikaten im UDS-Dienst Authentication.
KI-GENERIERTungeprüftModell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 82e724c2cab7HerkunftOffene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13
Ermöglicht der Anwendung die Entgegennahme und Prüfung von Diagnose-Zertifikaten im UDS-Dienst Authentication.
Die Klasse ara::diag::TransmitCertificate implementiert die Anwendungsschnittstelle für die UDS-Unterfunktion TransmitCertificate (0x29 0x04) des Dienstes Authentication[SWS_DM_01961]. Nach der Freigabe über Offer() nimmt die Anwendung übertragene Zertifikatsdaten in der asynchronen Methode Process() entgegen und leitet die anwendungsspezifische Verifizierung ein [SWS_DM_01968]. Bei erfolgreicher Prüfung veranlasst das Diagnose-Management eine positive UDS-Antwort mit dem Rückgabeparameter 0x13 (CertificateVerified), während Fehler als negative Antwort mit entsprechendem NRC beantwortet werden. Die Instanz ist fest an ein Port-Interface gebunden und darf weder kopiert noch verschoben werden.
Kontext
Die Klasse ara::diag::TransmitCertificate[SWS_DM_01961] im Header ara/diag/transmit_certificate.h (AUTOSAR_AP_SWS_Diagnostics §8.26 „Header: ara/diag/transmit_certificate.h“) stellt die Schnittstelle der Adaptive-Anwendung zur Realisierung der UDS-Unterfunktion TransmitCertificate (0x29 0x04) des Dienstes Authentication dar. Als generische Schnittstelle ermöglicht sie es der Anwendung, ein oder mehrere übermittelte Zertifikate anhand einer 16-Bit-Kennung (certificateEvaluationId) entgegenzunehmen und zu verarbeiten.
An der Interaktion sind drei Hauptkomponenten beteiligt:
Der externe Diagnosetester, der die UDS-Anfrage zur Zertifikatsübermittlung an das Fahrzeug sendet [SWS_DM_01968].
Der Diagnostic Server (Diagnose-Management, DM) der Adaptive Platform, welcher eingehende Diagnoseanfragen filtert, weiterleitet und die abschließenden UDS-Antworten generiert [SWS_DM_01251], [SWS_DM_01969].
Die Adaptive-Anwendung, welche eine von ara::diag::TransmitCertificate abgeleitete Instanz bereitstellt, die Zertifikatsprüfung vornimmt und das Ergebnis asynchron an den Server zurückliefert [SWS_DM_01968].
Instanzen von ara::diag::TransmitCertificate werden über den Konstruktor unter Angabe eines ara::core::InstanceSpecifier sowie des Nebenläufigkeitsmodus ConcurrencyType erzeugt [SWS_DM_01962]. Der InstanceSpecifier muss im Manifest auf einen PortPrototype verweisen, der durch ein DiagnosticTransmitCertificateInterface typisiert ist [SWS_DM_01962]. Schlägt diese Zuordnung fehl oder wird die Instanzkennung im aktuellen Prozess mehrfach verwendet, treten Laufzeitverletzungen wie InstanceSpecifierMappingIntegrityViolation, PortInterfaceMappingViolation, ProcessMappingViolation oder InstanceSpecifierAlreadyInUseViolation auf [SWS_DM_01962].
Die Klasse unterliegt strengen Besitz- und Instanziierungsregeln: Ein Authentifizierungs-Handler ist als eindeutige, nicht kopierbare und nicht verschiebbare Instanz ausgelegt. Dementsprechend sind der Kopierkonstruktor [SWS_DM_01964], der Kopierzuweisungsoperator [SWS_DM_01966] sowie der Move-Konstruktor [SWS_DM_01963] und der Move-Zuweisungsoperator [SWS_DM_01965] explizit gelöscht (=delete).
Der Konstruktor selbst ist threadsicher und ausnahmesicher spezifiziert [SWS_DM_01962]. Die Freigabe erfolgt über den virtuellen Standard-Destruktor [SWS_DM_01967]. Ob die eigentliche Ausführungsmethode Process threadsicher implementiert werden muss, hängt vom gewählten concurrencyType ab (kConcurrent oder kNotConcurrent) [SWS_DM_01962], [SWS_DM_01968].
Nutzungspfad
Der reguläre Ablauf umfasst die Registrierung des Handlers, die Verarbeitung eingehender Zertifikate und die spätere Deregistrierung:
Dienst anbieten (Offer): Die Anwendung ruft Offer() auf, um dem Diagnose-Management zu signalisieren, dass Anfragen für die konfigurierte Schnittstelle an diesen Handler weitergeleitet werden dürfen [SWS_DM_01969].
Anfrage empfangen (Process): Trifft beim Diagnostic Server ein UDS-Request der Unterfunktion TransmitCertificate ein, leitet dieser die Daten an die rein virtuelle Methode Process() der Anwendung weiter [SWS_DM_01968]. Die Methode erhält die 16-Bit-Kennung certificateEvaluationId, die Rohdaten des Zertifikats als ara::core::Span<ara::core::Byte const>, Metadaten (metaInfo) sowie einen cancellationHandler[SWS_DM_01968].
Auswertung und Aktion: Da AUTOSAR keine feste Semantik für die Zertifikate vorschreibt, obliegt die Prüfung und das Ableiten erforderlicher Maßnahmen vollständig der Anwendung [SWS_DM_01968]. Interpretation: Die Anwendung dürfte das übermittelte Zertifikat typischerweise kryptografisch verifizieren oder zur Aktualisierung eines internen Schlüsselspeichers nutzen. Frage Q-34844f9257d074c6 (offen)
Dienst beenden (StopOffer): Soll der Handler keine weiteren Anfragen empfangen, beendet die Anwendung die Weiterleitung durch Aufruf von StopOffer()[SWS_DM_01970].
Fehlerzustände können in verschiedenen Phasen des Lebenszyklus auftreten:
Bereits aktives Angebot: Wird Offer() aufgerufen, obwohl der Dienst für diese Instanz bereits aktiv angeboten wird, schlägt der Aufruf fehl und liefert im ara::core::Result<void> den Fehlercode DiagOfferErrc::kAlreadyOffered mit Rollback-Semantik zurück [SWS_DM_01969]. Offer() und StopOffer() sind nicht threadsicher und dürfen nicht nebenläufig aufgerufen werden [SWS_DM_01969], [SWS_DM_01970].
Abbruch laufender Konversationen: Während der asynchronen Verarbeitung kann die Anwendung den Status über cancellationHandler.IsCanceled() abfragen, um festzustellen, ob die Diagnosekonversation abgebrochen wurde [SWS_DM_01968]. Ergänzend kann über cancellationHandler.SetNotifier(...) eine Rückruffunktion registriert werden, die bei einem Abbruch sofort benachrichtigt wird [SWS_DM_01968].
Dieser Leitfaden basiert auf der Spezifikation AUTOSAR Adaptive Platform R25-11 (Modul diag) und wurde mit Hilfe von KI kuratiert.
This method is used to process certificates send by a diagnostic tester, via the UDS subfunction TransmitCertificate inside the application. There is no specific semantics for the certificate and it is left to the application to process the received certificate and derive the needed actions.
This Offer will enable the DM to forward request messages to this handler.
KI-GENERIERTungeprüftModell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: db62dd9c27e2HerkunftOffene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13
Über die Methode Offer aktiviert eine Adaptive Application die Weiterleitung von Diagnoseanfragen durch den Diagnostic Management (DM) an den zuständigen Handler der Klasse ara::diag::TransmitCertificate[SWS_DM_01969]. Der Aufruf erfolgt synchron und parameterlos; die Schnittstelle ist als ausnahmesicher (noexcept) definiert [SWS_DM_01969]. Als Rückgabetyp dient ara::core::Result<void>, womit der Erfolg der Registrierung oder ein Fehlerzustand an den Aufrufer übermittelt wird [SWS_DM_01969].
Wurde die Funktion für die betreffende Handler-Instanz bereits zuvor aufgerufen, schlägt ein erneuter Aufruf fehl und liefert den spezifischen Fehler DiagOfferErrc::kAlreadyOffered mit Rollback-Semantik zurück [SWS_DM_01969], welcher dem standardisierten Fehlerwert in DiagErrc entspricht [SWS_DM_00514]. Da die Methode explizit als nicht threadsicher spezifiziert ist [SWS_DM_01969], müssen parallele Zugriffe auf derselben Instanz vermieden werden (Interpretation: Ein Schutz vor nebenläufigen Aufrufen obliegt der anwendenden Software). Frage Q-b44b11a0a2dcb2b4 (offen)
Das Funktionsmuster von Offer folgt dem einheitlichen Bereitstellungskonzept diagnostischer Handler, wie es auch bei ara::diag::Authentication::Offer[SWS_DM_01130], ara::diag::CommunicationControl::Offer[SWS_DM_00809] oder ara::diag::GenericRoutine::Offer[SWS_DM_00557] angewendet wird. AUTOSAR stellt klar, dass trotz namensgleicher Anlehnung an ara::com eine eigenständige Diagnose-Implementierung vorliegt (AUTOSAR_AP_SWS_Diagnostics §7.3.4.1.2 „Monitors“). Vor der Bereitstellung durch Offer leitet der DM keine Anfragen an den Handler weiter, analog zu DoIP-Diensten, die vor dem Aufruf als nicht bereit gelten [SWS_DM_01525].
Dieser Verwendungshinweis wurde automatisiert generiert und basiert auf den Spezifikationen des Releases R25-11.
This method is used to process certificates send by a diagnostic tester, via the UDS subfunction TransmitCertificate inside the application. There is no specific semantics for the certificate and it is left to the application to process the received certificate and derive the needed actions.
KI-GENERIERTungeprüftModell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: d261181b4bb6Herkunft
KI-generiertgemini-3.8-flash-medium · 2026-10-13
Die Methode Process der Schnittstellenklasse ara::diag::TransmitCertificate dient der anwendungsinternen Verarbeitung von Zertifikaten, die ein Diagnose-Tester im Rahmen des UDS-Dienstes 0x29 (Authentication) über die Subfunktion TransmitCertificate (0x04) übermittelt [SWS_DM_01968], AUTOSAR_AP_SWS_Diagnostics §7.3.2.8.11.5 „Service 0x29 – transmitCertificate (0x04)“. Da AUTOSAR keine spezifische Semantik für das Zertifikat vorgibt, obliegt die inhaltliche Prüfung und das Ableiten erforderlicher Aktionen vollständig der Anwendung [SWS_DM_01968].
Die Methode wird asynchron aufgerufen und nimmt folgende Parameter entgegen [SWS_DM_01968]:
certificateEvaluationId: 16-Bit-Evaluierungs-ID aus der UDS-Anforderungsnachricht zur Identifikation der Zertifikatsauswertung [SWS_DM_01968], [SWS_DM_01247].
certificateData: Die vom Tester übermittelten Zertifikatsdaten als ara::core::Span<ara::core::Byte const>[SWS_DM_01968].
metaInfo: Metainformationen zur Diagnoseanforderung [SWS_DM_01968].
cancellationHandler: Ermöglicht das Abfragen des Abbruchstatus via cancellationHandler.IsCanceled() sowie das Registrieren einer Benachrichtigung via cancellationHandler.SetNotifier() bei einem vorzeitigen Abbruch der Diagnose-Konversation [SWS_DM_01968].
Die Rückgabe erfolgt asynchron als ara::core::Future<void>[SWS_DM_01968]. Schlägt die Verarbeitung fehl, ist ein zutreffender Negative Response Code (NRC) nach ISO 14229-1 über DiagUdsNrcErrc bereitzustellen [SWS_DM_01968]. Die Funktion ist als noexcept deklariert und ausnahmesicher (exception safe) [SWS_DM_01968].
Die Thread-Sicherheit ist bedingt (conditional): Sie richtet sich nach dem ConcurrencyType, der dem Konstruktor von ara::diag::TransmitCertificate übergeben wird [SWS_DM_01968]. Vor der Weiterleitung validiert der Diagnose-Manager die Anfrage anhand der certificateEvaluationId[SWS_DM_01247].
Dieser Nutzungshinweis wurde automatisiert auf Basis der Spezifikation AUTOSAR R25-11 generiert.
conditional whether the function has to be implemented thread safe or non-thread safe is determined by the ConcurrencyType given in the constructor
Parameter (in)
Parameter
Beschreibung
certificateEvaluationId
Represents the 16bit certificate evaluation ID as part of the UDS request message
certificateData
Certificate to be verified, transmitted by the tester
metaInfo
MetaInfo of the request.
cancellationHandler
This 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.
This StopOffer will disable the forwarding of request messages from DM.
KI-GENERIERTungeprüftModell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 7da07a83c1d7HerkunftOffene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13
Die Methode StopOffer der Klasse ara::diag::TransmitCertificate ([SWS_DM_01970]) beendet die Bereitstellung des Zertifikatsübertragungs-Dienstes für das Diagnostic Management (DM). Durch den Aufruf wird die Weiterleitung eingehender Diagnose-Anforderungsnachrichten vom DM an diesen Handler deaktiviert ([SWS_DM_01970]).
Verwendung und Semantik
Der Aufruf erfolgt parameterlos über die Signatur void StopOffer() noexcept; aus dem Header ara/diag/transmit_certificate.h ([SWS_DM_01970]). Die Funktion liefert keinen Rückgabewert und ist als noexcept sowie exception safe spezifiziert ([SWS_DM_01970]), sodass sie garantiert keine Ausnahmen wirft.
Nebenläufigkeit und Einschränkungen
Die Methode ist explizit als not thread-safe spezifiziert ([SWS_DM_01970]). Aufrufer müssen daher sicherstellen, dass konkurrierende Aufrufe auf derselben Instanz von ara::diag::TransmitCertificate durch externe Mechanismen synchronisiert werden. Interpretation: Vor der Zerstörung einer Dienstinstanz oder bei temporärer Deaktivierung dürfte StopOffer aufgerufen werden, um ein Eintreffen neuer Anfragen während des Zustandswechsels zu unterbinden. Frage Q-9ab97301565c5bf9 (offen)
Zusammenspiel
Das Konzept entspricht dem standardisierten DM-Muster zur Deaktivierung der Nachrichtenweiterleitung, wie es auch in verwandten Schnittstellen wie [SWS_DM_00767] (SecurityAccess), [SWS_DM_00810] (CommunicationControl) oder [SWS_DM_01017] (EcuResetRequest) definiert ist. Diese herstellerspezifische Diagnose-Implementierung teilt zwar die Namensgebung mit dem Kommunikations-Framework, ist jedoch von ara::com zu unterscheiden (AUTOSAR_AP_SWS_Diagnostics §7.3.4.1.2 „Monitors“). Das Element dient der Erfüllung des Upstream-Requirements RS_Diag_04251, welches auch der Authentifizierungsschnittstelle zugrunde liegt (AUTOSAR_AP_SWS_Diagnostics §8.3.1.1.3.2 „StopOffer“; [SWS_DM_01131]).
Dieser Text wurde durch ein KI-System auf Basis der Spezifikationsdokumente erstellt.
KI-GENERIERTungeprüftModell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: b553bcd9da3eHerkunftOffene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13
Der Konstruktor initialisiert eine Instanz der Klasse ara::diag::TransmitCertificate zur Verarbeitung von Zertifikaten im Rahmen des UDS-Dienstes 0x29 (Subfunktion TransmitCertificate) [SWS_DM_01962].
Verwendung
Der Aufruf erfolgt synchron und ist als noexcept sowie exception safe spezifiziert [SWS_DM_01962]. Beim Aufruf werden zwei Parameter übergeben:
specifier: Ein ara::core::InstanceSpecifier, der auf einen PortPrototype verweisen muss, welcher über ein DiagnosticAuthenticationPortMapping auf ein DiagnosticTransmitCertificateInterface im Manifest typisiert ist [SWS_DM_01962].
concurrencyType: Bestimmt über kConcurrent oder kNotConcurrent, ob die Schnittstelle nebenläufige Aufrufe der virtuellen Methode Process erlaubt oder sequenziell verarbeitet werden muss [SWS_DM_01962], [SWS_DM_01968].
Fehlerbehandlung und Randbedingungen
Die Objekterzeugung ist thread-safe [SWS_DM_01962]. Da eine Authentifizierungsinstanz eindeutig sein muss, sind Kopier- und Verschiebekonstruktoren sowie Zuweisungsoperatoren explizit gelöscht [SWS_DM_01963], [SWS_DM_01964], [SWS_DM_01965], [SWS_DM_01966]. Bei Fehlkonfigurationen im Manifest oder doppelter Verwendung eines Bezeichners werden Violations gemeldet (wie InstanceSpecifierMappingIntegrityViolation, PortInterfaceMappingViolation, ProcessMappingViolation oder InstanceSpecifierAlreadyInUseViolation) [SWS_DM_01962]. Da der Konstruktor keine Exceptions wirft, dürften diese Meldungen über das Laufzeit-Reporting des ara-Frameworks signalisiert werden. Frage Q-140f1e794355ad96 (offen)
Zusammenspiel
Nach der Konstruktion muss die Instanz mittels Offer() freigegeben werden, damit der Diagnostic Management Daemon Anfragen weiterleitet [SWS_DM_01969]. Bei erfolgreicher Bearbeitung über Process() antwortet der Server positiv mit dem Parameter CertificateVerified (0x13) [SWS_DM_01251], während Fehler zu negativen UDS-Antworten führen [SWS_DM_01249]. Mit StopOffer() wird die Weiterleitung beendet [SWS_DM_01970].
Dieser Text wurde von einer KI generiert und dient als Orientierungshilfe. Verbindlich sind ausschließlich die offiziellen AUTOSAR-Spezifikationen.
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 DiagnosticAuthenticationPortMapping needs to be typed by a DiagnosticTransmitCertificateInterface. 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)
Parameter
Beschreibung
specifier
InstanceSpecifier to a PortPrototype of a DiagnosticTransmitCertificateInterface service instance in the manifest.
concurrencyType
Specifies 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.
gemini-3.8-flash-medium· 2026-10-13