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 GuideAI-GENERATED

Serves to provide and validate seed and key values for diagnostic security accesses.
AI-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: 1943cee6c64f Provenance Open questions (1)
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

Serves to provide and validate seed and key values for diagnostic security accesses.

The class ara::diag::SecurityAccess serves the application-specific implementation of diagnostic security accesses according to UDS Service 0x27 ([SWS_DM_00762]). After activation via Offer(), the handler receives requests for seed provision and validates transmitted key values asynchronously ([SWS_DM_00766]). As an uncopyable and unmovable instance, the interface requires explicit configuration of the concurrency behavior in the constructor, while processing errors are reported to the diagnostic system via standardized UDS return codes ([SWS_DM_00765]).

Context

The class ara::diag::SecurityAccess represents the interface for implementing UDS Service 0x27 (SecurityAccess) in AUTOSAR Adaptive. It acts as a link between the internal Diagnostic Management (DM) and the application-specific authentication logic of an adaptive application. When an external diagnostic tester requests a security-relevant diagnostic operation, it transmits corresponding diagnostic messages according to ISO 14229-1 to the vehicle (AUTOSAR_AP_SWS_Diagnostics §4.1 “Limitations of sub-functions of 0x19 ReadDTCInformation”). Diagnostic Management receives these requests and forwards the seed request and key comparison to the registered instance of ara::diag::SecurityAccess ([SWS_DM_00766]).

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

Context diagram: Classification of ara::diag::SecurityAccess between diagnostic tester, Diagnostic Management, and application. Sources: [SWS_DM_00762], [SWS_DM_00766], AUTOSAR_AP_SWS_Diagnostics §4.1 “Limitations of sub-functions of 0x19 ReadDTCInformation”

Lifecycle

Instantiation is performed via the constructor by specifying an ara::core::InstanceSpecifier as well as the concurrency behavior concurrencyType ([SWS_DM_00762]). The instance identifier links the object to a port prototype, which must be typed by a DiagnosticSecurityLevelInterface ([SWS_DM_00762]). The parameter concurrencyType definitively defines whether the method calls must be processed in a thread-safe (kConcurrent) or non-thread-safe (kNotConcurrent) manner ([SWS_DM_00762]).

In terms of ownership semantics, the class is designed as a single instance: both copy constructor ([SWS_DM_01617]) and copy assignment operator ([SWS_DM_01615]) as well as move constructor ([SWS_DM_01618]) and move assignment operator ([SWS_DM_01616]) are deleted (=delete). After creation, the instance is in an inactive state until it is registered with the DM via Offer() ([SWS_DM_00766]). Prior to termination, StopOffer() disables the forwarding of requests ([SWS_DM_00767]). Interpretation: StopOffer() is likely always to be called before the object is destroyed by the virtual destructor ([SWS_DM_00763]) in order to ensure that ongoing requests are deregistered with the DM. Question Q-3bbb715f727e373a (open)

Usage Path

The typical usage sequence of a derived handler implementation comprises the following steps:

  1. Activation: The application instantiates the derived class and calls Offer() to enable the forwarding of diagnostic requests by the DM ([SWS_DM_00766]).
  2. Seed provision: If a diagnostic request for seed generation arrives, the DM calls the method GetSeed ([SWS_DM_00764]). The application processes the passed securityAccessDataRecord, takes into account the cancellationHandler, and returns the calculated seed asynchronously via a ara::core::Future<ara::core::Vector<std::uint8_t>> ([SWS_DM_00764]). The buffer of the passed data span remains valid until the promise is fulfilled or until cancellation ([SWS_DM_00764]).
  3. Key validation: As soon as the diagnostic tester transmits the calculated key, the DM calls CompareKey ([SWS_DM_00765]). The application checks the parameter key and transmits the result asynchronously via a ara::core::Future<KeyCompareResultType> ([SWS_DM_00765]).
  4. Deactivation: To terminate diagnostic operation, the application calls StopOffer() ([SWS_DM_00767]).
Security authentication sequence via SecurityAccessApplicationara::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: Verify keyCompareKey(key, metaInfo, cancellationHandler)Check keyFuture<KeyCompareResultType>Use Case: DeaktivierungStopOffer()Dienst deregistrieren

Sequence diagram: Interaction cycle from activation via GetSeed and CompareKey through to deactivation. Sources: [SWS_DM_00764], [SWS_DM_00765], [SWS_DM_00766], [SWS_DM_00767]

