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.
Stelt de applicatie in staat om diagnosecertificaten in de UDS-dienst Authentication te ontvangen en te controleren.
DOOR AI GEGENEREERDongecontroleerdModel: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: 82e724c2cab7HerkomstOpen vragen (1)
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel
Stelt de applicatie in staat om diagnosecertificaten in de UDS-dienst Authentication te ontvangen en te controleren.
De klasse ara::diag::TransmitCertificate implementeert de applicatie-interface voor de UDS-subfunctie TransmitCertificate (0x29 0x04) van de dienst Authentication[SWS_DM_01961]. Na vrijgave via Offer() ontvangt de applicatie overgedragen certificaatgegevens in de asynchrone methode Process() en start de applicatiespecifieke verificatie [SWS_DM_01968]. Bij een succesvolle controle initieert Diagnostic Management een positief UDS-antwoord met de retourparameter 0x13 (CertificateVerified), terwijl fouten worden beantwoord als negatief antwoord met de bijbehorende NRC. De instantie is vast gebonden aan een poort-interface en mag noch gekopieerd noch verplaatst worden.
Context
De klasse ara::diag::TransmitCertificate[SWS_DM_01961] in header ara/diag/transmit_certificate.h (AUTOSAR_AP_SWS_Diagnostics §8.26 “Header: ara/diag/transmit_certificate.h”) vormt de interface van de Adaptive-applicatie voor het realiseren van de UDS-subfunctie TransmitCertificate (0x29 0x04) van de dienst Authentication. Als generieke interface stelt deze de applicatie in staat om een of meer overgedragen certificaten aan de hand van een 16-bits identifier (certificateEvaluationId) te ontvangen en te verwerken.
Bij de interactie zijn drie hoofdcomponenten betrokken:
De externe diagnosetester, die het UDS-verzoek voor certificaatoverdracht naar het voertuig verzendt [SWS_DM_01968].
De Diagnostic Server (Diagnostic Management, DM) van het Adaptive Platform, die binnenkomende diagnoseverzoeken filtert, doorstuurt en de uiteindelijke UDS-antwoorden genereert [SWS_DM_01251], [SWS_DM_01969].
De Adaptive-applicatie, die een van ara::diag::TransmitCertificate afgeleide instantie levert, de certificaatcontrole uitvoert en het resultaat asynchroon terugstuurt naar de server [SWS_DM_01968].
Instanties van ara::diag::TransmitCertificate worden via de constructor aangemaakt onder vermelding van een ara::core::InstanceSpecifier en de concurrency-modus ConcurrencyType[SWS_DM_01962]. De InstanceSpecifier moet in het manifest verwijzen naar een PortPrototype die getypeerd is door een DiagnosticTransmitCertificateInterface[SWS_DM_01962]. Als deze toewijzing mislukt of als de instantie-identifier in het huidige proces meerdere keren wordt gebruikt, treden runtime-overtredingen zoals InstanceSpecifierMappingIntegrityViolation, PortInterfaceMappingViolation, ProcessMappingViolation of InstanceSpecifierAlreadyInUseViolation op [SWS_DM_01962].
De klasse is onderworpen aan strikte eigendoms- en instantiatieregels: een authenticatie-handler is ontworpen als een unieke, niet-kopieerbare en niet-verplaatsbare instantie. Dienovereenkomstig zijn de copy-constructor [SWS_DM_01964], de copy-assignment-operator [SWS_DM_01966] evenals de move-constructor [SWS_DM_01963] en de move-assignment-operator [SWS_DM_01965] expliciet verwijderd (=delete).
De constructor zelf is thread-safe en uitzonderingsveilig gespecificeerd [SWS_DM_01962]. De vrijgave vindt plaats via de virtuele standaarddestructor [SWS_DM_01967]. Of de feitelijke uitvoeringsmethode Process thread-safe moet worden geïmplementeerd, hangt af van de gekozen concurrencyType (kConcurrent of kNotConcurrent) [SWS_DM_01962], [SWS_DM_01968].
Gebruikspad
Het reguliere verloop omvat de registratie van de handler, de verwerking van binnenkomende certificaten en de latere deregistratie:
Dienst aanbieden (Offer): De applicatie roept Offer() aan om aan Diagnostic Management te signaleren dat verzoeken voor de geconfigureerde interface naar deze handler mogen worden doorgestuurd [SWS_DM_01969].
Verzoek ontvangen (Process): Komt bij de Diagnostic Server een UDS-verzoek van de subfunctie TransmitCertificate binnen, dan stuurt deze de gegevens door naar de zuiver virtuele methode Process() van de applicatie [SWS_DM_01968]. De methode ontvangt de 16-bits identifier certificateEvaluationId, de ruwe gegevens van het certificaat als ara::core::Span<ara::core::Byte const>, metadata (metaInfo) en een cancellationHandler[SWS_DM_01968].
Evaluatie en actie: Aangezien AUTOSAR geen vaste semantiek voor de certificaten voorschrijft, berusten de controle en het afleiden van vereiste maatregelen volledig bij de applicatie [SWS_DM_01968]. Interpretatie: De applicatie zal het overgedragen certificaat typisch cryptografisch verifiëren of gebruiken voor het bijwerken van een interne sleutelopslag. Vraag Q-34844f9257d074c6 (open)
Dienst beëindigen (StopOffer): Als de handler geen verdere verzoeken meer mag ontvangen, beëindigt de applicatie het doorsturen door aanroep van StopOffer()[SWS_DM_01970].
Fouttoestanden kunnen in verschillende fasen van de levenscyclus optreden:
Reeds actief aanbod: Wordt Offer() aangeroepen terwijl de dienst voor deze instantie reeds actief wordt aangeboden, dan mislukt de aanroep en levert deze in de ara::core::Result<void> de foutcode DiagOfferErrc::kAlreadyOffered met rollback-semantiek terug [SWS_DM_01969]. Offer() en StopOffer() zijn niet thread-safe en mogen niet concurrent worden aangeroepen [SWS_DM_01969], [SWS_DM_01970].
Afbreken van lopende conversaties: Tijdens de asynchrone verwerking kan de applicatie de status opvragen via cancellationHandler.IsCanceled() om vast te stellen of de diagnoseconversatie is afgebroken [SWS_DM_01968]. Aanvullend kan via cancellationHandler.SetNotifier(...) een callback-functie worden geregistreerd die bij een afbreking onmiddellijk wordt gewaarschuwd [SWS_DM_01968].
Deze handleiding is gebaseerd op de specificatie AUTOSAR Adaptive Platform R25-11 (module diag) en is gecureerd met behulp van AI.
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.
DOOR AI GEGENEREERDongecontroleerdModel: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: db62dd9c27e2HerkomstOpen vragen (1)
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel
Via de methode Offer activeert een Adaptive Application het doorsturen van diagnoseverzoeken door het Diagnostic Management (DM) naar de bevoegde handler van de klasse ara::diag::TransmitCertificate[SWS_DM_01969]. De aanroep vindt synchroon en parameterloos plaats; de interface is gedefinieerd als uitzonderingsveilig (noexcept) [SWS_DM_01969]. Als retourtype dient ara::core::Result<void>, waarmee het slagen van de registratie of een fouttoestand aan de aanroeper wordt doorgegeven [SWS_DM_01969].
Als de functie voor de betreffende handler-instantie al eerder is aangeroepen, mislukt een nieuwe aanroep en retourneert deze de specifieke fout DiagOfferErrc::kAlreadyOffered met rollback-semantiek [SWS_DM_01969], die overeenkomt met de gestandaardiseerde foutwaarde in DiagErrc[SWS_DM_00514]. Aangezien de methode expliciet als niet-thread-safe is gespecificeerd [SWS_DM_01969], moeten parallelle toegangen op dezelfde instantie worden vermeden (interpretatie: bescherming tegen gelijktijdige aanroepen is de verantwoordelijkheid van de toepassende software). Vraag Q-b44b11a0a2dcb2b4 (open)
Het functiepatroon van Offer volgt het uniforme implementatieconcept van diagnostische handlers, zoals dat ook bij ara::diag::Authentication::Offer[SWS_DM_01130], ara::diag::CommunicationControl::Offer[SWS_DM_00809] of ara::diag::GenericRoutine::Offer[SWS_DM_00557] wordt toegepast. AUTOSAR verduidelijkt dat ondanks de gelijknamige verwijzing naar ara::com sprake is van een zelfstandige diagnose-implementatie (AUTOSAR_AP_SWS_Diagnostics §7.3.4.1.2 “Monitors”). Vóór de beschikbaarstelling door Offer stuurt het DM geen verzoeken door naar de handler, analoog aan DoIP-services die vóór de aanroep als niet gereed gelden [SWS_DM_01525].
Deze gebruiksinstructie is geautomatiseerd gegenereerd en is gebaseerd op de specificaties van release 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.
DOOR AI GEGENEREERDongecontroleerdModel: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: d261181b4bb6Herkomst
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel
De methode Process van de interfaceklasse ara::diag::TransmitCertificate dient voor de applicatie-interne verwerking van certificaten die een diagnosetester in het kader van de UDS-dienst 0x29 (Authentication) via de subfunctie TransmitCertificate (0x04) verzendt [SWS_DM_01968], AUTOSAR_AP_SWS_Diagnostics §7.3.2.8.11.5 “Service 0x29 – transmitCertificate (0x04)”. Aangezien AUTOSAR geen specifieke semantiek voor het certificaat voorschrijft, rusten de inhoudelijke controle en het afleiden van vereiste acties volledig op de applicatie [SWS_DM_01968].
De methode wordt asynchroon aangeroepen en neemt de volgende parameters in ontvangst [SWS_DM_01968]:
certificateEvaluationId: 16-bits evaluatie-ID uit het UDS-verzoekbericht ter identificatie van de certificaatevaluatie [SWS_DM_01968], [SWS_DM_01247].
certificateData: De door de tester verzonden certificaatgegevens als ara::core::Span<ara::core::Byte const>[SWS_DM_01968].
metaInfo: Meta-informatie over het diagnoseverzoek [SWS_DM_01968].
cancellationHandler: Maakt het opvragen van de annuleringsstatus via cancellationHandler.IsCanceled() mogelijk, evenals het registreren van een notificatie via cancellationHandler.SetNotifier() bij een voortijdige beëindiging van de diagnoseconversatie [SWS_DM_01968].
De retournering vindt asynchroon plaats als ara::core::Future<void>[SWS_DM_01968]. Mislukt de verwerking, dan dient een passende Negative Response Code (NRC) volgens ISO 14229-1 via DiagUdsNrcErrc beschikbaar te worden gesteld [SWS_DM_01968]. De functie is gedeclareerd als noexcept en exception safe [SWS_DM_01968].
De thread-safety is voorwaardelijk (conditional): deze is afhankelijk van de ConcurrencyType die aan de constructor van ara::diag::TransmitCertificate wordt meegegeven [SWS_DM_01968]. Vóór het doorsturen valideert de diagnose-manager het verzoek aan de hand van de certificateEvaluationId[SWS_DM_01247].
Deze gebruiksinstructie is geautomatiseerd gegenereerd op basis van de specificatie AUTOSAR R25-11.
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.
DOOR AI GEGENEREERDongecontroleerdModel: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: 7da07a83c1d7HerkomstOpen vragen (1)
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel
De methode StopOffer van de klasse ara::diag::TransmitCertificate ([SWS_DM_01970]) beëindigt de beschikbaarstelling van de certificaatoverdrachtservice voor het Diagnostic Management (DM). Door de aanroep wordt het doorsturen van inkomende diagnoseverzoekberichten van het DM naar deze handler gedeactiveerd ([SWS_DM_01970]).
Gebruik en semantiek
De aanroep vindt parameterloos plaats via de signatuur void StopOffer() noexcept; uit de header ara/diag/transmit_certificate.h ([SWS_DM_01970]). De functie levert geen retourwaarde op en is gespecificeerd als noexcept evenals exception safe ([SWS_DM_01970]), zodat gegarandeerd geen uitzonderingen worden geworpen.
Gelijktijdigheid en beperkingen
De methode is expliciet gespecificeerd als not thread-safe ([SWS_DM_01970]). Aanroepers moeten er daarom voor zorgen dat concurrerende aanroepen op dezelfde instantie van ara::diag::TransmitCertificate via externe mechanismen worden gesynchroniseerd. Interpretatie: vóór het vernietigen van een service-instantie of bij tijdelijke deactivering zou StopOffer kunnen worden aangeroepen om te voorkomen dat nieuwe verzoeken binnenkomen tijdens de toestandswissel. Vraag Q-9ab97301565c5bf9 (open)
Samenspel
Het concept komt overeen met het gestandaardiseerde DM-patroon voor het deactiveren van het doorsturen van berichten, zoals dat ook is gedefinieerd in verwante interfaces zoals [SWS_DM_00767] (SecurityAccess), [SWS_DM_00810] (CommunicationControl) of [SWS_DM_01017] (EcuResetRequest). Deze fabrikantspecifieke diagnose-implementatie deelt weliswaar de naamgeving met het communicatieframework, maar moet worden onderscheiden van ara::com (AUTOSAR_AP_SWS_Diagnostics §7.3.4.1.2 “Monitors”). Het element dient ter vervulling van de upstream-requirement RS_Diag_04251, die ook ten grondslag ligt aan de authenticatie-interface (AUTOSAR_AP_SWS_Diagnostics §8.3.1.1.3.2 “StopOffer”; [SWS_DM_01131]).
Deze tekst is opgesteld door een AI-systeem op basis van de specificatiedocumenten.
DOOR AI GEGENEREERDongecontroleerdModel: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: b553bcd9da3eHerkomstOpen vragen (1)
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel
De constructor initialiseert een instantie van de klasse ara::diag::TransmitCertificate voor de verwerking van certificaten in het kader van de UDS-dienst 0x29 (subfunctie TransmitCertificate) [SWS_DM_01962].
Gebruik
De aanroep vindt synchroon plaats en is gespecificeerd als noexcept en exception safe[SWS_DM_01962]. Bij de aanroep worden twee parameters meegegeven:
specifier: Een ara::core::InstanceSpecifier die moet verwijzen naar een PortPrototype, welke via een DiagnosticAuthenticationPortMapping is getypeerd op een DiagnosticTransmitCertificateInterface in het manifest [SWS_DM_01962].
concurrencyType: Bepaalt via kConcurrent of kNotConcurrent of de interface gelijktijdige aanroepen van de virtuele methode Process toestaat dan wel sequentieel moet worden verwerkt [SWS_DM_01962], [SWS_DM_01968].
Foutafhandeling en randvoorwaarden
De objectcreatie is thread-safe [SWS_DM_01962]. Aangezien een authenticatie-instantie uniek moet zijn, zijn copy- en move-constructors evenals toewijzingsoperatoren expliciet verwijderd [SWS_DM_01963], [SWS_DM_01964], [SWS_DM_01965], [SWS_DM_01966]. Bij foutieve configuraties in het manifest of dubbel gebruik van een identifier worden violations gemeld (zoals InstanceSpecifierMappingIntegrityViolation, PortInterfaceMappingViolation, ProcessMappingViolation of InstanceSpecifierAlreadyInUseViolation) [SWS_DM_01962]. Aangezien de constructor geen exceptions opwerpt, zullen deze meldingen vermoedelijk via de runtime-rapportage van het ara-framework worden gesignaleerd. Vraag Q-140f1e794355ad96 (open)
Samenspel
Na de constructie moet de instantie middels Offer() worden vrijgegeven, zodat de Diagnostic Management Daemon verzoeken doorstuurt [SWS_DM_01969]. Bij succesvolle verwerking via Process() antwoordt de server positief met de parameter CertificateVerified (0x13) [SWS_DM_01251], terwijl fouten leiden tot negatieve UDS-antwoorden [SWS_DM_01249]. Met StopOffer() wordt het doorsturen beëindigd [SWS_DM_01970].
Deze tekst is gegenereerd door een AI en dient als leidraad. Uitsluitend de officiële AUTOSAR-specificaties zijn bindend.
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-low· 2026-10-13 · Duits origineel