DEENESPTFRRUARHIKOZHNL

struct ara::diag::SovdProximityChallengeType

[SWS_DM_01482] Upstream: RS_Diag_04262

struct SovdProximityChallengeType {...};

Holds the data returned by the SovdProximityChallenge::GetChallenge()

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

User GuideAI-GENERATED

Provides the challenge bytes and the validity period for the SOVD proximity check.
AI-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: 3ac9286258b1 Provenance Open questions (3)
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

Provides the challenge bytes and the validity period for the SOVD proximity check.

The data structure ara::diag::SovdProximityChallengeType serves as the return type for SovdProximityChallenge::GetChallenge() and bundles the data required for the SOVD proximity check [SWS_DM_01482]. It provides the SOVD client with a challenge byte sequence as ara::core::Span along with the associated validity point in time valid_until [SWS_DM_01492]. The client must solve the challenge before reaching this point in time, while the referenced buffer must remain valid in memory throughout the entire duration of use.

Context

The data structure ara::diag::SovdProximityChallengeType serves within the diagnostic module (ara::diag) of the AUTOSAR Adaptive Platform as a standardized return container for security and proximity checks [SWS_DM_01482]. Specifically, the structure accommodates the result data of the method call SovdProximityChallenge::GetChallenge() AUTOSAR_AP_SWS_Diagnostics §8.56.3 “Struct: SovdProximityChallengeType”. The essential task of this structure is to provide the SOVD client (Service-Oriented Vehicle Diagnostics) with all parameters required to provide physical proof of vehicle proximity [SWS_DM_01492].

In interaction, SovdProximityChallengeType acts as a pure transfer object between the providing diagnostic instance SovdProximityChallenge and the requesting SOVD client [SWS_DM_01482]. The structure bundles two fundamental attributes: the challenge sequence challenge and the absolute expiration date valid_until AUTOSAR_AP_SWS_Diagnostics §8.56.3.1 “Public Member Variables”. Interpretation: The structure itself does not encapsulate any business logic, but acts as a pure Plain Old Data (POD) value object for stateless parameter handover. Question Q-d2f4870d4cfaf724 (open)

Lifecycle

The lifecycle of a SovdProximityChallengeType instance begins with its creation by the calling diagnostic interface SovdProximityChallenge::GetChallenge() AUTOSAR_AP_SWS_Diagnostics §8.56.3 “Struct: SovdProximityChallengeType”. The structure has value semantics, whereby it is transferred to the caller by copying or moving after the call.

Regarding ownership, an important distinction must be observed for the member variables:

  • The data element challenge is defined as ara::core::Span<ara::core::Byte> [SWS_DM_01492]. A ara::core::Span is a non-owning view of a contiguous sequence of bytes in memory. Presumably, the memory area referenced by this span must be managed by the underlying diagnostic component and must remain valid at least as long as the span is being accessed. Question (open)
  • The data element valid_until stores an absolute timestamp of type std::chrono::system_clock::time_point [SWS_DM_01491]. This timestamp directly defines the functional validity period of the challenge in the overall system.

Destruction of the struct occurs automatically according to regular C++ rules upon leaving the scope of the caller. Because the struct itself does not allocate dynamic memory, destruction is trivial, but requires attention to the lifetime of the underlying data buffer of span [SWS_DM_01492].

Usage Path

The typical usage path in the context of the SOVD proximity check is divided into a fixed sequence of retrieval, evaluation, and proof provision:

  1. A diagnostic application or the SOVD service initiates the proximity check and invokes SovdProximityChallenge::GetChallenge() AUTOSAR_AP_SWS_Diagnostics §8.56.3 “Struct: SovdProximityChallengeType”.
  2. As a return value, an instance of SovdProximityChallengeType is created, populated with the generated challenge bytes and the expiration timestamp [SWS_DM_01482].
  3. The recipient reads out challenge as a byte span in order to transmit the task to be solved to the SOVD client [SWS_DM_01492].
  4. In parallel, the timestamp valid_until is evaluated in order to define the time window for the proof [SWS_DM_01491].
  5. The SOVD client solves the challenge and transmits the proof before the point in time marked by valid_until is reached [SWS_DM_01491], [SWS_DM_01492].