Error Scenarios

When using ara::diag::SecurityAccess, several error levels are specified:

  • Constructor and model violations: If the InstanceSpecifier cannot be resolved in the model or does not reference a PortPrototype, an InstanceSpecifierMappingIntegrityViolation is reported ([SWS_DM_00762]). If the referenced port is not typed by a DiagnosticSecurityLevelInterface, an PortInterfaceMappingViolation is present ([SWS_DM_00762]). If the matching modeled process is missing at runtime, an ProcessMappingViolation occurs, and in case of multiple uses of the same identifier within the process, an InstanceSpecifierAlreadyInUseViolation is triggered ([SWS_DM_00762]).
  • State error during offer: A renewed call to Offer() while the service offer is already active fails and returns the error DiagOfferErrc::kAlreadyOffered with rollback semantics ([SWS_DM_00766]).
  • Negative UDS responses: If the generation of the seed or the key verification fails, the application must report an appropriate Negative Response Code (NRC) in accordance with ISO 14229-1 via DiagUdsNrcErrc ([SWS_DM_00764], [SWS_DM_00765]).
  • Cancellation of the diagnostic connection: Via the parameter cancellationHandler, the application can use IsCanceled() to check whether the conversation was cancelled, or register a notification function for a cancellation via SetNotifier() ([SWS_DM_00764], [SWS_DM_00765]).
  • Persisting failed attempts: After each failed attempt to change the security level, Diagnostic Management requires persistent storage of the counter in order to survive tampering or resets (AUTOSAR_AP_SWS_Diagnostics §4.1 “Limitations of sub-functions of 0x19 ReadDTCInformation”, [SWS_DM_00479]).

This guide is based on the AUTOSAR Adaptive R25-11 specification and summarizes the requirements for the ara::diag::SecurityAccess class.

Member map

Constructors and destructor

2

Operators

1

Class diagram

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

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

Detail view

Select an entry in the outline.

Constructors and destructor

SecurityAccess function 3

Constructor of SecurityAccess.

Overloads 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;

Methods

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;

Operators

operator= function 2

SecurityAccess shall be a single not assignable instance.

Overloads = 2

Method documentation

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.

AI-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: 7e880a8e2b3a Provenance
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

use

The pure virtual method CompareKey from class ara::diag::SecurityAccess [SWS_DM_00765] is implemented application-side to validate the key transmitted by the client in UDS service 0x27 (SecurityAccess) SWS Diagnostics §7.3.2.8.9 “Service 0x27 – SecurityAccess”. Together with GetSeed, it forms the basis for the static seed-key mechanism according to ISO 14229-1 [SWS_DM_00863].

The parameters of the function include:

  • key: A ara::core::Span<const std::uint8_t> to the key data to be verified. The buffer remains valid until the associated promise is fulfilled or processing is canceled via cancellationHandler [SWS_DM_00765].
  • metaInfo: Meta-information of the incoming diagnostic request [SWS_DM_00765].
  • cancellationHandler: Enables querying a cancellation via cancellationHandler.IsCanceled as well as registering a notification function via cancellationHandler.SetNotifier upon cancellation of conversation [SWS_DM_00765].

The check result is provided asynchronously via ara::core::Future<KeyCompareResultType> [SWS_DM_00765].

Error Handling and Interaction

If key comparison fails or an error occurs during processing, an appropriate Negative Response Code (NRC) in accordance with ISO 14229-1 must be passed via the future using DiagUdsNrcErrc [SWS_DM_00765]. If the requested sub-function is not configured for CompareKey, the request is answered with NRC 0x12 (kSubFunctionNotSupported) [SWS_DM_00363]. The Diagnostic Server counts failed attempts [SWS_DM_00270] and compares them with threshold values [SWS_DM_00271].

If security access is successfully unlocked, the server updates the security level internally [SWS_DM_00846], resets the failed attempt counter [SWS_DM_00270], and reports the security event SEV_UDS_SECURITY_ACCESS_SUCCESSFUL to the IdsM [SWS_DM_02019].

Concurrency and Limitations

The interface is declared as noexcept and exception safe [SWS_DM_00765]. Thread safety is conditional: whether the implementation must be thread-safe is determined via the ConcurrencyType passed in the constructor of SecurityAccess [SWS_DM_00765].

This usage note was generated by an AI based on the AUTOSAR specification.

