DEENESPTFRRUARHIKOZHNL

estructura 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

Guía del usuarioGENERADO POR IA

Proporciona un contador de seguridad de 128 bits compuesto por dos valores de 64 bits para bits de menor y mayor peso.
GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: b4749477e882 Procedencia Preguntas abiertas (3)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

Proporciona un contador de seguridad de 128 bits compuesto por dos valores de 64 bits para bits de menor y mayor peso.

La estructura ara::crypto::SecureCounter sirve en el módulo crypto como contador de seguridad de 128 bits, el cual se compone de dos enteros de 64 bits para los bits menos significativos ([SWS_CRYPT_30002]) y los bits más significativos ([SWS_CRYPT_30003]). Los componentes invocadores utilizan este tipo de datos para representar estados de contador robustos, debiendo gestionarse manualmente los incrementos y la lógica de acarreo entre las palabras parciales. Al ser un tipo de valor puro, la estructura no ofrece sincronización interna, por lo que los accesos concurrentes en entornos multihilo deben coordinarse obligatoriamente de forma externa.

Contexto

La estructura ara::crypto::SecureCounter actúa dentro del módulo crypto de AUTOSAR Adaptive Platform como tipo de datos fundamental para la representación de un contador criptográfico de 128 bits de ancho. Definida en el archivo de cabecera ara/crypto/common/base_id_types.h, la estructura de datos se compone de dos enteros de 64 bits del tipo std::uint64_t: el elemento de datos mLSQW para los 64 bits menos significativos según [SWS_CRYPT_30002], así como el elemento de datos mMSQW para los 64 bits más significativos según [SWS_CRYPT_30003]. En arquitecturas de seguridad, los valores de contador de esta magnitud sirven para garantizar la frescura temporal de los mensajes y repeler eficazmente ataques de repetición. Interpretación: como tipo de datos estandarizado, es de suponer que la estructura sirve principalmente como formato de interfaz y de almacenamiento para contadores monótonos o números de secuencia intercambiados por protocolos criptográficos, controladores y componentes de seguridad cercanos al hardware. Pregunta Q-57197e2ecabd5cab (abierta) Dado que la especificación declara ara::crypto::SecureCounter como un mero contenedor de datos sin vinculación algorítmica directa, las capas superiores interactúan directamente con ambos miembros parciales para comprobar estados de contador, persistirlos o integrarlos en mensajes de protocolo.

Ciclo de vida

Como estructura clásica de C++ (struct), ara::crypto::SecureCounter está sujeta a un ciclo de vida ligero sin gestión dinámica de memoria ni lógica de administración con estado. La instanciación se realiza habitualmente de forma directa en la pila como tipo de valor local o incrustada como elemento de campo en contextos de nivel superior, tales como cabeceras de eventos de seguridad o descriptores de sesión criptográfica. Es de suponer que la estructura, como simple contenedor de datos, presenta una semántica de valores regular de C++ con comportamiento implícito de copia y asignación, pero no ofrece mecanismos internos de sincronización para el acceso concurrente. Pregunta Q-a4d95542ea77870d (abierta) Para los desarrolladores, esto significa que los accesos simultáneos de lectura y escritura procedentes de diferentes hilos deben asegurarse mediante primitivas de sincronización externas para evitar inconsistencias de datos durante las actualizaciones del contador. El ciclo de vida de una instancia finaliza automáticamente al salir del ámbito correspondiente, sin que sean necesarias liberaciones o limpiezas explícitas.

Ruta de uso

La ruta de uso típica comprende la inicialización, el incremento gradual y la lectura del valor de contador combinado de 128 bits a través de los dos componentes estructurales. El invocador instancia primero la estructura y asigna los estados de contador iniciales a la palabra parcial de menor peso mLSQW ([SWS_CRYPT_30002]) y a la palabra parcial de mayor peso mMSQW ([SWS_CRYPT_30003]). Durante los procesos de conteo continuos, se incrementa principalmente la palabra de menor peso mLSQW. Si mLSQW alcanza el valor máximo del rango de 64 bits, se produce un acarreo aritmético hacia la palabra de mayor peso mMSQW, la cual se incrementa en uno. Interpretación: es de suponer que las operaciones aritméticas, como el incremento y el tratamiento del acarreo, se implementan en el lado del invocador, ya que la especificación no declara funciones miembro propias para ara::crypto::SecureCounter. Pregunta Q-68babc70b53a5745 (abierta) Durante la transmisión o la persistencia, los dos miembros de 64 bits se serializan de forma estructurada, debiéndose prestar atención a un orden de bytes y palabras consistente para excluir interpretaciones erróneas del valor total en el lado receptor.

Escenarios de error

Dado que ara::crypto::SecureCounter representa una estructura de datos pura sin métodos propios, la estructura no lanza excepciones durante las operaciones ni devuelve especificaciones de error o códigos de error del tipo ara::core::ErrorCode. Por consiguiente, los escenarios de error no se originan dentro de la estructura misma, sino por un tratamiento erróneo de las dos palabras parciales en las capas de software invocadoras. Un escenario de error crítico es el desbordamiento aritmético inadvertido del contador total cuando tanto mLSQW ([SWS_CRYPT_30002]) como mMSQW ([SWS_CRYPT_30003]) agotan su rango de valores máximo y se reinician a cero, lo que puede provocar vulnerabilidades de seguridad en los mecanismos de protección contra repetición. Se producen infracciones adicionales de precondiciones y poscondiciones si en las actualizaciones se omite el acarreo de mLSQW a mMSQW o si, debido a una inicialización incompleta, entran valores de memoria no definidos en los cálculos. Por lo tanto, los componentes invocadores deben asegurarse, antes del procesamiento posterior, de que ambos elementos de datos estén inicializados de forma coherente y de que las lógicas de acarreo estén implementadas sin errores.

Este texto ha sido generado por una IA a partir de la especificación AUTOSAR R25-11.

Diagrama de clases UML

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

G nara__crypto__SecureCounter126 «struct» SecureCounter + mLSQW + mMSQW

Constantes

mLSQW variable

least significant 64 bits

mMSQW variable

most significant 64 bits

Documentación de las constantes / variables

variable 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#cc293c04
Content hash
cc293c04
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

variable 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#2c3bfe79
Content hash
2c3bfe79
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