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.
Permet à l'application de recevoir et de vérifier des certificats de diagnostic dans le service UDS Authentication.
GÉNÉRÉ PAR IAnon vérifiéModèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : 82e724c2cab7ProvenanceQuestions ouvertes (1)
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand
Permet à l'application de recevoir et de vérifier des certificats de diagnostic dans le service UDS Authentication.
La classe ara::diag::TransmitCertificate implémente l'interface applicative pour la sous-fonction UDS TransmitCertificate (0x29 0x04) du service Authentication[SWS_DM_01961]. Après la mise à disposition via Offer(), l'application reçoit les données de certificat transmises dans la méthode asynchrone Process() et lance la vérification spécifique à l'application [SWS_DM_01968]. En cas de vérification réussie, le Diagnostic Management déclenche une réponse positive UDS avec le paramètre de retour 0x13 (CertificateVerified), tandis que les erreurs font l'objet d'une réponse négative avec le NRC correspondant. L'instance est liée de manière fixe à une interface de port et ne doit être ni copiée ni déplacée.
Contexte
La classe ara::diag::TransmitCertificate[SWS_DM_01961] dans l'en-tête ara/diag/transmit_certificate.h (AUTOSAR_AP_SWS_Diagnostics §8.26 « Header: ara/diag/transmit_certificate.h ») représente l'interface de l'application Adaptive pour la réalisation de la sous-fonction UDS TransmitCertificate (0x29 0x04) du service Authentication. En tant qu'interface générique, elle permet à l'application de recevoir et de traiter un ou plusieurs certificats transmis à l'aide d'un identifiant 16 bits (certificateEvaluationId).
Trois composants principaux participent à l'interaction :
Le testeur de diagnostic externe, qui envoie la requête UDS de transmission de certificat au véhicule [SWS_DM_01968].
Le Diagnostic Server (Diagnostic Management, DM) de l'Adaptive Platform, qui filtre les requêtes de diagnostic entrantes, les transmet et génère les réponses UDS finales [SWS_DM_01251], [SWS_DM_01969].
L'application Adaptive, qui fournit une instance dérivée de ara::diag::TransmitCertificate, effectue la vérification du certificat et renvoie le résultat de manière asynchrone au serveur [SWS_DM_01968].
Les instances de ara::diag::TransmitCertificate sont créées via le constructeur en spécifiant un ara::core::InstanceSpecifier ainsi que le mode de concurrence ConcurrencyType[SWS_DM_01962]. Le InstanceSpecifier doit faire référence dans le manifeste à un PortPrototype typé par un DiagnosticTransmitCertificateInterface[SWS_DM_01962]. Si cette association échoue ou si l'identifiant d'instance est utilisé plusieurs fois dans le processus actuel, des violations à l'exécution telles que InstanceSpecifierMappingIntegrityViolation, PortInterfaceMappingViolation, ProcessMappingViolation ou InstanceSpecifierAlreadyInUseViolation se produisent [SWS_DM_01962].
La classe est soumise à des règles strictes de possession et d'instanciation : un gestionnaire d'authentification est conçu comme une instance unique, non copiable et non déplaçable. En conséquence, le constructeur de copie [SWS_DM_01964], l'opérateur d'assignation par copie [SWS_DM_01966] ainsi que le constructeur de déplacement [SWS_DM_01963] et l'opérateur d'assignation par déplacement [SWS_DM_01965] sont explicitement supprimés (=delete).
Le constructeur lui-même est spécifié comme étant thread-safe et sûr vis-à-vis des exceptions [SWS_DM_01962]. La libération s'effectue via le destructeur virtuel standard [SWS_DM_01967]. La nécessité d'implémenter la méthode d'exécution proprement dite Process de manière thread-safe dépend du concurrencyType sélectionné (kConcurrent ou kNotConcurrent) [SWS_DM_01962], [SWS_DM_01968].
Parcours d'utilisation
Le déroulement standard comprend l'enregistrement du gestionnaire, le traitement des certificats entrants et la désinscription ultérieure :
Proposer le service (Offer) : l'application appelle Offer() pour signaler au Diagnostic Management que les requêtes destinées à l'interface configurée peuvent être transmises à ce gestionnaire [SWS_DM_01969].
Recevoir la requête (Process) : lorsqu'une requête UDS de la sous-fonction TransmitCertificate parvient au Diagnostic Server, celui-ci transmet les données à la méthode virtuelle pure Process() de l'application [SWS_DM_01968]. La méthode reçoit l'identifiant 16 bits certificateEvaluationId, les données brutes du certificat sous la forme de ara::core::Span<ara::core::Byte const>, des métadonnées (metaInfo) ainsi qu'un cancellationHandler[SWS_DM_01968].
Évaluation et action : AUTOSAR n'imposant aucune sémantique fixe pour les certificats, la vérification et la déduction des mesures requises incombent entièrement à l'application [SWS_DM_01968]. Interprétation : l'application devrait typiquement vérifier le certificat transmis sur le plan cryptographique ou l'utiliser pour mettre à jour un magasin de clés interne. Question Q-34844f9257d074c6 (ouverte)
Arrêter le service (StopOffer) : si le gestionnaire ne doit plus recevoir de requêtes, l'application interrompt la transmission en appelant StopOffer()[SWS_DM_01970].
Des états d'erreur peuvent survenir lors de différentes phases du cycle de vie :
Offre déjà active : si Offer() est appelé alors que le service est déjà activement proposé pour cette instance, l'appel échoue et renvoie dans ara::core::Result<void> le code d'erreur DiagOfferErrc::kAlreadyOffered avec une sémantique de rollback [SWS_DM_01969]. Offer() et StopOffer() ne sont pas thread-safe et ne doivent pas être appelés de manière concurrente [SWS_DM_01969], [SWS_DM_01970].
Interruption de conversations en cours : pendant le traitement asynchrone, l'application peut interroger l'état via cancellationHandler.IsCanceled() afin de déterminer si la conversation de diagnostic a été interrompue [SWS_DM_01968]. De plus, une fonction de rappel peut être enregistrée via cancellationHandler.SetNotifier(...) afin d'être notifiée immédiatement en cas d'interruption [SWS_DM_01968].
Ce guide se base sur la spécification AUTOSAR Adaptive Platform R25-11 (module diag) et a été élaboré à l'aide d'une IA.
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.
GÉNÉRÉ PAR IAnon vérifiéModèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : db62dd9c27e2ProvenanceQuestions ouvertes (1)
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand
Via la méthode Offer, une Adaptive Application active le transfert des requêtes de diagnostic par le Diagnostic Management (DM) vers le gestionnaire compétent de la classe ara::diag::TransmitCertificate[SWS_DM_01969]. L'appel s'effectue de manière synchrone et sans paramètre ; l'interface est définie comme sûre du point de vue des exceptions (noexcept) [SWS_DM_01969]. Le type de retour utilisé est ara::core::Result<void>, ce qui permet de transmettre à l'appelant le succès de l'enregistrement ou un état d'erreur [SWS_DM_01969].
Si la fonction a déjà été appelée auparavant pour l'instance de gestionnaire concernée, un nouvel appel échoue et renvoie l'erreur spécifique DiagOfferErrc::kAlreadyOffered avec une sémantique de rollback [SWS_DM_01969], laquelle correspond à la valeur d'erreur standardisée dans DiagErrc[SWS_DM_00514]. La méthode étant explicitement spécifiée comme non thread-safe [SWS_DM_01969], les accès parallèles sur la même instance doivent être évités (interprétation : la protection contre les appels concurrents incombe au logiciel applicatif). Question Q-b44b11a0a2dcb2b4 (ouverte)
Le modèle de fonctionnement de Offer suit le concept uniforme de mise à disposition des gestionnaires de diagnostic, tel qu'il est également appliqué pour ara::diag::Authentication::Offer[SWS_DM_01130], ara::diag::CommunicationControl::Offer[SWS_DM_00809] ou ara::diag::GenericRoutine::Offer[SWS_DM_00557]. AUTOSAR précise que malgré une dénomination similaire inspirée de ara::com, il s'agit d'une implémentation de diagnostic indépendante (AUTOSAR_AP_SWS_Diagnostics §7.3.4.1.2 « Monitors »). Avant la mise à disposition par Offer, le DM ne transfère aucune requête au gestionnaire, à l'instar des services DoIP qui sont considérés comme non prêts avant l'appel [SWS_DM_01525].
Cette note d'utilisation a été générée de manière automatisée et est basée sur les spécifications de la version 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.
GÉNÉRÉ PAR IAnon vérifiéModèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : d261181b4bb6Provenance
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand
La méthode Process de la classe d'interface ara::diag::TransmitCertificate sert au traitement interne à l'application des certificats transmis par un testeur de diagnostic dans le cadre du service UDS 0x29 (Authentication) via la sous-fonction TransmitCertificate (0x04) [SWS_DM_01968], AUTOSAR_AP_SWS_Diagnostics §7.3.2.8.11.5 « Service 0x29 – transmitCertificate (0x04) ». Comme AUTOSAR ne prescrit aucune sémantique spécifique pour le certificat, la vérification du contenu et la déduction des actions requises incombent entièrement à l'application [SWS_DM_01968].
La méthode est appelée de manière asynchrone et accepte les paramètres suivants [SWS_DM_01968] :
certificateEvaluationId : identifiant d'évaluation 16 bits issu du message de requête UDS, destiné à identifier l'évaluation du certificat [SWS_DM_01968], [SWS_DM_01247].
certificateData : données de certificat transmises par le testeur sous forme de ara::core::Span<ara::core::Byte const>[SWS_DM_01968].
metaInfo : méta-informations relatives à la requête de diagnostic [SWS_DM_01968].
cancellationHandler : permet d'interroger l'état d'interruption via cancellationHandler.IsCanceled() ainsi que d'enregistrer une notification via cancellationHandler.SetNotifier() en cas d'interruption prématurée de la conversation de diagnostic [SWS_DM_01968].
Le retour s'effectue de manière asynchrone sous forme de ara::core::Future<void>[SWS_DM_01968]. Si le traitement échoue, un code de réponse négatif (NRC) approprié selon l'ISO 14229-1 doit être mis à disposition via DiagUdsNrcErrc[SWS_DM_01968]. La fonction est déclarée comme noexcept et est sûre du point de vue des exceptions (exception safe) [SWS_DM_01968].
La sécurité des threads est conditionnelle (conditional) : elle dépend du ConcurrencyType transmis au constructeur de ara::diag::TransmitCertificate[SWS_DM_01968]. Avant le transfert, le gestionnaire de diagnostic valide la requête à l'aide de la certificateEvaluationId[SWS_DM_01247].
Cette note d'utilisation a été générée automatiquement sur la base de la spécification 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.
GÉNÉRÉ PAR IAnon vérifiéModèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : 7da07a83c1d7ProvenanceQuestions ouvertes (1)
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand
La méthode StopOffer de la classe ara::diag::TransmitCertificate ([SWS_DM_01970]) met fin à la mise à disposition du service de transfert de certificats pour le Diagnostic Management (DM). L'appel désactive le transfert des messages de requête de diagnostic entrants du DM vers ce gestionnaire ([SWS_DM_01970]).
Utilisation et sémantique
L'appel s'effectue sans paramètre via la signature void StopOffer() noexcept; du fichier d'en-tête ara/diag/transmit_certificate.h ([SWS_DM_01970]). La fonction ne renvoie aucune valeur et est spécifiée comme noexcept ainsi qu'exception safe ([SWS_DM_01970]), de sorte qu'il est garanti qu'elle ne lève aucune exception.
Concurrence et restrictions
La méthode est explicitement spécifiée comme not thread-safe ([SWS_DM_01970]). Les appelants doivent donc s'assurer que les appels concurrents sur la même instance de ara::diag::TransmitCertificate sont synchronisés par des mécanismes externes. Interprétation : StopOffer devrait être appelée avant la destruction d'une instance de service ou lors d'une désactivation temporaire, afin d'empêcher l'arrivée de nouvelles requêtes pendant le changement d'état. Question Q-9ab97301565c5bf9 (ouverte)
Interaction
Le concept correspond au modèle standardisé du DM pour la désactivation du transfert de messages, tel qu'il est également défini dans des interfaces associées comme [SWS_DM_00767] (SecurityAccess), [SWS_DM_00810] (CommunicationControl) ou [SWS_DM_01017] (EcuResetRequest). Bien que cette implémentation de diagnostic spécifique au constructeur partage la nomenclature du framework de communication, elle doit être distinguée de ara::com (AUTOSAR_AP_SWS_Diagnostics §7.3.4.1.2 « Monitors »). L'élément sert à satisfaire l'exigence en amont RS_Diag_04251, sur laquelle repose également l'interface d'authentification (AUTOSAR_AP_SWS_Diagnostics §8.3.1.1.3.2 « StopOffer » ; [SWS_DM_01131]).
Ce texte a été généré par un système d'IA sur la base des documents de spécification.
GÉNÉRÉ PAR IAnon vérifiéModèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : b553bcd9da3eProvenanceQuestions ouvertes (1)
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand
Le constructeur initialise une instance de la classe ara::diag::TransmitCertificate pour le traitement de certificats dans le cadre du service UDS 0x29 (sous-fonction TransmitCertificate) [SWS_DM_01962].
Utilisation
L'appel s'effectue de manière synchrone et est spécifié comme noexcept ainsi que exception safe[SWS_DM_01962]. Deux paramètres sont transmis lors de l'appel :
specifier : un ara::core::InstanceSpecifier qui doit faire référence à un PortPrototype qui est typé dans le manifeste via un DiagnosticAuthenticationPortMapping vers un DiagnosticTransmitCertificateInterface[SWS_DM_01962].
concurrencyType : détermine via kConcurrent ou kNotConcurrent si l'interface autorise des appels concurrents de la méthode virtuelle Process ou si elle doit être traitée séquentiellement [SWS_DM_01962], [SWS_DM_01968].
Gestion des erreurs et conditions limites
La création de l'objet est thread-safe [SWS_DM_01962]. Comme une instance d'authentification doit être unique, les constructeurs de copie et de déplacement ainsi que les opérateurs d'affectation sont explicitement supprimés [SWS_DM_01963], [SWS_DM_01964], [SWS_DM_01965], [SWS_DM_01966]. En cas d'erreurs de configuration dans le manifeste ou d'utilisation en double d'un identifiant, des violations sont signalées (telles que InstanceSpecifierMappingIntegrityViolation, PortInterfaceMappingViolation, ProcessMappingViolation ou InstanceSpecifierAlreadyInUseViolation) [SWS_DM_01962]. Comme le constructeur ne lève aucune exception, ces messages devraient être signalés via le reporting d'exécution du framework ara. Question Q-140f1e794355ad96 (ouverte)
Interaction
Après la construction, l'instance doit être libérée au moyen de Offer() afin que le démon Diagnostic Management transfère les requêtes [SWS_DM_01969]. En cas de traitement réussi via Process(), le serveur répond positivement avec le paramètre CertificateVerified (0x13) [SWS_DM_01251], tandis que les erreurs entraînent des réponses UDS négatives [SWS_DM_01249]. Avec StopOffer(), le transfert est terminé [SWS_DM_01970].
Ce texte a été généré par une IA et sert de guide d'orientation. Seules les spécifications officielles d'AUTOSAR font foi.
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 · Original allemand