Implementer's Guide to follow (complexity 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.

AI-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: d92bef6dc534 Provenance
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

use

The pure virtual method ara::diag::SecurityAccess::GetSeed is called by the diagnostic server instance as soon as a UDS request for service 0x27 SecurityAccess is received and the transmitted subfunction value matches the configured requestSeedId [SWS_DM_00863]. This is part of the standard-compliant implementation of service 0x27 according to ISO 14229-1 [SWS_DM_00236].

The call passes the payload provided by the diagnostic client via parameter securityAccessDataRecord (as ara::core::Span), the context information in metaInfo, and an object of type CancellationHandler [SWS_DM_00764]. If the client has sent no data, the data span is passed empty [SWS_DM_00863]. The passed data remains valid until the associated promise is fulfilled or processing is canceled [SWS_DM_00764].

Asynchronous Semantics and Concurrency

The function asynchronously returns a ara::core::Future<ara::core::Vector<std::uint8_t>> containing the generated seed [SWS_DM_00764]. Via cancellationHandler, the application can check by means of IsCanceled whether the conversation was canceled, or register a notification via SetNotifier [SWS_DM_00764]. A static seed mechanism according to ISO 14229-1 must also be implemented application-side in GetSeed SWS Diagnostics §7.3.2.8.9 “Service 0x27 – SecurityAccess”.

Regarding concurrency, the method is conditionally thread-safe: Whether the implementation must be thread-safe is determined via ConcurrencyType passed to the constructor of SecurityAccess SWS Diagnostics §8.24.2.1.3.2 “GetSeed”.

Error handling

If no valid seed can be determined, the future must be completed with a matching Negative Response Code (NRC) according to ISO 14229-1 via DiagUdsNrcErrc [SWS_DM_00764]. The interface is declared as noexcept and exception-safe [SWS_DM_00764].

This usage note was created by an AI based on AUTOSAR specification R25-11.

Implementer's Guide to follow (complexity 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.

AI-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: 03e774f47039 Provenance Open questions (1)
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

use

The ara::diag::SecurityAccess::Offer method ([SWS_DM_00766]) from the header ara/diag/security_access.h enables the Diagnostic Manager (DM) to forward incoming request messages to the registered handler for security access. The call is synchronous without input parameters and returns a ara::core::Result<void>.

Error handling

In case of an error, the return object provides an error code. If the service is already registered on the instance, DiagOfferErrc::kAlreadyOffered is returned ([SWS_DM_00766]). The function is declared as noexcept and guarantees exception safety (exception safe).

Concurrency and Limitations

The interface is specified as not thread-safe (not thread-safe) ([SWS_DM_00766]). Concurrent calls on the same instance must be synchronized by the application. Interpretation: Multiple uncoordinated calls without previously revoking the offer are likely to always be rejected with kAlreadyOffered. Question Q-848ccd3c78403eea (open)

Interaction

Offering functionality via Offer follows the uniform activation pattern of AUTOSAR Adaptive diagnostics, as is also defined for ServiceValidation ([SWS_DM_00776]) or DoIPGroupIdentification ([SWS_DM_00725]). Despite having the same name as communication interfaces, it is a diagnostic-specific implementation that must not be mixed with ara::com (SWS Diagnostics §7.3.4.1.2 “Monitors”).

This text was generated by an AI based on the AUTOSAR R25-11 specification.

Implementer's Guide to follow (complexity 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.

AI-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: 6e8a7c45e17d Provenance Open questions (1)
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

use

The explicit constructor initializes an instance of ara::diag::SecurityAccess synchronously and exception-safely ([SWS_DM_00762]). As parameters, it takes a reference to a ara::core::InstanceSpecifier as well as a ConcurrencyType. The parameter specifier must reference a modeled PortPrototype that is typed by a DiagnosticSecurityLevelInterface. Via concurrencyType, it is defined whether the callback methods of the interface are processed concurrently (kConcurrent) or non-concurrently (kNotConcurrent).

Error handling

The function is declared with noexcept ([SWS_DM_00762]). In case of misconfigurations of the modeling, the following violations can occur:

  • InstanceSpecifierMappingIntegrityViolation: The InstanceSpecifier cannot be resolved in the execution context or does not refer to a PortPrototype.
  • PortInterfaceMappingViolation: The referenced PortPrototype is not typed as DiagnosticSecurityLevelInterface.
  • ProcessMappingViolation: No matching modeled process exists at runtime for the instance identifier.
  • InstanceSpecifierAlreadyInUseViolation: The InstanceSpecifier is already being used within the process.