Sequence of proximity challenge provision and evaluationSOVD-ClientSovdProximityChallengeSovdProximityChallengeTypeAnforderung Proximity-ChallengeExecute GetChallenge()Instantiation with challenge (Span) and valid_untilReturn SovdProximityChallengeTypeRead out challenge and valid_untilSolve challenge before expiry of valid_until

Sequence diagram: Typical sequence of challenge query and evaluation within the scope of the SOVD proximity check. Sources: [SWS_DM_01482], [SWS_DM_01491], [SWS_DM_01492], AUTOSAR_AP_SWS_Diagnostics §8.56.3 “Struct: SovdProximityChallengeType”.

Error Scenarios

When using SovdProximityChallengeType, two failure-critical constraints in particular must be considered:

  • Timeout: If the system time reaches the timestamp specified in valid_until std::chrono::system_clock::time_point [SWS_DM_01491], the challenge loses its validity. Interpretation: A solution attempt from the SOVD client arriving after expiration of valid_until is likely to be rejected as invalid by the verifying diagnostic instance, requiring a renewed invocation of SovdProximityChallenge::GetChallenge(). Question Q-ab9b44a73c189384 (open)
  • Invalid memory reference (dangling span): Because challenge is implemented as a non-owning ara::core::Span<ara::core::Byte> [SWS_DM_01492], accessing the bytes after destruction or reallocation of the underlying buffer leads to undefined behavior. The caller must ensure that the referenced byte buffer remains preserved in memory during the entire usage duration of the span.

This guide is based on the AUTOSAR specification for the Adaptive Platform (Release R25-11) and describes the structure ara::diag::SovdProximityChallengeType as a data container for SOVD proximity checks.

UML class diagram

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

G nara__diag__SovdProximityChallengeType366 «struct» SovdProximityChallengeType + challenge + valid_until

Constants

challenge variable

Challenge which has to be solved by the SOVD client to prove proximity.

valid_until variable

The time until the challenge is valid.

Documentation of constants / variables

variable challenge [SWS_DM_01492] Upstream: RS_Diag_04262

ara::core::Span<ara::core::Byte> challenge;

Challenge which has to be solved by the SOVD client to prove proximity.

Header-Datei#include "ara/diag/sovd_proximity_challenge.h"
Scopestruct ara::diag::SovdProximityChallengeType
Symbolchallenge
Typara::core::Span< ara::core::Byte >

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

Record
AUTOSAR/AP/record/SWS_DM_01492
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_01492@rel:R25-11#497a6786
Content hash
497a6786
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_01492
Status: valid/unmigrated Version: rel:R25-11#e253ee2f Versionshistorie & Revisions (1 transition, 5 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_01492@rel:R25-11#e253ee2f
Point-in-Time History:
Recorded Revisions (5):
  • R25-11rel:R25-11#497a67862026-09-30
  • R22-11rel:R22-11#ee00d0182026-10-14
  • R23-11rel:R23-11#e253ee2f2026-10-14
  • R24-11rel:R24-11#e253ee2f2026-10-14
  • R25-11rel:R25-11#e253ee2f2026-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

variable valid_until [SWS_DM_01491] Upstream: RS_Diag_04262

std::chrono::system_clock::time_point valid_until;

The time until the challenge is valid.

Header-Datei#include "ara/diag/sovd_proximity_challenge.h"
Scopestruct ara::diag::SovdProximityChallengeType
Symbolvalid_until
Typstd::chrono::system_clock::time_point

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

Record
AUTOSAR/AP/record/SWS_DM_01491
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_01491@rel:R25-11#c6564b8a
Content hash
c6564b8a
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_01491
Status: valid/unmigrated Version: rel:R25-11#486011a8 Versionshistorie & Revisions (1 transition, 5 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_01491@rel:R25-11#486011a8
Point-in-Time History:
Recorded Revisions (5):
  • R25-11rel:R25-11#c6564b8a2026-09-30
  • R22-11rel:R22-11#721ac4e82026-10-14
  • R23-11rel:R23-11#486011a82026-10-14
  • R24-11rel:R24-11#486011a82026-10-14
  • R25-11rel:R25-11#486011a82026-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