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

Руководство пользователяСОЗДАНО ИИ

Предоставляет 128-битный счетчик безопасности из двух 64-битных значений для младших и старших битов.
СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: b4749477e882 Происхождение Открытые вопросы (3)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Предоставляет 128-битный счетчик безопасности из двух 64-битных значений для младших и старших битов.

Структура ara::crypto::SecureCounter служит в модуле crypto 128-битным счетчиком безопасности, состоящим из двух 64-битных целых чисел для наименее значащих битов ([SWS_CRYPT_30002]) и наиболее значащих битов ([SWS_CRYPT_30003]). Вызывающие компоненты используют этот тип данных для представления надежных значений счетчика, при этом инкрементированием и логикой переноса между полусловами необходимо управлять вручную. Будучи чисто семантическим типом значений, структура не предоставляет внутренней синхронизации, из-за чего параллельный доступ в многопоточных окружениях должен обязательно координироваться извне.

Контекст

Структура ara::crypto::SecureCounter функционирует внутри модуля crypto AUTOSAR Adaptive Platform как базовый тип данных для представления 128-битного криптографического счетчика. Определенная в заголовочном файле ara/crypto/common/base_id_types.h, данная структура данных состоит из двух 64-битных целых чисел типа std::uint64_t: элемента данных mLSQW для младших 64 бит согласно [SWS_CRYPT_30002], а также элемента данных mMSQW для старших 64 бит согласно [SWS_CRYPT_30003]. В архитектурах безопасности значения счетчика такого масштаба служат для обеспечения временной актуальности сообщений и эффективного отражения атак повторного воспроизведения. Интерпретация: в качестве стандартизированного типа данных структура, вероятно, служит главным образом форматом интерфейса и хранения для монотонных счетчиков или порядковых номеров, которыми обмениваются криптографические протоколы, драйверы и аппаратно-ориентированные компоненты безопасности. Вопрос 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 или если при неполной инициализации неопределенные значения памяти попадают в вычисления. Поэтому вызывающие компоненты перед дальнейшей обработкой должны убедиться, что оба элемента данных инициализированы согласованно, а логика переноса реализована безошибочно.

Этот текст был сгенерирован ИИ на основе спецификации 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#89703a31
Content hash
89703a31
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#cb057e1f
Content hash
cb057e1f
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