DEENESPTFRRUARHIKOZHNL

estrutura 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

Guia do utilizadorGERADO POR IA

Disponibiliza um contador de segurança de 128 bits a partir de dois valores de 64 bits para os bits de ordem inferior e superior.
GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: b4749477e882 Procedência Perguntas em aberto (3)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

Disponibiliza um contador de segurança de 128 bits a partir de dois valores de 64 bits para os bits de ordem inferior e superior.

A estrutura ara::crypto::SecureCounter serve no módulo crypto como um contador de segurança de 128 bits, que consiste em dois inteiros de 64 bits para os bits menos significativos ([SWS_CRYPT_30002]) e os bits mais significativos ([SWS_CRYPT_30003]). Componentes chamadores utilizam este tipo de dados para representar estados de contagem robustos, sendo que incrementos e lógicas de transporte (carry) entre as subpalavras devem ser controlados manualmente. Como um tipo de valor puro, a estrutura não oferece sincronização interna, razão pela qual acessos paralelos em ambientes multithreading devem obrigatoriamente ser coordenados externamente.

Contexto

A estrutura ara::crypto::SecureCounter atua dentro do módulo crypto da AUTOSAR Adaptive Platform como um tipo de dados fundamental para a representação de um contador criptográfico de 128 bits de largura. Definida no arquivo de cabeçalho ara/crypto/common/base_id_types.h, a estrutura de dados é composta por dois inteiros de 64 bits do tipo std::uint64_t: o elemento de dados mLSQW para os 64 bits menos significativos de acordo com [SWS_CRYPT_30002], bem como o elemento de dados mMSQW para os 64 bits mais significativos de acordo com [SWS_CRYPT_30003]. Em arquiteturas de segurança, valores de contagem dessa ordem de grandeza servem para assegurar a atualidade temporal das mensagens e repelir eficazmente ataques de repetição (replay attacks). Interpretação: Como um tipo de dados padronizado, a estrutura provavelmente deve servir primariamente como formato de interface e de armazenamento para contadores monótonos ou números de sequência que são trocados por protocolos criptográficos, drivers e componentes de segurança próximos ao hardware. Pergunta Q-57197e2ecabd5cab (aberta) Como a especificação declara ara::crypto::SecureCounter como um contêiner puro de dados sem vinculação algorítmica direta, as camadas superiores interagem diretamente com ambos os membros parciais para verificar, persistir ou incorporar estados de contagem em mensagens de protocolo.

Ciclo de vida

Como uma estrutura clássica de C++ (struct), ara::crypto::SecureCounter está sujeita a um ciclo de vida leve, sem gerenciamento dinâmico de memória ou lógica de gerenciamento com estado. A instanciação ocorre usualmente de forma direta na pilha (stack) como um tipo de valor local ou incorporada como um elemento de campo em contextos superiores, tais como cabeçalhos de eventos de segurança ou descritores de sessão criptográfica. Presumivelmente, a estrutura, como um simples contêiner de dados, exibe uma semântica de valor regular de C++ com comportamento implícito de cópia e atribuição, mas não oferece mecanismos internos de sincronização para acesso concorrente. Pergunta Q-a4d95542ea77870d (aberta) Para os desenvolvedores, isso significa que acessos simultâneos de leitura e escrita a partir de threads diferentes devem ser protegidos por primitivas externas de sincronização a fim de evitar inconsistências de dados em atualizações do contador. O ciclo de vida de uma instância termina automaticamente ao sair do respectivo escopo, não sendo necessárias liberações ou limpezas explícitas.

Caminho de utilização

O caminho típico de uso engloba a inicialização, o incremento passo a passo, bem como a leitura do valor combinado do contador de 128 bits por meio de ambos os componentes estruturais. Um chamador instancia inicialmente a estrutura e atribui os estados iniciais do contador à subpalavra de ordem inferior mLSQW ([SWS_CRYPT_30002]) e à subpalavra de ordem superior mMSQW ([SWS_CRYPT_30003]). Em operações contínuas de contagem, incrementa-se primariamente a palavra de ordem inferior mLSQW. Caso mLSQW atinja o valor máximo da faixa de 64 bits, ocorre um transporte aritmético (carry) para a palavra de ordem superior mMSQW, a qual é incrementada em um. Interpretação: As operações aritméticas, como incremento e tratamento de transporte, provavelmente devem ser implementadas no lado do chamador, já que a especificação não declara funções-membro próprias para ara::crypto::SecureCounter. Pergunta Q-68babc70b53a5745 (aberta) Na transmissão ou persistência, ambos os membros de 64 bits são serializados de maneira estruturada, devendo-se atentar para uma ordem consistente de bytes e palavras a fim de excluir interpretações errôneas do valor total no lado do receptor.

Cenários de erro

Como ara::crypto::SecureCounter representa uma estrutura de dados pura sem métodos próprios, a estrutura não lança exceções em operações nem retorna especificações de erro ou códigos de erro do tipo ara::core::ErrorCode. Cenários de erro, portanto, não se originam dentro da própria estrutura, mas sim pelo tratamento incorreto de ambas as subpalavras nas camadas de software chamadoras. Um cenário crítico de erro é o overflow aritmético despercebido do contador total, quando tanto mLSQW ([SWS_CRYPT_30002]) quanto mMSQW ([SWS_CRYPT_30003]) esgotam suas faixas de valores máximas e retornam a zero, o que pode levar a brechas de segurança em mecanismos de proteção contra repetição. Outras violações de pré- e pós-condições ocorrem quando o transporte de mLSQW para mMSQW é omitido em atualizações ou quando valores indefinidos de memória entram nos cálculos em caso de inicialização incompleta. Componentes chamadores devem, portanto, assegurar antes do processamento posterior que ambos os elementos de dados estejam inicializados de forma consistente e que as lógicas de transporte estejam implementadas sem erros.

Este texto foi gerado por uma IA com base na especificação AUTOSAR R25-11.

Diagrama de classes UML

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

G nara__crypto__SecureCounter126 «struct» SecureCounter + mLSQW + mMSQW

Constantes

mLSQW variável

least significant 64 bits

mMSQW variável

most significant 64 bits

Documentação das constantes / variáveis

variável 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#18059846
Content hash
18059846
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

variável 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#f0c23330
Content hash
f0c23330
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