Interpretation: The occurrence of such a violation is likely to lead framework-internally to a runtime abort or security handling, since the constructor does not report error codes via a return value. Question Q-de6e36dc7947326e (open)

Concurrency and Limitations

The constructor itself is specified as thread-safe ([SWS_DM_00762]). Copy and move constructors as well as the associated assignment operators are explicitly deleted ([SWS_DM_01617], [SWS_DM_01618], [SWS_DM_01615], [SWS_DM_01616]); an instance can thus neither be copied nor moved. The concurrencyType passed to the constructor determines whether the virtual methods GetSeed ([SWS_DM_00764]) and CompareKey ([SWS_DM_00765]) must be provided thread-safely. The destructor, on the other hand, is not thread-safe ([SWS_DM_00763]).

Interaction

After instantiation, the application must call Offer ([SWS_DM_00766]) so that the Diagnostic Server (DM) forwards incoming UDS requests for service 0x27 (SWS Diagnostics §7.3.2.8.9 “Service 0x27 – SecurityAccess”, [SWS_DM_00236]). If the subfunction matches, the server forwards requests to GetSeed ([SWS_DM_00863]). Forwarding can be deactivated again with StopOffer ([SWS_DM_00767]).

This usage note was generated automatically based on the AUTOSAR specification R25-11.

Implementer's Guide to follow (complexity 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.

AI-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: cc611929a4e2 Provenance
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

use

The member function StopOffer of class ara::diag::SecurityAccess (header ara/diag/security_access.h) serves to disable the forwarding of incoming request messages from Diagnostic Management (DM) to the instance [SWS_DM_00767]. The call is synchronous, accepts no parameters, and returns no value (void) [SWS_DM_00767].

Error handling

The function is declared with noexcept and classified as exception safe (exception safe) [SWS_DM_00767]. Neither error codes nor C++ exceptions are reported; malfunction or an exceptional state during deregistration is not provided for in the interface specification [SWS_DM_00767].

Concurrency and Limitations

According to the specification, StopOffer is not thread-safe (not thread-safe) [SWS_DM_00767]. If multiple threads of an Adaptive Application access the same instance of ara::diag::SecurityAccess concurrently, the call must be synchronized externally.

Interaction

The method is part of a cross-module functional pattern in the DM area. Similar StopOffer methods exist for numerous other diagnostic services such as:

Although the naming is modeled after service provision in ara::com, it is an independent diagnostic implementation for controlling message flow within ara::diag AUTOSAR_AP_SWS_Diagnostics §7.3.4.1.2 “Monitors”.

This usage note was generated automatically based on the AUTOSAR specification for R25-11.

Implementer's Guide to follow (complexity 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 .

AI-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: 34fedca7e76c Provenance Open questions (1)
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

The virtual destructor ~SecurityAccess [SWS_DM_00763] terminates the lifecycle of an instance of service class ara::diag::SecurityAccess in the Diagnostics module AUTOSAR_AP_SWS_Diagnostics §8.24.2.1.1.3 “Destructor”. The interface is provided via header #include "ara/diag/security_access.h" [SWS_DM_00763]. Execution is synchronous, with the function neither accepting parameters nor returning a value [SWS_DM_00763].

Regarding error handling, the operation is classified as exception safe and declared with noexcept [SWS_DM_00763]. Consequently, it does not throw exceptions. Specific error codes and error messages to development or diagnostic error managers (DET or DEM) are not provided in the specification for the destruction of the object [SWS_DM_00763].

Regarding concurrency, the function is explicitly classified as not thread-safe [SWS_DM_00763]. Destruction of the object must never occur simultaneously with calls to other methods on the same instance. As an interpretation: It is likely required to orderly terminate all running diagnostic and security access activities of this instance prior to destruction, since simultaneous accesses lead to undefined behavior. Question Q-12c13e3eebd9e574 (open)

In interaction with the platform, the function serves to implement upstream requirements RS_AP_00134 and RS_Diag_04005 AUTOSAR_AP_SWS_Diagnostics §8.24.2.1.1.3 “Destructor”.

Automatically generated usage note based on specification AUTOSAR Adaptive R25-11.

Implementer's Guide to follow (complexity 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