DEENESPTFRRUARHIKOZHNL

结构体 ara::crypto::SecureCounter

[SWS_CRYPT_30001] Upstream: RS_CRYPTO_02401

struct SecureCounter {...};

128 bit secure counter made up of two uint64_t’s representing the most significant and least significant bits

Header-Datei#include "ara/crypto/common/base_id_types.h"
Forwarding-Header#include "ara/crypto/crypto_fwd.h"
Scopenamespace ara::crypto

用户指南人工智能生成

提供由低位和高位两个 64 位值组成的 128 位安全计数器。
AI 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: b4749477e882 来源 未决问题(3)
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

提供由低位和高位两个 64 位值组成的 128 位安全计数器。

结构 ara::crypto::SecureCounter 在 crypto 模块中用作 128 位安全计数器,由用于最低有效位([SWS_CRYPT_30002])和最高有效位([SWS_CRYPT_30003])的两个 64 位整数组成。调用组件使用此数据类型表示稳健的计数器读数,其中子字之间的自增和进位逻辑必须手动控制。作为纯值类型,该结构不提供内部同步,因此多线程环境中的并发访问必须进行外部协调。

上下文

结构 ara::crypto::SecureCounter 在 AUTOSAR Adaptive Platform 的 crypto 模块中充当表示 128 位宽加密计数器的基本数据类型。该数据结构在头文件 ara/crypto/common/base_id_types.h 中定义,由两个 std::uint64_t 类型的 64 位整数组成:根据 [SWS_CRYPT_30002] 用于最低有效 64 位的数据元素 mLSQW,以及根据 [SWS_CRYPT_30003] 用于最高有效 64 位的数据元素 mMSQW。在安全架构中,这种数量级的计数器值用于确保消息的时间新鲜度并有效抵御重放攻击。解释:作为标准化数据类型,该结构可能主要用作由加密协议、驱动程序和硬件级安全组件交换的单调计数器或序列号的接口与存储格式。 问题 Q-57197e2ecabd5cab (未决)由于规范将 ara::crypto::SecureCounter 声明为无直接算法绑定的纯数据容器,上层直接与这两个子成员交互,以检查、持久化计数器读数或将其嵌入协议消息中。

生命周期

作为经典 C++ 结构(struct),ara::crypto::SecureCounter 遵循轻量级生命周期,没有动态内存管理或有状态管理逻辑。其实例化通常直接在栈上作为局部值类型进行,或作为字段元素嵌入在更高层上下文中(如安全事件头或加密会话描述符)。据推测,该结构作为简单数据容器具有规则的 C++ 值语义,具有隐式复制和赋值行为,但不提供用于并发访问的内部同步机制。 问题 Q-a4d95542ea77870d (未决)对开发人员而言,这意味着来自不同线程的同时读写访问必须通过外部同步原语进行保护,以防止计数器更新时出现数据不一致。实例的生命周期在离开相应作用域时自动结束,无需显式释放或清理。

使用路径

典型使用路径包括通过两个结构组件进行初始化、逐步自增以及读取组合的 128 位计数器值。调用方首先实例化该结构,并为低位子字 mLSQW([SWS_CRYPT_30002])和高位子字 mMSQW([SWS_CRYPT_30003])分配初始计数器读数。在连续计数过程中,主要对低位字 mLSQW 进行自增。当 mLSQW 达到 64 位范围的最大值时,会对高位字 mMSQW 进行计算进位,将其加一。解释:自增和进位处理等算术操作可能在调用方实现,因为规范未为 ara::crypto::SecureCounter 声明自身的成员函数。 问题 Q-68babc70b53a5745 (未决)在传输或持久化时,这两个 64 位成员会被结构化序列化,此时必须注意一致的字节序和字序,以排除接收方对总值产生误解。

错误场景

由于 ara::crypto::SecureCounter 是没有自身方法的纯数据结构,因此该结构在操作时既不抛出异常,也不返回 ara::core::ErrorCode 类型的错误规范或错误码。因此,错误场景并非产生于结构本身内部,而是源于调用软件层对两个子字的不正确处理。一个关键的错误场景是总计数器未被注意到的算术溢出,即当 mLSQW([SWS_CRYPT_30002])和 mMSQW([SWS_CRYPT_30003])都耗尽其最大值范围并回绕归零时,这可能在重放保护机制中导致安全漏洞。其他前置和后置条件违规发生在更新时遗漏从 mLSQW 到 mMSQW 的进位,或者未完全初始化导致未定义的内存值进入计算时。因此,调用组件在进一步处理之前必须确保两个数据元素均已一致初始化,且进位逻辑实现无误。

本文由 AI 基于 AUTOSAR 规范 R25-11 生成。

UML 类图

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

G nara__crypto__SecureCounter126 «struct» SecureCounter + mLSQW + mMSQW

常量

mLSQW 变量

least significant 64 bits

mMSQW 变量

most significant 64 bits

常量 / 变量文档

变量 mLSQW [SWS_CRYPT_30002] Upstream: RS_CRYPTO_02401

std::uint64_t mLSQW;

least significant 64 bits

Header-Datei#include "ara/crypto/common/base_id_types.h"
Scopestruct ara::crypto::SecureCounter
SymbolmLSQW
Typstd::uint64_t

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

Record
AUTOSAR/AP/record/SWS_CRYPT_30002
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_CRYPT_30002@rel:R25-11#cebe22c5
Content hash
cebe22c5
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Cryptography.pdf#nameddest=SWS_CRYPT_30002
Status: valid/unmigrated Version: rel:R25-11#9c1bba58 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_CRYPT_30002@rel:R25-11#9c1bba58
Point-in-Time History:
Recorded Revisions (8):
  • R25-11rel:R25-11#cc293c042026-09-30
  • R19-11rel:R19-11#5e8b1de42026-10-14
  • R20-11rel:R20-11#2cbc47402026-10-14
  • R21-11rel:R21-11#2cbc47402026-10-14
  • R22-11rel:R22-11#7b43d24b2026-10-14
  • R23-11rel:R23-11#2949b7102026-10-14
  • R24-11rel:R24-11#2949b7102026-10-14
  • R25-11rel:R25-11#9c1bba582026-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

变量 mMSQW [SWS_CRYPT_30003] Upstream: RS_CRYPTO_02401

std::uint64_t mMSQW;

most significant 64 bits

Header-Datei#include "ara/crypto/common/base_id_types.h"
Scopestruct ara::crypto::SecureCounter
SymbolmMSQW
Typstd::uint64_t

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

Record
AUTOSAR/AP/record/SWS_CRYPT_30003
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_CRYPT_30003@rel:R25-11#2b576ba0
Content hash
2b576ba0
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Cryptography.pdf#nameddest=SWS_CRYPT_30003
Status: valid/unmigrated Version: rel:R25-11#f08f9154 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_CRYPT_30003@rel:R25-11#f08f9154
Point-in-Time History:
Recorded Revisions (8):
  • R25-11rel:R25-11#2c3bfe792026-09-30
  • R19-11rel:R19-11#5f040e0b2026-10-14
  • R20-11rel:R20-11#df9cc1732026-10-14
  • R21-11rel:R21-11#64ce58302026-10-14
  • R22-11rel:R22-11#f838a21c2026-10-14
  • R23-11rel:R23-11#e9d5ab982026-10-14
  • R24-11rel:R24-11#0cbd132d2026-10-14
  • R25-11rel:R25-11#f08f91542026-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