Определяет интерфейсы для управления значениями свежести и обработки ошибок для защищённых каналов связи.
СОЗДАНО ИИне провереноМодель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 05efd4a1afb9ПроисхождениеОткрытые вопросы (1)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал
Определяет интерфейсы для управления значениями свежести и обработки ошибок для защищённых каналов связи.
Пространство имён определяет специфичный для производителя интерфейс для управления значениями свежести в рамках Secure Onboard Communication (SecOC) для AUTOSAR Adaptive Platform Communication Management (SWS Communication Management §C.1 «Header: apext/com/secoc/fvm.h»). Жизненный цикл и инициализация Freshness Value Manager полностью управляются диспетчером связи, который запрашивает значения свежести через интерфейс при сконфигурированных процессах отправки ([SWS_CM_11272]). При временной недоступности значений свежести выполняются контролируемые повторные попытки вплоть до заданного порогового значения, прежде чем ошибочные сообщения будут отброшены. Дополнительно пространство имён предоставляет собственный домен ошибок и стандартизированные коды ошибок для диагностики и обработки исключений.
Контекст
Пространство имён apext::com::secoc определяет нормативные интерфейсы расширений платформы (Platform Extension Interfaces) внутри функционального кластера Communication Management (ara::com) AUTOSAR Adaptive Platform (SWS Communication Management §C.1 «Header: apext/com/secoc/fvm.h»). Цель этих интерфейсов расширения состоит в том, чтобы позволить OEM-производителям и поставщикам стеков предоставлять адаптированный Freshness Value Manager (FVM), который генерирует, администрирует и верифицирует значения свежести для Secure Onboard Communication (SecOC), необходимые для защиты от атак повторного воспроизведения.
Пространство имён взаимодействует в основном с тремя ролями: диспетчером связи (ara::com), стандартизированным определением интерфейса (FVM) вместе с носителями данных, такими как FVContainer ([SWS_CM_11286], [SWS_CM_11344]), а также конкретной реализацией FVM автопроизводителя или поставщика стека. Интерпретация: предполагается, что специфичная для производителя библиотека FVM подключается в рамках системной интеграции как статическая или динамическая библиотека, поскольку спецификация задаёт функциональный интерфейс, оставляя форму интеграции на усмотрение конкретного стека. Вопрос Q-256aef3d6698cc3f (открытый)
Управление жизненным циклом реализации FVM полностью контролируется диспетчером связи ara::com ([SWS_CM_11272]). Приложения и экземпляры служб не создают компонент FVM и не управляют им напрямую.
Ввод в эксплуатацию происходит детерминированно во время инициализации коммуникационного стека путём вызова библиотечного API apext::com::secoc::FVM::Initialize ([SWS_CM_11273]). Если инициализация со стороны производителя не может быть завершена корректно, уровень FVM сигнализирует об этом состоянии ошибки через определённый код ошибки kFVInitializeFailed ([SWS_CM_11342]). После успешного вызова инициализации Freshness Value Manager остаётся в активном рабочем состоянии и отвечает на синхронные запросы значений свежести для отправки и приёма.
Путь использования
Обычный путь использования делится на защиту отправки и верификацию приёма сообщений:
Отправляемые сообщения: если сообщение сконфигурировано для отправки через SecOC, оно обрабатывается как аутентичное сообщение ([SWS_CM_11274]). Защита выполняется в строго определённом порядке после завершения всех вычислений защиты E2E ([SWS_CM_11274]). Если конфигурация сервисного интерфейса содержит атрибут freshnessValueId, диспетчер связи вызывает apext::com::secoc::FVM::GetTxFreshness ([SWS_CM_11274], [SWS_CM_11275]). Значение свежести предоставляется в структуре FVContainer, которая хранит битовую длину в атрибуте length и само значение ([SWS_CM_11286], [SWS_CM_11344]).
Механизм повтора при отправке: для каждого защищённого сообщения система ведёт Authentication Build Counter ([SWS_CM_11275]). После успешной генерации счётчик сбрасывается в 0. Если GetTxFreshness возвращает устранимую ошибку kFVNotAvailable или вычисление аутентификатора завершается неудачно, счётчик инкрементируется, и формирование повторяется ([SWS_CM_11275]). Если счётчик достигает порогового значения SecOCAuthenticationBuildAttempts, сообщение отбрасывается ([SWS_CM_11275]).
Входящие сообщения: для входящих сообщений SecOC с активной верификацией (атрибут securedRxVerification со значением «истина» или не задан) извлекается аутентификатор (Authenticator) и сообщение верифицируется перед E2E-проверками путем пересчета MAC ([SWS_CM_11276], SWS Communication Management §8.1 «SecOC secure channel reception»). Если же атрибут securedRxVerification установлен в значение «ложь», верификация обходится (Bypass) и сообщение обрабатывается без проверки ([SWS_CM_11372]).
Диаграмма последовательности: процесс вызова и повторных попыток при защите исходящего сообщения с помощью FVM. Источники: [SWS_CM_11274], [SWS_CM_11275].
Сценарии ошибок
Ошибочные ситуации в рамках интерфейса FVM обрабатываются через типобезопасный домен ошибок ComSecOcFvmErrorDomain, экземпляр которого можно получить через GetComSecOcFvmErrorDomain ([SWS_CM_12521]). Коды ошибок определены в типе перечисления ComSecOcFvmErrc ([SWS_CM_11342]):
kFVNotAvailable (код 1): требуемое значение свежести временно недоступно. Это сигнализирует Communication Management об устранимой ошибке, что инициирует повторные попытки согласно протоколу отправки ([SWS_CM_11275], [SWS_CM_11342]).
kFVInitializeFailed (код 2): инициализация Freshness Value Manager завершилась сбоем ([SWS_CM_11342]).
С помощью вспомогательной функции MakeErrorCode ([SWS_CM_12522]) коды ошибок вместе с дополнительными данными от производителя (SupportDataType) можно инкапсулировать в стандартные объекты ara::core::ErrorCode. Для неудачных синхронных вызовов в средах на основе исключений предусмотрен класс исключений ComSecOcFvmException.
Настоящее руководство основано на спецификации AUTOSAR Adaptive Platform R25-11 (Communication Management). Все утверждения опираются исключительно на указанные ссылки на спецификацию и документацию.
Abgerundete Rahmen = Namespace- bzw. Klassen-Scopes; hohle Dreieckspfeile = Vererbung (zeigt zur Basisklasse); graue Boxen = namespace-fremde bzw. externe Basisklassen. Klicken öffnet die jeweilige Klassen- bzw. cppreference-Seite.
СОЗДАНО ИИне провереноМодель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 8b6808ee1e7cПроисхождениеОткрытые вопросы (2)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал
Использование
Функция, не являющаяся членом, GetComSecOcFvmErrorDomain служит для получения ссылки на объект области ошибок Freshness Value Management (FVM) для SecOC согласно [SWS_CM_12521]. Функция определена в пространстве имен apext::com::secoc и подключается через заголовочный файл apext/com/secoc/fvm_error_domain.h (AUTOSAR_AP_SWS_CommunicationManagement §C.2.2.1.1 «GetComSecOcFvmErrorDomain»). Она не принимает параметров и синхронно возвращает константную ссылку типа const ara::core::ErrorDomain & на объект-синглтон apext::com::secoc::ComSecOcFvmErrorDomain.
Обработка ошибок
Функция объявлена как noexcept и специфицирована как полностью безопасная относительно исключений (exception safe) [SWS_CM_12521]. При вызове не возникает ошибок времени выполнения, а также не генерируются исключения и не создаются коды ошибок. Возвращенная область ошибок служит разработчикам скорее эталоном для однозначного сопоставления FVM-специфичных кодов ошибок в рамках обработки ошибок SecOC.
Параллелизм и ограничения
Будучи функцией constexpr без состояния и побочных эффектов, вызов, предположительно, является неограниченно параллельным и реентерабельным. Вопрос Q-16d96e7f64bca93f (открытый) Согласно спецификации, условия порядка или ограничения относительно контекста вызова отсутствуют [SWS_CM_12521].
Взаимодействие
Определение основано на требованиях RS_AP_00120, а также RS_AP_00130 [SWS_CM_12521]. В то время как спецификация преимущественно предусматривает пространство имен apext::com::secoc, в другом месте также приводится указание ara::com::secoc::GetComSecOcFvmErrorDomain (AUTOSAR_AP_SWS_CommunicationManagement с. 598); предположительно, это представляет собой редакционный вариант в рамках расширений Adaptive. Вопрос Q-b49307e7cc69a94b (открытый)
Это указание по использованию было создано ИИ и основано на состоянии спецификации AUTOSAR Adaptive R25-11.
Руководство разработчика реализации в подготовке (сложность I1)
СОЗДАНО ИИне провереноМодель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: c91e64600342ПроисхождениеОткрытые вопросы (1)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал
Использование
Функция apext::com::secoc::MakeErrorCode служит для создания экземпляра ara::core::ErrorCode для домена ошибок Freshness Value Management (SecOC) согласно [SWS_CM_12522] (AUTOSAR_AP_SWS_CommunicationManagement §C.2.2.1.2 «MakeErrorCode»). Вызов выполняется синхронно. В качестве параметров функции требуются код ошибки errorCode типа apext::com::secoc::ComSecOcFvmErrc, а также аппаратно-зависимые дополнительные данные data типа ara::core::ErrorDomain::SupportDataType[SWS_CM_12522]. Она возвращает полностью инициализированный объект ara::core::ErrorCode[SWS_CM_12522].
Обработка ошибок и параллелизм
Функция специфицирована как noexcept и exception safe, благодаря чему вызов гарантированно не генерирует исключений [SWS_CM_12522]. Специфические сообщения об ошибках времени выполнения, такие как DET или DEM, для этой функции-конструктора не определены [SWS_CM_12522]. В силу квалификации constexpr формирование кода ошибки при передаче константных выражений, вероятно, может выполняться уже во время компиляции. Вопрос Q-a96337508ba6ecdd (открытый)
Взаимодействие
Функция предоставляется через заголовочный файл apext/com/secoc/fvm_error_domain.h в пространстве имен apext::com::secoc[SWS_CM_12522]. По своей структуре она соответствует родственным фабрикам кодов ошибок управления связью:
gemini-3.8-flash-low· 2026-10-13 · Немецкий оригинал