DEENESPTFRRUARHIKOZHNL

Secure Onboard Communication (SecOC)

ModulSecOC (Secure Onboard Communication)
BSW-Modul-ID150
Standard-Header#include "SecOC.h"
SWS-SpezifikationAUTOSAR_SWS_SecureOnboardCommunication.pdf
ClusterSecurity & Intrusion Detection

Руководство по модулюСОЗДАНО ИИ

Защищает I-PDU с помощью Authenticator и Freshness Value от манипуляций и повторного воспроизведения наряду с PDU-маршрутизатором.
СОЗДАНО ИИ не проверено Модель: claude-opus-5-5 · Усилие: high · Температура: не регулируется · Промпт: e42ecdfc6fe3 Происхождение Открытые вопросы (2)
Причинный якорь: R20-11 Действует с R20-11 Заново синтезировано для этой версии спецификации.
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Защищает I-PDU с помощью Authenticator и Freshness Value от манипуляций и повторного воспроизведения наряду с PDU-маршрутизатором.

SecOC защищает I-PDU от манипуляций и повторного воспроизведения. Для этого он при отправке добавляет Authenticator и Freshness Value и проверяет оба значения при приеме. Прием PDU и криптографическая обработка развязаны: только циклические основные функции выполняют аутентификацию или верификацию в шесть шагов ([SWS_SecOC_00040]). Криптографию предоставляет CSM, а Freshness Value — внешний Freshness Manager. Ограниченное количество повторных попыток определяет, когда принятый PDU отбрасывается и формируется отчет о статусе верификации ([SWS_SecOC_00241]).

SecOC защищает I-PDU в стеке связи. Он располагается рядом с PduR и присоединяет к каждому Authentic I-PDU Authenticator и при необходимости усеченный Freshness Value. Таким образом формируется Secured I-PDU (SWS SecOC с. 39). Authenticator вычисляется на основе Data Identifier, полезных данных и полного Freshness Value (SWS SecOC с. 29). Криптографию предоставляет CSM ([SWS_SecOC_00138]), а Freshness Value — Freshness Manager через RTE или C-функцию ([SWS_SecOC_91001], [SWS_SecOC_00230]).

kontext com Com / obere Schicht pdur PduR com->pdur Authentic I-PDU secoc SecOC pdur->secoc SecOC_[If|Tp]Transmit, SecOC_RxIndication, SecOC_StartOfReception lower Untere Schicht (CanIf, FrIf, CanTp …) pdur->lower Secured I-PDU secoc->pdur PduR_SecOCTransmit, PduR_SecOC…RxIndication csm Csm secoc->csm Csm_MacGenerate / Csm_MacVerify fvm Freshness Manager (SW-C через RTE или C-функцию) secoc->fvm Get[Tx|Rx]Freshness…, SPduTxConfirmation, VerificationStatusCallout app SW-C (Verifikationsstatus) secoc->app VerificationStatusIndication det Det secoc->det SECOC_E_… idsm IdsM secoc->idsm Security Events app->secoc SecOC_VerifyStatusOverride, SecOC_SendDefaultAuthenticationInformation lower->pdur Secured I-PDU (Empfang)

Контекстная диаграмма: SecOC между PduR, CSM, Freshness Manager, приложением, DET и IdsM. Источники: [SWS_SecOC_00138], [SWS_SecOC_91001], [SWS_SecOC_00273]

Отправка и прием развязаны. При SecOC_[If|Tp]Transmit SecOC копирует только полезные данные. Только циклическая SecOC_MainFunctionTx вычисляет Authentication Information и инициирует передачу через PduR (SWS SecOC с. 40, [SWS_SecOC_00176]). Принятые Secured I-PDU модуль SecOC полностью буферизует и проверяет их в SecOC_MainFunctionRx в шесть шагов, от синтаксического анализа до передачи наверх ([SWS_SecOC_00040], [SWS_SecOC_00255]). Модуль работает только в состоянии SECOC_INIT, которое устанавливается SecOC_Init и снимается SecOC_DeInit ([SWS_SecOC_00162], [SWS_SecOC_00161]).

Повторные попытки при приеме управляются двумя счетчиками ([SWS_SecOC_00237], [SWS_SecOC_00239], [SWS_SecOC_00240], [SWS_SecOC_00241]):

  • Счетчик сборки (Build) подсчитывает временные узкие места, такие как E_BUSY.
  • Счетчик верификации (Verify) подсчитывает неудачные сравнения MAC.
  • Если один из них достигает своего предела, PDU отбрасывается.

При отправке достигнутый предел приводит к SECOC_E_CRYPTO_FAILURE и, если разрешено, к отправке с шаблоном по умолчанию ([SWS_SecOC_00155], [SWS_SecOC_00229]).

rxverifikation a Secured I-PDU полностью принят Счетчик сборки = 0, счетчик верификации = 0 b Freshness abfragen (SecOC_GetRxFreshness / …AuthData) a->b c Ergebnis Freshness? b->c d Счетчик сборки + 1 c->d E_BUSY h Verwerfen: SECOC_FRESHNESSFAILURE c->h E_NOT_OK i Csm_MacVerify c->i E_OK e Счетчик сборки >= SecOCAuthenticationBuildAttempts? d->e f Повтор в следующем SecOC_MainFunctionRx e->f нет g Verwerfen: SECOC_AUTHENTICATIONBUILDFAILURE e->g да f->b j Ergebnis Verifikation? i->j j->d E_BUSY, QUEUE_FULL k Счетчик верификации + 1, счетчик сборки = 0 j->k MAC недействителен m Verwerfen: SECOC_VERIFICATIONFAILURE j->m неустранимая ошибка (E_NOT_OK, KEY_FAILURE) n SECOC_VERIFICATIONSUCCESS, Authentic I-PDU an obere Schicht j->n успешный l Счетчик верификации >= SecOCAuthenticationVerifyAttempts? k->l l->b нет: следующее допустимое значение свежести l->m да

Диаграмма деятельности: счетчики Build и Verify определяют повтор или отбрасывание. Источники: [SWS_SecOC_00239], [SWS_SecOC_00241]

Результат каждой попытки SecOC передает как SecOC_VerificationStatusType, в зависимости от конфигурации, программным компонентам и в Freshness Manager ([SWS_SecOC_00271], [SWS_SecOC_00243]). С помощью SecOC_VerifyStatusOverride можно целенаправленно переопределить проверку ([SWS_SecOC_00122]). При разделении на Authentic и Cryptographic I-PDU проверка выполняется только тогда, когда присутствуют обе части с подходящим Message Linker ([SWS_SecOC_00211]).

Роль рядом с PduR и граница системы

SecOC располагается в многоуровневой архитектуре рядом с PDU-маршрутизатором. Он преобразует Authentic I-PDU в Secured I-PDU, добавляя Authentication Information непосредственно за полезными данными: Authenticator и при необходимости усеченный Freshness Value (SWS SecOC с. 39, SWS SecOC с. 43). Ни один другой модуль не должен зависеть от SecOC, благодаря чему система может быть собрана и без SecOC. MetaData объекта Authentic PDU отображаются без изменений в Secured PDU и наоборот ([SWS_SecOC_00212]).

Authenticator вычисляется путем конкатенации трех частей: SecOCDataId, защищенной части Authentic I-PDU и полного Freshness Value (SWS SecOC с. 29). Криптографию предоставляет CSM, например с помощью Csm_MacGenerate и Csm_MacVerify ([SWS_SecOC_00138]). Freshness Value предоставляет Freshness Manager либо через RTE-порт FreshnessManagement, либо через C-функции ([SWS_SecOC_91001], [SWS_SecOC_00230]). Другими получателями сообщений являются:

  • DET для ошибок разработки и времени выполнения ([SWS_SecOC_00101]),
  • IdsM для Security Events ([SWS_SecOC_00273]),
  • программные компоненты для результатов верификации ([SWS_SecOC_00271]).
kontext com Com / obere Schicht pdur PduR com->pdur Authentic I-PDU secoc SecOC pdur->secoc SecOC_[If|Tp]Transmit, SecOC_RxIndication, SecOC_StartOfReception lower Untere Schicht (CanIf, FrIf, CanTp …) pdur->lower Secured I-PDU secoc->pdur PduR_SecOCTransmit, PduR_SecOC…RxIndication csm Csm secoc->csm Csm_MacGenerate / Csm_MacVerify fvm Freshness Manager (SW-C через RTE или C-функцию) secoc->fvm Get[Tx|Rx]Freshness…, SPduTxConfirmation, VerificationStatusCallout app SW-C (Verifikationsstatus) secoc->app VerificationStatusIndication det Det secoc->det SECOC_E_… idsm IdsM secoc->idsm Security Events app->secoc SecOC_VerifyStatusOverride, SecOC_SendDefaultAuthenticationInformation lower->pdur Secured I-PDU (Empfang)

Контекстная диаграмма: SecOC является посредником между PduR, CSM, Freshness Manager и приложением и отправляет отчеты в DET и IdsM. Источники: SWS SecOC с. 24, [SWS_SecOC_00138], [SWS_SecOC_91001], [SWS_SecOC_00273]

Те же механизмы поддерживают и шлюзы. SecOC поддерживает шлюзы повторной аутентификации между зонами безопасности, при этом каждая операция конфигурируется отдельно. «Шлюзование на лету» (Gatewaying-on-the-fly) не поддерживается (SWS SecOC с. 57).

Инициализация, состояние модуля и циклические основные функции

Состояние модуля SecOC_StateType различает SECOC_UNINIT и SECOC_INIT ([SWS_SecOC_00162]).

  • SecOC_Init получает зависимую от реализации SecOC_ConfigType и при успехе приводит к SECOC_INIT. При назначении нескольким разделам возможна одна функция инициализации на раздел ([SWS_SecOC_00106], [SWS_SecOC_00104]).
  • SecOC_DeInit отбрасывает все буферизованные I-PDU и возвращает модуль в неинициализированное состояние ([SWS_SecOC_00161]). При этом также очищаются внутренние переменные и буферы (SWS SecOC с. 65).
  • Вызов без предварительной инициализации сообщает о SECOC_E_UNINIT ([SWS_SecOC_00101]).

Непосредственную обработку выполняют SecOC_MainFunctionTx и SecOC_MainFunctionRx. Для каждого сконфигурированного экземпляра создается собственная функция …_<shortName> ([SWS_SecOC_00176], [SWS_SecOC_00171]). Ее период является конфигурируемым (SWS SecOC с. 130, SWS SecOC с. 129). Каждая SecOCTxPduProcessing выполняется в указанном экземпляре ([SWS_SecOC_00276]).

Без инициализации основная функция Tx немедленно возвращает управление. В противном случае она аутентифицирует все новые Authentic I-PDU в рамках того же вызова и немедленно инициирует их передачу через PduR (SWS SecOC с. 84).

lebenszyklus start Start uninit SECOC_UNINIT start->uninit uninit->uninit SecOC_MainFunctionTx: немедленный возврат; вызов API: SECOC_E_UNINIT init SECOC_INIT uninit->init SecOC_Init(config) erfolgreich init->uninit SecOC_DeInit(): очистить буферизованные I-PDU, переменные и буферы init->init SecOC_MainFunctionTx/Rx: аутентификация или верификация

Диаграмма состояний: Init и DeInit переключают между SECOC_UNINIT и SECOC_INIT; основная функция работает только в инициализированном состоянии. Источники: [SWS_SecOC_00162], [SWS_SecOC_00106], [SWS_SecOC_00161], SWS SecOC с. 84

Отправка: от Authentic к Secured I-PDU

Тракт отправки развязан и выполняется в два этапа (SWS SecOC с. 40):

  1. Верхний уровень вызывает PduR_<Up>Transmit, PduR вызывает SecOC_[If|Tp]Transmit. SecOC полностью копирует Authentic I-PDU в собственную память и возвращает управление ([SWS_SecOC_00252]).
  2. На следующем прогоне основной функции формируется Secured I-PDU, и SecOC инициирует его передачу через PduR.

Подтверждения от нижнего уровня SecOC передает наверх через PduR_SecOC[If|Tp]TxConfirmation ([SWS_SecOC_00063]).

Аутентификация включает шесть шагов: подготовка, формирование DataToAuthenticator, генерация Authenticator, сборка Secured I-PDU, увеличение Freshness Counter, отправка. Data Id (16 бит) и Freshness Value при этом передаются в формате Big Endian (SWS SecOC с. 33).

Если источником свежести является C-функция (CFUNC), SecOC получает значение через SecOC_GetTxFreshness. Если Freshness Manager должен сам предоставить усеченное значение, для этого служит SecOC_GetTxFreshnessTruncData ([SWS_SecOC_00231], [SWS_SecOC_00230]). Инициацию отправки SecOC сообщает с помощью SecOC_SPduTxConfirmation или через RTE ([SWS_SecOC_00232], [SWS_SecOC_00233]). Неиспользуемые области заполняются значением SecOCTxPduUnusedAreasDefault ([SWS_SecOC_00269]).

Аутентификация при прямой передаче (шинный интерфейс)ComPduRSecOCFreshness ManagerCsmUntere Schicht (z. B. CanIf)PduR_ComTransmit()SecOC_IfTransmit()Authentic I-PDU полностью принятin eigenen Puffer kopierenE_OKUse Case: SecOC_MainFunctionTx (следующий вызов)SecOC_GetTxFreshness()или SecOC_GetTxFreshnessTruncData()E_OK, Freshness ValueCsm_MacGenerate(DataToAuthenticator)AuthenticatorAsynchroner Csm-Job: Ergebnis per CallbackSecured I-PDU bilden:Authentic I-PDU | Значение свежести (усеченное) | АутентификаторPduR_SecOCTransmit()Transmit (Secured I-PDU)SecOC_SPduTxConfirmation()Use Case: ПодтверждениеTxConfirmation(result)SecOC_TxConfirmation(result)PduR_SecOCIfTxConfirmation(result)TxConfirmation(result)

Диаграмма последовательности: прием Authentic I-PDU и аутентификация на следующем прогоне основной функции развязаны. Источники: SWS SecOC с. 40, [SWS_SecOC_00231], [SWS_SecOC_00232], [SWS_SecOC_00063]

При триггерной передаче предварительно должен произойти как минимум один SecOC_IfTransmit. При отсутствии доступных данных SecOC_TriggerTransmit отвечает с E_NOT_OK, и AlwaysTransmit использовать не следует (SWS SecOC с. 44, [SWS_SecOC_00127]).

Для SECOC_TPPDU процесс запускает SecOC_TpTransmit. SecOC по частям запрашивает данные с помощью PduR_SecOCTpCopyTxData ([SWS_SecOC_00253], [SWS_SecOC_00254]). Затем TP-модуль выполняет считывание через SecOC_CopyTxData ([SWS_SecOC_00129]).

Аутентификация с транспортным протоколом (SECOC_TPPDU)ComPduRSecOCCanTpPduR_ComTransmit()SecOC_TpTransmit()loopдо полного копирования Authentic I-PDUPduR_SecOCTpCopyTxData()Com_CopyTxData()BUFREQ_E_BUSY: повтор в следующем вызове Main-FunctionBUFREQ_E_NOT_OK: AbbruchUse Case: SecOC_MainFunctionTxauthenticate()PduR_SecOCTransmit()CanTp_Transmit()loopje N-PDUPduR_CanTpCopyTxData()SecOC_CopyTxData()PduR_CanTpTxConfirmation()SecOC_TpTxConfirmation()PduR_SecOCTpTxConfirmation()Com_TpTxConfirmation()

Диаграмма последовательности: при TP-передаче SecOC является TP-приемником по отношению к верхнему уровню и TP-источником по отношению к нижнему уровню. Источники: SWS SecOC с. 109, [SWS_SecOC_00253], [SWS_SecOC_00254]

При SecOCTxSecuredPduCollection Secured I-PDU разделяется на два сообщения:

  • Authentic I-PDU,
  • Cryptographic I-PDU, состоящую из Authentication Data и Message Linker.

Оба сообщения отправляются в одном цикле ([SWS_SecOC_00201], [SWS_SecOC_00209], [SWS_SecOC_00202]). Подтверждение на верхний уровень имеет статус E_OK только в том случае, если обе части были подтверждены со статусом E_OK ([SWS_SecOC_00270]).

Прием и верификация

Верификация включает в себя шесть шагов ([SWS_SecOC_00040]):

  1. парсинг Authentic I-PDU, Freshness Value и Authenticator,
  2. запрос Freshness Value у Freshness Manager,
  3. формирование проверяемых данных,
  4. проверка Authentication Information,
  5. подтверждение Freshness Manager,
  6. передача Authentic I-PDU на верхний уровень.

SecOC сначала копирует Secured I-PDU в собственную память и проверяет ее при следующем запуске главной функции (SWS SecOC с. 50). Через интерфейсы шины она поступает по SecOC_RxIndication ([SWS_SecOC_00124]). Если I-PDU статической длины короче, чем сконфигурировано, она отбрасывается без уведомления ([SWS_SecOC_00268]). Длина Authentic I-PDU берется из конфигурации, с нижнего уровня или из заголовка ([SWS_SecOC_00257], [SWS_SecOC_00258], [SWS_SecOC_00259]).

Прием через шинный интерфейс и обработка свежестиPduRSecOCSchMFreshness ManagerCsmSecOC_RxIndication()Secured I-PDU puffern,Счетчик сборки и счетчик верификации = 0SecOC_MainFunctionRx()loopAuthentication verify attempts [MAC-Verifikation fehlgeschlagen]loopAuthentication build attempts [GetRxFreshness()==E_BUSY || Csm_MacVerify()==E_BUSY]GetRxFreshness()Freshness ValueCsm_MacVerify()VerifikationsergebnisVerificationStatus()

Диаграмма последовательности: запрос свежести и проверка MAC выполняются в контексте главной функции Rx в двух вложенных циклах повтора. Источники: SWS SecOC с. 103, [SWS_SecOC_00237], [SWS_SecOC_00238]

При использовании транспортного протокола прием происходит следующим образом ([SWS_SecOC_00130], [SWS_SecOC_00128], [SWS_SecOC_00125]):

  • SecOC_StartOfReception резервирует буфер для всей Secured I-PDU,
  • SecOC_CopyRxData принимает отдельные сегменты,
  • SecOC_TpRxIndication сообщает о завершении приема.

SecOC разрешается передавать Authentic I-PDU дальше только после полного завершения приема ([SWS_SecOC_00255]). Интерпретация согласно схеме: передача на верхний уровень должна начинаться только после успешной верификации (SWS SecOC с. 112). Вопрос Q-d5c1780d034c722e (открытый) В отличие от этого, редакция R23-11 передает начало приема уже в SecOC_StartOfReception (SWS SecOC с. 54).

Верификация с транспортным протоколомCanTpPduRSecOCComPduR_CanTpStartOfReception()SecOC_StartOfReception()BUFREQ_OK (буфер для всей Secured I-PDU)loopje N-PDUPduR_CanTpCopyRxData()SecOC_CopyRxData()BUFREQ_OKPduR_CanTpRxIndication()SecOC_TpRxIndication(E_OK)Use Case: SecOC_MainFunctionRxverify()optуспешная верификация (интерпретация последовательности согласно схеме)PduR_SecOCTpStartOfReception()Com_StartOfReception()loopпока не будут скопированы все данныеPduR_SecOCTpCopyRxData()Com_CopyRxData()PduR_SecOCTpRxIndication()Com_TpRxIndication()

Диаграмма последовательности: SecOC буферизует всю Secured I-PDU; передача в Com следует (интерпретация) только после успешной верификации. Источники: SWS SecOC с. 112, [SWS_SecOC_00255]

При SecOCRxSecuredPduCollection модуль SecOC выполняет проверку только тогда, когда доступны Authentic и Cryptographic I-PDU с соответствующим Message Linker ([SWS_SecOC_00203], [SWS_SecOC_00211]). Для этого он выделяет раздельные буферы ([SWS_SecOC_00204]):

  • после успешной проверки оба буфера очищаются ([SWS_SecOC_00207]);
  • после сбоя оба буфера сохраняются, и при каждом новом поступлении проверка выполняется повторно ([SWS_SecOC_00208]).

Стратегия переполнения QUEUE исключает такое разделение ([SWS_SecOC_CONSTR_00265]).

Freshness Manager, статус верификации и переопределение

SecOC не управляет свежестью самостоятельно. В зависимости от SecOCQueryFreshnessValue (RTE или CFUNC) и SecOCUseAuthDataFreshness он запрашивает GetRxFreshness или GetRxFreshnessAuthData. Во втором случае он дополнительно передает сконфигурированный фрагмент принятой PDU ([SWS_SecOC_00244], [SWS_SecOC_00245], [SWS_SecOC_00246], [SWS_SecOC_00247]). Также передаются усеченный Freshness Value и число предыдущих попыток верификации ([SWS_SecOC_91007], [SWS_SecOC_91006]).

Значения представлены как SecOC_FreshnessArrayType ([SWS_SecOC_91012]), со старшим битом в первом байте, то есть в формате Big Endian (SWS SecOC с. 80). Возвращаемое значение E_BUSY означает, что значение временно недоступно ([SWS_SecOC_91002]).

Результат каждой попытки обобщает SecOC_VerificationStatusType: freshnessValueID плюс значение из SecOC_VerificationResultType, например SECOC_FRESHNESSFAILURE ([SWS_SecOC_00160], [SWS_SecOC_00149]). Он передается в зависимости от режима: BOTH, FAILURE_ONLY или NONE ([SWS_SecOC_00271], [SWS_SecOC_91016]). Опционально передается только итоговый статус ([SWS_SecOC_00272]). Freshness Manager получает результат через SecOC_VerificationStatusCallout ([SWS_SecOC_00119], [SWS_SecOC_00243]).

SecOC_VerifyStatusOverride целенаправленно переопределяет верификацию ([SWS_SecOC_00122]). В R20-11 SecOC_OverrideStatusType поддерживает, среди прочего, …DROP_UNTIL_NOTICE, …DROP_UNTIL_LIMIT, …CANCEL и …PASS_UNTIL_NOTICE ([SWS_SecOC_00991]). R23-11 добавляет …SKIP_UNTIL_LIMIT и …PASS_UNTIL_LIMIT (SWS SecOC с. 102). На стороне передачи SecOC_SendDefaultAuthenticationInformation включает или выключает шаблон по умолчанию для каждого Freshness Value ID ([SWS_SecOC_91013]).

Конфигурация и привязка к экземплярам

Конфигурация делится на три контейнера:

  • SecOCGeneral для общих параметров, таких как SecOCDefaultAuthenticationInformationPattern (SWS SecOC с. 124),
  • по одному SecOCTxPduProcessing на каждую передаваемую PDU (SWS SecOC с. 155),
  • по одному SecOCRxPduProcessing на каждую принимаемую PDU (SWS SecOC с. 140).

Ключевыми параметрами являются SecOCDataId, SecOCFreshnessValueId, длины свежести и Authenticator, а также ссылка на CsmJob (SWS SecOC с. 106). Если CSM-задача выполняется асинхронно, модулю SecOC требуются вендороспецифичные функции обратного вызова (SWS SecOC с. 78).

Некоторые порты существуют только при соответствующей конфигурации:

  • SendDefaultAuthenticationInformation — только если задан шаблон по умолчанию ([SWS_SecOC_91020]),
  • FreshnessManagement — только при запросе через RTE ([SWS_SecOC_91001]).

События безопасности (Security Events) передаются только в том случае, если задан SecOCEnableSecurityEventReporting ([SWS_SecOC_00273]).

Поведение при ошибке

На стороне передачи действует следующее:

  • При устранимых ошибках CSM, таких как E_BUSY или QUEUE_FULL, SecOC сохраняет Authentic I-PDU и повторяет попытку в следующем цикле ([SWS_SecOC_00151]).
  • Если лимит попыток исчерпан, он сообщает SECOC_E_CRYPTO_FAILURE в DET ([SWS_SecOC_00155]).
  • При достижении лимита, Freshness-E_NOT_OK или неустранимой ошибке SecOC использует шаблон по умолчанию, если он разрешен ([SWS_SecOC_00229]).
  • Если шаблон не сконфигурирован, SecOC прерывает выполнение задания (SWS SecOC с. 124).
  • Если шаблон сконфигурирован, но не разрешен, SecOC предположительно также прерывает операцию. Вопрос Q-a3c1cc4b9b925ed4 (открытый)
txfehler a SecOC_MainFunctionTx: Authentifizierung starten b Freshness abfragen, Csm_MacGenerate a->b c Ergebnis? b->c d Сохранить Authentic I-PDU, следующий вызов Main-Function c->d behebbar (E_BUSY, QUEUE_FULL) g Default-Senden per SecOC_SendDefaultAuthenticationInformation freigegeben? c->g Свежесть E_NOT_OK или неустранимая ошибка (E_NOT_OK, KEY_FAILURE) j Отправить Secured I-PDU через PduR c->j E_OK e SecOCAuthenticationBuildAttempts erreicht? d->e e->b нет e->g да (дополнительно Det: SECOC_E_CRYPTO_FAILURE) h Значение свежести и аутентификатор из SecOCDefaultAuthenticationInformationPattern g->h да i Authentic I-PDU entfernen, Sendeauftrag abbrechen g->i шаблон не сконфигурирован; Интерпретация: также при неразрешенном шаблоне h->j

Диаграмма деятельности: устранимые ошибки приводят к повторной попытке, исчерпание лимита или критическая ошибка — к использованию шаблона по умолчанию или прерыванию. Источники: [SWS_SecOC_00151], [SWS_SecOC_00155], [SWS_SecOC_00229], SWS SecOC с. 124

Прерывания и ошибки соседних уровней SecOC обрабатывает следующим образом:

  • SecOC_[If|Tp]CancelTransmit модуль SecOC немедленно передает вниз и освобождает все буферы (SWS SecOC с. 48, [SWS_SecOC_91009]).
  • Если нижний уровень возвращает E_NOT_OK, SecOC лишь воздерживается от отправки подтверждения на верхний уровень.
  • Если при TP-передаче запрос данных возвращает BUFREQ_E_BUSY, SecOC повторяет его в следующем цикле ([SWS_SecOC_00260]).
  • BUFREQ_E_NOT_OK как при передаче, так и при приеме приводит к немедленному прерыванию ([SWS_SecOC_00266], [SWS_SecOC_00267]).

На стороне приема SecOC ведет для каждой PDU счетчик сборки (Build-счетчик) и счетчик проверки (Verify-счетчик), оба начинаются с 0 ([SWS_SecOC_00234], [SWS_SecOC_00235]):

  • E_BUSY или устранимая ошибка CSM увеличивает счетчик сборки; SecOC повторяет попытку в следующем цикле ([SWS_SecOC_00236], [SWS_SecOC_00237], [SWS_SecOC_00238]).
  • Если счетчик сборки достигает своего лимита, следует SECOC_AUTHENTICATIONBUILDFAILURE ([SWS_SecOC_00240]).
  • Неверный MAC увеличивает счетчик проверки и сбрасывает счетчик сборки ([SWS_SecOC_00239]).
  • При достижении лимита проверок или критической ошибке выдается SECOC_VERIFICATIONFAILURE, при успешном завершении — SECOC_VERIFICATIONSUCCESS ([SWS_SecOC_00241], [SWS_SecOC_00242]).
rxverifikation a Secured I-PDU полностью принят Счетчик сборки = 0, счетчик верификации = 0 b Freshness abfragen (SecOC_GetRxFreshness / …AuthData) a->b c Ergebnis Freshness? b->c d Счетчик сборки + 1 c->d E_BUSY h Verwerfen: SECOC_FRESHNESSFAILURE c->h E_NOT_OK i Csm_MacVerify c->i E_OK e Счетчик сборки >= SecOCAuthenticationBuildAttempts? d->e f Повтор в следующем SecOC_MainFunctionRx e->f нет g Verwerfen: SECOC_AUTHENTICATIONBUILDFAILURE e->g да f->b j Ergebnis Verifikation? i->j j->d E_BUSY, QUEUE_FULL k Счетчик верификации + 1, счетчик сборки = 0 j->k MAC недействителен m Verwerfen: SECOC_VERIFICATIONFAILURE j->m неустранимая ошибка (E_NOT_OK, KEY_FAILURE) n SECOC_VERIFICATIONSUCCESS, Authentic I-PDU an obere Schicht j->n успешный l Счетчик верификации >= SecOCAuthenticationVerifyAttempts? k->l l->b нет: следующее допустимое значение свежести l->m да

Диаграмма деятельности: счетчики сборки и проверки управляют повтором и отбрасыванием при приеме. Источники: SWS SecOC с. 42, PRS SecOC с. 19, [SWS_SecOC_00239], [SWS_SecOC_00241]

Для Freshness-E_NOT_OK стандарт R20-11 содержит два параллельных требования. Одно из них предписывает немедленно отбрасывать PDU со статусом SECOC_FRESHNESSFAILURE ([SWS_SecOC_00256]). Другое подсчитывает неудачную попытку и при достижении лимита передает SECOC_E_FRESHNESS_FAILURE в DET ([SWS_SecOC_00248]). Кроме того, Security Events направляются в IdsM, например SECOC_SEV_MAC_VERIFICATION_FAILED с DataId в качестве контекста ([SWS_SecOC_00274], [SWS_SecOC_00275]).

Дальнейшие подробные доказательства

Сгенерированное ИИ руководство на основе выдержек из спецификации, содержащихся в полезной нагрузке. Нормативными для R20-11 являются требования (Requirements); ссылки на разделы документов частично взяты из других релизов. Не заменяет спецификацию.

Secure Onboard Communication (SecOC)

Provides cryptographic authentication and freshness protection for critical communication PDUs.

Funktionen — Übersicht

Typen — Übersicht

Funktionen & Typen — Detailansicht

функция SecOC_Init [SWS_SecOC_00106] 📄 PDF

void SecOC_Init (const SecOC_ConfigType* config);

Initializes the the Sec OC module. Successful initialization leads to state Sec OC_ INIT. In configurations, in which Sec OC is assigned to more than one partition (i.e. Sec OC_ Main Functions are mapped to partition s), Sec OC may provide one init AUTOSAR CP R20 - of Document ID : AUTOSAR_SWS_SecureOnboardCommunication function per partition. The decision on whether a single Sec OC_ Init() function or one per partition is provided is implementation - specific. In case a given implementation provides one Sec OC_ Init() function per partition, it is up to the implementation to devise a naming pattern that prevents name clashes among the different Sec OC_ Init() functions (e.g., by adding a suffix containing short name the Ecuc Partition.

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 4620b5d490e2 Происхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Синхронная функция SecOC_Init служит для инициализации модуля SecOC и при успешном завершении переводит его в состояние SecOC_INIT [SWS_SecOC_00106]. Вызов осуществляется через интерфейс из SecOC.h с Service ID 0x01 [SWS_SecOC_00106].

Параметры и возвращаемые значения

  • Передаваемые параметры: через входной параметр config передается указатель на выбранную структуру конфигурации типа SecOC_ConfigType [SWS_SecOC_00106].
  • Возвращаемое значение: функция не имеет возвращаемого значения (void) [SWS_SecOC_00106].

Параллелизм и секционирование

Выполнение SecOC_Init специфицировано как нереентерабельное (Non Reentrant) [SWS_SecOC_00106].

Особые требования действуют для систем с несколькими разделами: если модуль SecOC сопоставлен нескольким разделам (путем распределения основных функций, таких как SecOC_MainFunction, по разделам), для каждого раздела может существовать функция Init [SWS_SecOC_00106]. Предоставляется ли центральная функция SecOC_Init или отдельные функции для каждого раздела, зависит от реализации [SWS_SecOC_00106]. Если предлагаются функции для конкретных разделов, реализация должна предотвращать коллизии имен, например, путем добавления суффикса с коротким именем соответствующей EcucPartition [SWS_SecOC_00106].

Этот текст был сгенерирован ИИ на основе спецификации AUTOSAR Classic R20-11.

Руководство разработчика реализации в подготовке (сложность I1)

функция SecOC_DeInit [SWS_SecOC_00161] 📄 PDF

void SecOC_DeInit (void);

This service stops the secure onboard communication. All buffered I - PDU are removed and have to be obtained again, if needed, after Sec OC_ Init has been called. By a call to Sec OC_ De Init the AUTOSAR Sec OC module is put into a not in itialized state (Sec OC_ UNINIT).

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: c3c9650a2dbc Происхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Использование и семантика

Синхронная функция SecOC_DeInit завершает работу безопасной бортовой коммуникации в модуле SecOC и переводит его в состояние SecOC_UNINIT [SWS_SecOC_00161]. Функция объявлена в заголовочном файле SecOC.h и имеет Service-ID 0x05, а также сигнатуру void SecOC_DeInit(void) [SWS_SecOC_00161]. Она не обрабатывает ни входных, ни выходных параметров и не возвращает значения [SWS_SecOC_00161].

Очистка буферов и переход между состояниями

При вызове SecOC_DeInit все промежуточно сохраненные в модуле I-PDU отбрасываются и удаляются из буферов [SWS_SecOC_00161]. Если эти данные по-прежнему требуются после повторного запуска защищенной коммуникации, их необходимо получить заново после повторного вызова SecOC_Init [SWS_SecOC_00161].

Параллелизм и ограничения

Для выполнения деинициализации действуют фиксированные предписания и граничные условия [SWS_SecOC_00161]:

  • Нереентерабельная: интерфейс специфицирован как нереентерабельный (Non Reentrant) и поэтому не должен выполняться конкурентно [SWS_SecOC_00161].
  • Условия очередности: модуль после вызова остается в неинициализированном состоянии, вследствие чего последующие службы коммуникации обязательно требуют повторного вызова SecOC_Init [SWS_SecOC_00161].

Это указание по использованию было сгенерировано автоматически на основе спецификации AUTOSAR Classic R20-11.

Руководство разработчика реализации в подготовке (сложность I1)

функция SecOC_IfTransmit [SWS_SecOC_00112] 📄 PDF

Std_ReturnType SecOC_IfTransmit (PduIdType TxPduId, const PduInfoType* PduInfoPtr);

Requests transmission of a PDU.

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 4ad6d7766599 Происхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Использование

Синхронная сервисная функция SecOC_IfTransmit служит для запроса передачи PDU в модуле SecOC [SWS_SecOC_00112]. Она имеет Service-ID 0x49 и объявляется через заголовочный файл SecOC.h [SWS_SecOC_00112].

Функция ожидает два входных параметра [SWS_SecOC_00112]:

  • TxPduId: идентификатор передаваемой PDU (тип PduIdType).
  • PduInfoPtr: указатель на структуру типа PduInfoType, которая предоставляет длину данных, а также указатели на данные PDU и на метаданные.

Не существует ни входных/выходных, ни чисто выходных параметров [SWS_SecOC_00112].

Возвращаемые значения и обработка ошибок

В качестве синхронного возвращаемого значения возвращается статус типа Std_ReturnType [SWS_SecOC_00112]:

  • E_OK: запрос на передачу был принят [SWS_SecOC_00112].
  • E_NOT_OK: запрос на передачу не был принят [SWS_SecOC_00112].

В случае сбоя на неудачное выполнение запроса непосредственно указывает E_NOT_OK; специфические коды ошибок для DET или DEM в спецификации функции отдельно не приводятся [SWS_SecOC_00112].

Параллелизм и ограничения

В отношении параллелизма функция является реентерабельной для различных PDU-ID, однако нереентерабельна для одного и того же PDU-ID [SWS_SecOC_00112].

Это указание по использованию было сгенерировано ИИ на основе спецификации AUTOSAR.

функция SecOC_TpTransmit [SWS_SecOC_91008] 📄 PDF

Std_ReturnType SecOC_TpTransmit (PduIdType TxPduId, const PduInfoType* PduInfoPtr);

Requests transmission of a PDU.

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 4b4f6d06f1cb Происхождение Открытые вопросы (1)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Синхронный интерфейс SecOC_TpTransmit с Service-ID 0x53 служит для запроса передачи PDU в модуле SecOC и объявляется через заголовочный файл SecOC.h [SWS_SecOC_91008]. Он принимает запрос на отправку и инициирует дальнейшую обработку внутри модуля.

Использование и взаимодействие

В качестве входных параметров функция ожидает идентификатор PDU TxPduId, а также указатель PduInfoPtr на константу типа PduInfoType, которая содержит сведения о длине PDU, а также указатели на полезные данные и метаданные [SWS_SecOC_91008]. Функциональное взаимодействие определяется конфигурацией: если SecOCPduType сконфигурирован на SECOC_TPPDU, вызов SecOC_TpTransmit запускает конкретную операцию отправки для Authentic I-PDU [SWS_SecOC_00253].

Возвращаемые значения и параллелизм

Результат вызова возвращается через Std_ReturnType: значение E_OK подтверждает, что запрос на отправку был успешно принят, в то время как E_NOT_OK означает, что запрос был отклонен [SWS_SecOC_91008]. В отношении параллелизма функция реализована как реентерабельная для различных идентификаторов PDU, однако ни в коем случае не должна вызываться реентерабельно для одного и того же TxPduId [SWS_SecOC_91008].

Интерпретация: отклонение запроса со значением E_NOT_OK на практике, вероятно, может объясняться прежде всего недопустимыми значениями указателя в PduInfoPtr либо уже заблокированной или выполняющейся передачей той же PDU. Вопрос Q-4c6165f6330c4bc2 (открытый)

Это указание по использованию было создано автоматически на основе спецификации AUTOSAR R20-11.

Руководство разработчика реализации в подготовке (сложность I1)

функция SecOC_IfCancelTransmit [SWS_SecOC_00113] 📄 PDF

Std_ReturnType SecOC_IfCancelTransmit (PduIdType TxPduId);

Requests cancellation of an ongoing transmission of a PDU in a lower layer communication module.

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 93fdfc8c106e Происхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Использование и контекст вызова

Синхронная интерфейсная функция SecOC_IfCancelTransmit запрашивает отмену текущей передачи PDU в нижележащем коммуникационном модуле [SWS_SecOC_00113]. Она объявлена через заголовочный файл SecOC.h и имеет Service-ID 0x4a [SWS_SecOC_00113]. Через передаваемый параметр TxPduId типа PduIdType передается та PDU, процесс отправки которой должен быть отменен [SWS_SecOC_00113]. Дополнительные входные или выходные параметры отсутствуют [SWS_SecOC_00113].

Возвращаемые значения и выполнение

Результат запроса на отмену передается вызывающей стороне синхронно через возвращаемое значение типа Std_ReturnType [SWS_SecOC_00113]:

  • E_OK: нижележащий целевой модуль успешно выполнил отмену передачи PDU [SWS_SecOC_00113].
  • E_NOT_OK: запрос на отмену был отклонен целевым модулем [SWS_SecOC_00113].

Поскольку специфические коды ошибок или уведомления об ошибках для модулей регистрации ошибок разработки или диагностики (DET/DEM) для этой функции не специфицированы, для обнаружения ошибок служит исключительно возвращаемое значение [SWS_SecOC_00113].

Параллелизм и ограничения

В отношении параллельного вызова SecOC_IfCancelTransmit является реентерабельной для различных идентификаторов PDU, но явно нереентерабельна для одного и того же TxPduId [SWS_SecOC_00113]. Поэтому вызывающие модули должны с помощью подходящей синхронизации гарантировать, что несколько экземпляров не инициируют отмену отправки для одной и той же PDU одновременно.

Данное указание по использованию было создано автоматически на основе спецификации AUTOSAR CP R20-11.

Руководство разработчика реализации в подготовке (сложность I1)

функция SecOC_TpCancelTransmit [SWS_SecOC_91009] 📄 PDF

Std_ReturnType SecOC_TpCancelTransmit (PduIdType TxPduId);

Requests cancellation of an ongoing transmission of a PDU in a lower layer communication module.

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 507f9341fb59 Происхождение Открытые вопросы (1)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Синхронная функция SecOC_TpCancelTransmit служит для того, чтобы запросить отмену текущей передачи PDU в нижележащем коммуникационном модуле [SWS_SecOC_91009]. Она объявлена через заголовочный файл SecOC.h и имеет ID сервиса 0x54 [SWS_SecOC_91009].

В качестве входного параметра передается идентификатор TxPduId типа PduIdType, который однозначно идентифицирует отменяемую передаваемую PDU [SWS_SecOC_91009]. Результат запроса отмены синхронно возвращается через возвращаемое значение типа Std_ReturnType [SWS_SecOC_91009]:

  • E_OK: отмена передачи была успешно выполнена целевым модулем [SWS_SecOC_91009].
  • E_NOT_OK: отмена была отклонена целевым модулем [SWS_SecOC_91009].

Что касается параллелизма, функция является реентерабельной для различных ID PDU, но явно нереентерабельной для одного и того же ID PDU [SWS_SecOC_91009]. Поэтому вызывающие компоненты должны гарантировать избежание параллельных вызовов с идентичным TxPduId. Поскольку полезная нагрузка не предусматривает специальных кодов ошибок для Default Error Tracer (DET) или Diagnostic Event Manager (DEM), непосредственная обработка ошибок в контексте вызывающей стороны, по всей видимости, должна происходить в первую очередь посредством анализа возвращаемого значения E_NOT_OK [SWS_SecOC_91009]. Вопрос Q-c1f907444c4ca270 (открытый)

Данное указание по использованию сгенерировано автоматически и основано на спецификации AUTOSAR R20-11.

Руководство разработчика реализации в подготовке (сложность I1)

функция SecOC_TpCancelReceive [SWS_SecOC_91010] 📄 PDF

Std_ReturnType SecOC_TpCancelReceive (PduIdType RxPduId);

Requests cancellation of an ongoing reception of a PDU in a lower layer transport protocol module.

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 7bc4b1ba75bb Происхождение Открытые вопросы (1)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Синхронная функция SecOC_TpCancelReceive служит для того, чтобы запросить отмену текущей операции приема PDU в нижележащем модуле транспортного протокола [SWS_SecOC_91010]. Через единственный входной параметр RxPduId модулю передается однозначная идентификация отменяемой PDU [SWS_SecOC_91010].

Возвращаемые значения и выполнение

Обратная связь об успехе отмены происходит непосредственно через возвращаемое значение типа Std_ReturnType [SWS_SecOC_91010]:

  • E_OK: отмена приема была успешно выполнена целевым модулем [SWS_SecOC_91010].
  • E_NOT_OK: отмена была отклонена целевым модулем [SWS_SecOC_91010].

Специфические коды ошибок, ошибки разработки (DET) или производственные ошибки (DEM) в данных спецификации функции не предусмотрены. Интерпретация: под указанным в спецификации целевым модулем («destination module»), по-видимому, подразумевается нижележащий модуль транспортного протокола, которому адресован запрос на отмену. Вопрос Q-bce6ed77e65a6b9b (открытый)

Параллелизм и интеграция

Что касается параллелизма, функция объявлена как нереентерабельная (Non Reentrant) [SWS_SecOC_91010]. Поэтому одновременный или прерывающий вызов выполняться не должен; вызывающие программные модули должны соответствующим образом координировать обращения. Функция обладает ID сервиса 0x4c и объявляется через заголовочный файл SecOC.h [SWS_SecOC_91010].

Данное указание по использованию сгенерировано ИИ и основано исключительно на спецификациях релиза AUTOSAR R20-11.

Руководство разработчика реализации в подготовке (сложность I1)

функция SecOC_VerifyStatusOverride [SWS_SecOC_00122] 📄 PDF

Std_ReturnType SecOC_VerifyStatusOverride (uint16 ValueID, SecOC_OverrideStatusType overrideStatus, uint8 numberOfMessagesToOverride);

Service SecOC_VerifyStatusOverride.

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 87867716fd61 Происхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Синхронная функция SecOC_VerifyStatusOverride позволяет приложению целенаправленно переопределять поведение SecOC при верификации и пересылке, чтобы принимать или отклонять I-PDU независимо от фактического результата верификации, а также управлять обработкой ошибок [SWS_SecOC_00122].

Параметры и контекст вызова

Адресация зависит от конфигурации модуля: если параметр SecOCOverrideStatusWithDataId установлен в FALSE, Value ID идентифицирует Freshness Value всех назначенных Secured I-PDU; если параметр установлен в TRUE, Value ID напрямую обозначает Data ID некоторой Secured I-PDU [SWS_SecOC_00122]. С помощью overrideStatus определяются требуемое поведение и его срок действия. Счетчик numberOfMessagesToOverride определяет количество последовательно переопределяемых верификаций, однако обрабатывается исключительно в режимах SECOC_OVERRIDE_DROP_UNTIL_LIMIT, SECOC_OVERRIDE_SKIP_UNTIL_LIMIT и SECOC_OVERRIDE_PASS_UNTIL_LIMIT [SWS_SecOC_00122].

Для режимов SECOC_OVERRIDE_PASS_UNTIL_NOTICE, SECOC_OVERRIDE_SKIP_UNTIL_LIMIT, SECOC_OVERRIDE_PASS_UNTIL_LIMIT и SECOC_OVERRIDE_SKIP_UNTIL_NOTICE параметр SecOCEnableForcedPassOverride должен быть обязательно сконфигурирован в TRUE [SWS_SecOC_00122].

Параллелизм и возвращаемые значения

Функция является реентерабельной для различных Freshness Value ID, но нереентерабельна для одного и того же Freshness Value ID [SWS_SecOC_00122]. Успешный вызов возвращает E_OK, тогда как неудачный вызов подтверждается значением E_NOT_OK [SWS_SecOC_00122].

Взаимодействие при верификации

Установленное переопределение (override) вмешивается в логику обработки тракта приема:

  • Если используются раздельные Authentic и Cryptographic I-PDU (SecOCRxSecuredPduCollection), overrideStatus управляет поведением, как только обе PDU с подходящим Message Linker будут приняты [SWS_SecOC_00203], [SWS_SecOC_00206], [SWS_SecOC_00211].
  • Даже при превышении SecOCAuthenticationBuildAttempts или SecOCAuthenticationVerifyAttempts, а также при неустранимых ошибках (таких как KEY_FAILURE), результат верификации и пересылка PDU определяются преимущественно значением overrideStatus [SWS_SecOC_00240], [SWS_SecOC_00241].

Этот текст был создан ИИ и основан на требованиях спецификации AUTOSAR.

Руководство разработчика реализации в подготовке (сложность I2)

функция SecOC_SendDefaultAuthenticationInformation [SWS_SecOC_91013] 📄 PDF

Std_ReturnType SecOC_SendDefaultAuthenticationInformation (uint16 FreshnessValueID, boolean sendDefaultAuthenticationInformation);

The service provides the ability to enable the sending of un - authenticated PDU to lower layer. (example: in case authentication build counter has reached the configuration value Sec OCAuthentication Build Attempts or the query of the freshness function returns E_ NOT_ OK or the calculation of the authenticator has returned a non - recoverable error such as returning E_ NOT_ OK or KEY_ FAILURE). T his service is optional (the service is available only if Sec OCDefault Authentication Information Pattern is configured). If the service is not available or the service is available but the service was called with send Default

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 78b64ca2ff88 Происхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Использование

Синхронная функция SecOC_SendDefaultAuthenticationInformation ([SWS_SecOC_91013]) позволяет целенаправленно разрешать или блокировать передачу неаутентифицированных I-PDU на нижележащие уровни. Служба объявлена через SecOC.h и управляет поведением для конкретного Freshness Value ID с помощью флага send Default Authentication Information. При успешном запросе функция возвращает E_OK, в противном случае — E_NOT_OK ([SWS_SecOC_91013]).

Взаимодействие и поведение при ошибках

Функция является опциональной и доступна только в том случае, если сконфигурирован параметр SecOCDefaultAuthenticationInformationPattern ([SWS_SecOC_91013]). Поведение срабатывает, если генерация информации об аутентификации завершается ошибкой — например, когда достигнут счетчик SecOCAuthenticationBuildAttempts, функция свежести возвращает E_NOT_OK или вычисление аутентификатора возвращает неустранимую ошибку, такую как KEY_FAILURE или E_NOT_OK ([SWS_SecOC_91013], [SWS_SecOC_00229]):

  • Если служба была вызвана со значением TRUE, модуль использует шаблон SecOCDefaultAuthenticationInformationPattern для всех байтов значения свежести и аутентификатора для построения информации аутентификации и не прерывает запрос на отправку ([SWS_SecOC_91013], [SWS_SecOC_00229]).
  • Если служба недоступна или была вызвана для соответствующего ID со значением FALSE, модуль удаляет аутентичный I-PDU из своего внутреннего буфера и прерывает передачу ([SWS_SecOC_91013], [SWS_SecOC_00229]).

Параллелизм

Функция не является реентерабельной для одного и того же Freshness Value ID, однако ее разрешено вызывать реентерабельно для различных ID ([SWS_SecOC_91013]).

Это указание по использованию было автоматически сгенерировано на основе спецификации AUTOSAR R20-11.

Руководство разработчика реализации в подготовке (сложность I1)

функция SecOC_RxIndication [SWS_SecOC_00124] 📄 PDF

void SecOC_RxIndication (PduIdType RxPduId, const PduInfoType* PduInfoPtr);

Indication of a received PDU from a lower layer communication interface module.

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

Использование и контекст вызова

Синхронная интерфейсная функция SecOC_RxIndication (Service ID 0x42) вызывается нижележащим модулем интерфейса связи, чтобы сообщить о приеме PDU модулю SecOC [SWS_SecOC_00124]. При вызове RxPduId идентифицирует принятую PDU, тогда как через PduInfoPtr передается указатель на информацию о PDU. Данная структура содержит длину полезных данных SduLength, указатель на буфер SduDataPtr, а также соответствующие метаданные PDU [SWS_SecOC_00124]. Функция не имеет возвращаемого значения и объявлена через заголовочный файл SecOC.h [SWS_SecOC_00124].

Обработка ошибок и проверка длины

Для приема I-PDU со статической конфигурацией (защищенных, аутентичных или криптографических I-PDU с параметром EcuC DynamicLength, равным FALSE) действует специальная проверка на ошибки: если принятая длина меньше сконфигурированной длины, модуль SecOC отбрасывает I-PDU без уведомления [SWS_SecOC_00268]. Интерпретация: поскольку функция возвращает void, некорректные или неполные I-PDU, по всей видимости, отбрасываются без обратной связи с вызывающим уровнем. Вопрос Q-6e9a176383e1983b (открытый)

Параллелизм и ограничения

Выполнение SecOC_RxIndication является реентерабельным для вызовов с различными ID PDU, однако явно нереентерабельно для одного и того же ID PDU [SWS_SecOC_00124]. Поэтому вызывающие модули должны посредством управления своей последовательностью выполнения гарантировать предотвращение параллельных вызовов с идентичным RxPduId.

Данное указание по использованию сформировано автоматически и основано на спецификации AUTOSAR R20-11.

Руководство разработчика реализации в подготовке (сложность I1)

функция SecOC_TpRxIndication [SWS_SecOC_00125] 📄 PDF

void SecOC_TpRxIndication (PduIdType id, Std_ReturnType result);

Called after an I - PDU has been received via the TP API, the result indicates whether the transmission was successful or not.

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 4e2c4fc6858d Происхождение Открытые вопросы (1)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Функция SecOC_TpRxIndication служит callback-интерфейсом модуля SecOC и вызывается после приема I-PDU через API транспортного протокола (TP API) [SWS_SecOC_00125]. Посредством этого уведомления SecOC узнает, завершилась ли передача I-PDU успешно или произошла ошибка передачи [SWS_SecOC_00125].

Интерфейс обладает следующими параметрами и свойствами согласно [SWS_SecOC_00125]:

  • id (PduIdType): идентификатор принятого I-PDU, для которого сигнализируется событие приема.
  • result (Std_ReturnType): результат приема PDU, указывающий, была ли транспортировка успешной или завершилась сбоем.
  • Возвращаемое значение: отсутствует (void); функция не возвращает вызывающей стороне никакого значения статуса.

Что касается параллелизма, SecOC_TpRxIndication специфицирована как реентерабельная (Reentrant) и работает синхронно (Synchronous) под Service-ID 0x45 [SWS_SecOC_00125]. Декларация предоставляется через заголовочный файл SecOC.h [SWS_SecOC_00125]. Интерпретация: вызов, вероятно, типично инициируется транспортирующим уровнем, таким как PduR или TP-модуль, как только передача данных PDU полностью завершена. Вопрос Q-6448356fa3609004 (открытый)

Для этой функции в спецификации не определены специфические коды ошибок, проверки DET или записи об ошибках DEM [SWS_SecOC_00125]. Обработка ошибок ограничивается передачей результата транспортировки через параметр result, на основании которого модуль SecOC решает, обрабатывать ли принятые данные дальше или отбросить их.

Это указание по использованию было сгенерировано автоматически на основе спецификации AUTOSAR CP R20-11.

Руководство разработчика реализации в подготовке (сложность I1)

функция SecOC_TxConfirmation [SWS_SecOC_00126] 📄 PDF

void SecOC_TxConfirmation (PduIdType TxPduId, Std_ReturnType result);

The lower layer communication interface module confirms the transmission of a PDU, or the failure to transmit a PDU.

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 73c9975309da Происхождение Открытые вопросы (1)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Использование и контекст вызова

Функция SecOC_TxConfirmation вызывается нижележащим модулем коммуникационного интерфейса для синхронного подтверждения модулю SecOC успешной передачи или сбоя отправки PDU [SWS_SecOC_00126]. Сервис не имеет возвращаемого значения (void), объявлен в заголовочном файле SecOC.h и числится под Service-ID 0x40 [SWS_SecOC_00126].

Функция ожидает два входных параметра [SWS_SecOC_00126]:

  • TxPduId: идентификатор переданной PDU (тип PduIdType).
  • result: результат передачи (тип Std_ReturnType) со значениями E_OK при успешной доставке или E_NOT_OK при неудавшейся передаче.

Обработка ошибок и параллелизм

Ошибки передачи нижних уровней передаются непосредственно через аргумент result со значением E_NOT_OK [SWS_SecOC_00126]. В отношении параллелизма вызов является реентерабельным для различных PDU-ID, однако определен как нереентерабельный для одного и того же PDU-ID [SWS_SecOC_00126]. Конкретный контекст выполнения, вероятно, находится на уровне задач или прерываний нижележащего модуля, так как спецификация не предусматривает ограничений на этот счет. Вопрос Q-8bb15b92df860fc1 (открытый)

Взаимодействие и перенаправление

Если используется конфигурация SecOCTxSecuredPduCollection, SecOC передает подтверждение на вышележащий уровень только после того, как SecOC_TxConfirmation была вызвана как для Authentic I-PDU, так и для Cryptographic I-PDU [SWS_SecOC_00270].

При этом для статуса результата, направляемого на верхний уровень, действует строгое условие: параметр result перенаправленного вызова равен E_OK только тогда, когда подтверждения для обеих составных PDU были переданы соответственно с E_OK; в противном случае статус имеет значение E_NOT_OK [SWS_SecOC_00270].

Это указание по использованию было сгенерировано автоматически на основе спецификации AUTOSAR R20-11.

Руководство разработчика реализации в подготовке (сложность I1)

функция SecOC_TpTxConfirmation [SWS_SecOC_00152] 📄 PDF

void SecOC_TpTxConfirmation (PduIdType id, Std_ReturnType result);

This function is called after the I - PDU has been transmitted on its network, the result indicates whether the transmission was successful or not.

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

Функция SecOC_TpTxConfirmation служит для подтверждения переданной по сети I-PDU и синхронно информирует модуль SecOC об успехе или неудаче процесса отправки [SWS_SecOC_00152].

Использование и параметры

Вызов выполняется после физической передачи I-PDU в сети [SWS_SecOC_00152]. Интерфейс объявлен в заголовке SecOC.h и имеет Service-ID 0x48 [SWS_SecOC_00152]. Он принимает два входных параметра и не возвращает значения (void):

  • id (тип PduIdType): уникальная идентификация переданной I-PDU [SWS_SecOC_00152].
  • result (тип Std_ReturnType): указывает, была ли передача в сети успешной или произошел сбой [SWS_SecOC_00152].

Параллелизм и выполнение

Функция согласно спецификации должна выполняться синхронно и является полностью реентерабельной (Reentrant) [SWS_SecOC_00152]. Таким образом, она может вызываться параллельно для различных или одних и тех же I-PDU, если этого требует контекст вызова.

Обработка ошибок и взаимодействие

Специфические коды ошибок DET или DEM в полезной нагрузке не выделяются. Обработка ошибок, связанных с передачей, осуществляется преимущественно через переданный параметр статуса result, который сообщает модулю, прошла ли отправка успешно [SWS_SecOC_00152]. Интерпретация: по-видимому, функция в первую очередь служит интерфейсом обратного вызова для нижележащих экземпляров транспортного протокола, чтобы после завершения больших или фрагментированных передач возвращать статус отправки. Вопрос Q-a2957406d76ee65f (открытый)

Данное указание по применению создано ИИ и обобщает требования из спецификации AUTOSAR для модуля SecOC.

Руководство разработчика реализации в подготовке (сложность I1)

функция SecOC_TriggerTransmit [SWS_SecOC_00127] 📄 PDF

Std_ReturnType SecOC_TriggerTransmit (PduIdType TxPduId, PduInfoType* PduInfoPtr);

Within this API , the upper layer module (called module) shall check whether the available data fits into the buffer size reported by Pdu Info Ptr - >Sdu Length. If it fits, it shall copy its data into the buffer provided by Pdu Info Ptr - >Sdu Data Ptr and update the length of the actual copied data in Pdu Info Ptr - >Sdu Length. If not, it returns E_ NOT_ OK without changing Pdu Info Ptr.

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: da47edaa7d8f Происхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Синхронный интерфейс SecOC_TriggerTransmit служит для копирования SDU, запрошенной для передачи [SWS_SecOC_00127]. Через параметр TxPduId адресуется SDU, тогда как PduInfoPtr в качестве входного и выходного параметра предоставляет указатель на целевой буфер (SduDataPtr), а также сведения о размере буфера (SduLength) [SWS_SecOC_00127].

Использование и передача данных

Внутри функции модуль проверяет, помещаются ли предоставляемые данные в размер буфера, сообщенный через PduInfoPtr->SduLength [SWS_SecOC_00127]:

  • Если данные помещаются, функция копирует их в буфер PduInfoPtr->SduDataPtr, записывает фактическое количество скопированных байтов в PduInfoPtr->SduLength и возвращает E_OK [SWS_SecOC_00127].
  • Если объема памяти недостаточно, функция возвращает E_NOT_OK без изменения содержимого PduInfoPtr [SWS_SecOC_00127].

Обработка ошибок и параллелизм

Если возвращается E_NOT_OK, данные SDU скопированы не были. В этом случае вызывающая сторона не должна анализировать или использовать PduInfoPtr, так как он может содержать указатель NULL или указывать на недействительные данные [SWS_SecOC_00127]. Функция является реентерабельной для различных ID PDU, но нереентерабельной для одного и того же TxPduId [SWS_SecOC_00127]. Сервис доступен через заголовочный файл SecOC.h [SWS_SecOC_00127].

Данное указание по использованию сгенерировано автоматически на основе спецификации AUTOSAR Classic Platform Release R20-11.

Руководство разработчика реализации в подготовке (сложность I1)

функция SecOC_CopyRxData [SWS_SecOC_00128] 📄 PDF

BufReq_ReturnType SecOC_CopyRxData (PduIdType id, const PduInfoType* info, PduLengthType* bufferSizePtr);

This function is called to provide the received data of an I - PDU segment (N - PDU) to the upper layer. Each call to this function provides the next part of the I - PDU data. The si ze of the remaining buffer is written to the position indicated by buffer Size Ptr.

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 35610f4482a7 Происхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Использование и семантика

Синхронная функция SecOC_CopyRxData вызывается для передачи принятых данных сегмента I-PDU (N-PDU) на верхний уровень [SWS_SecOC_00128]. Каждый вызов предоставляет очередную следующую часть данных I-PDU [SWS_SecOC_00128]. Сервис имеет ID сервиса 0x44 и доступен через заголовочный файл SecOC.h [SWS_SecOC_00128].

Параметры и запрос буфера

Параметр id однозначно идентифицирует принятую I-PDU [SWS_SecOC_00128]. Через указатель info предоставляются буфер-источник SduDataPtr и количество байтов для копирования SduLength [SWS_SecOC_00128]. Передача SduLength со значением 0 служит для запроса размера приемного буфера, доступного в данный момент в верхнем модуле; в этом случае SduDataPtr допускается передавать как NULL_PTR [SWS_SecOC_00128]. В область, на которую ссылается bufferSizePtr, после копирования записывается оставшийся размер буфера [SWS_SecOC_00128].

Возвращаемые значения и параллелизм

Функция возвращает статус BufReq_ReturnType [SWS_SecOC_00128]. При успешной передаче данных она возвращает BUFREQ_OK [SWS_SecOC_00128]. При возникновении ошибки данные не копируются, и функция возвращает BUFREQ_E_NOT_OK [SWS_SecOC_00128]. SecOC_CopyRxData специфицирована как реентерабельная [SWS_SecOC_00128].

Это указание по использованию было сгенерировано автоматически на основе спецификации AUTOSAR CP R20-11.

Руководство разработчика реализации в подготовке (сложность I1)

функция SecOC_CopyTxData [SWS_SecOC_00129] 📄 PDF

BufReq_ReturnType SecOC_CopyTxData (PduIdType id, const PduInfoType* info, const RetryInfoType* retry, PduLengthType* availableDataPtr);

Service SecOC_CopyTxData.

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 42779c9fb9b6 Происхождение Открытые вопросы (1)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Использование и семантика

Синхронная и реентерабельная функция SecOC_CopyTxData вызывается для извлечения данных передачи для сегмента I-PDU (N-PDU) [SWS_SecOC_00129]. Через параметр info передаются целевой буфер SduDataPtr, а также запрашиваемый объем байтов SduLength [SWS_SecOC_00129]. Вызов с SduLength, равным 0, позволяет запросить доступный объем данных или сообщить об изменениях статуса через параметр retry; в этом случае SduDataPtr может быть NULL_PTR [SWS_SecOC_00129]. Через availableDataPtr модуль сообщает оставшийся объем данных в буфере передачи [SWS_SecOC_00129].

Повторная попытка и обработка ошибок

Поведение буфера и повторных попыток управляется через retry [SWS_SecOC_00129]:

  • Если retry представляет собой NULL_PTR, скопированные данные разрешается освобождать немедленно [SWS_SecOC_00129].
  • При TP_CONFPENDING ранее скопированные данные остаются в буфере для устранения ошибок [SWS_SecOC_00129].
  • TP_DATACONF подтверждает все данные, переданные до этого вызова, для освобождения буфера [SWS_SecOC_00129].
  • TP_DATARETRY инициирует повторное копирование уже переданных данных, начиная со смещения в байтах, определенного TxTpDataCnt [SWS_SecOC_00129].

В качестве возвращаемых значений функция возвращает BUFREQ_OK при успешной операции копирования, BUFREQ_E_BUSY, если временно недостаточно готовых к передаче данных (что позволяет вызывающей стороне повторить попытку позже), или BUFREQ_E_NOT_OK при общем сбое [SWS_SecOC_00129].

Параллелизм

Функция спроектирована как реентерабельная, так что параллельные вызовы для различных экземпляров PDU, по-видимому, допустимы [SWS_SecOC_00129]. Вопрос Q-6420f2ca317efcb4 (открытый)

Это указание по использованию было сгенерировано автоматически на основе спецификации.

Руководство разработчика реализации в подготовке (сложность I1)

функция SecOC_StartReception [SWS_SecOC_00130] 📄 PDF

BufReq_ReturnType SecOC_StartOfReception (PduIdType id, const PduInfoType* info, PduLengthType TpSduLength, PduLengthType* bufferSizePtr);

Service SecOC_StartReception.

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: e711d8ef8bcc Происхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Использование

Синхронная и реентерабельная функция SecOC_StartReception вызывается в начале приема N-SDU для проверки соединения и предоставления необходимого приемного буфера [SWS_SecOC_00130]. При этом N-SDU может приниматься в виде одиночного кадра (Single Frame, SF) или фрагментированно через несколько N-PDU (First Frame, FF, с последующими Consecutive Frames, CF) [SWS_SecOC_00130]. Объявление доступно через заголовочный файл SecOC.h [SWS_SecOC_00130].

Параметры и запрос буфера

  • id: идентификация принятой I-PDU [SWS_SecOC_00130].
  • info: указатель на структуру PduInfoType с полезными данными первого либо одиночного кадра, а также метаданными; если не доступны ни данные, ни метаданные, передается NULL_PTR [SWS_SecOC_00130].
  • TpSduLength: общая длина принимаемой N-SDU. Если параметр передан со значением 0, сервис возвращает текущий максимально доступный размер буфера [SWS_SecOC_00130].
  • bufferSizePtr: выходной параметр для доступного приемного буфера, который используется модулем транспортного протокола для вычисления размера блока (BS) [SWS_SecOC_00130].

Возвращаемые значения и обработка ошибок

  • BUFREQ_OK: соединение принято, и прием продолжается; bufferSizePtr указывает доступный размер буфера (если буфер требуемого размера недоступен, возвращается 0) [SWS_SecOC_00130].
  • BUFREQ_E_NOT_OK: соединение отклонено, и прием прерывается; bufferSizePtr остается без изменений [SWS_SecOC_00130].
  • BUFREQ_E_OVFL: невозможно предоставить буфер требуемой длины; прием прерывается, и bufferSizePtr остается без изменений [SWS_SecOC_00130].

Это указание по использованию было автоматически сгенерировано на основе AUTOSAR R20-11.

Руководство разработчика реализации в подготовке (сложность I1)

функция SecOC_GetRxFreshness [SWS_SecOC_91007] 📄 PDF

Std_ReturnType SecOC_GetRxFreshness (uint16 SecOCFreshnessValueID, const uint8* SecOCTruncatedFreshnessValue, uint32 SecOCTruncatedFreshnessValueLength, uint16 SecOCAuthVerifyAttempts, uint8* SecOCFreshnessValue, uint32* SecOCFreshnessValueLength);

Service SecOC_GetRxFreshness.

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: ef974f5cced3 Происхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Синхронная интерфейсная функция SecOC_GetRxFreshness служит модулю SecOC для запроса текущего значения freshness для принятой защищенной I-PDU [SWS_SecOC_91007]. Вызов происходит, как только защищенная PDU была принята полностью и для ее конфигурации заданы SecOCQueryFreshnessValue == CFUNC, а также SecOCUseAuthDataFreshness == FALSE [SWS_SecOC_00247], [SWS_SecOC_00250].

Функция является реентерабельной [SWS_SecOC_91007] и передает либо ожидает следующие параметры:

  • SecOCFreshnessValueID: идентификатор запрашиваемого значения freshness [SWS_SecOC_91007].
  • SecOCTruncatedFreshnessValue и SecOCTruncatedFreshnessValueLength: указатель на содержащееся в принятой PDU усеченное значение freshness и его длину в битах [SWS_SecOC_91007].
  • SecOCAuthVerifyAttempts: количество предшествующих попыток верификации с момента приема PDU (начиная с 0, инкрементируется при каждой неудачной попытке) [SWS_SecOC_91007].
  • SecOCFreshnessValue и SecOCFreshnessValueLength: выходной буфер для определенного значения freshness, а также входной/выходной параметр для его длины в битах [SWS_SecOC_91007].

Результат запроса управляет дальнейшей обработкой в SecOC:

  • E_OK: значение freshness успешно предоставлено и используется для вычисления аутентификатора [SWS_SecOC_91007].
  • E_NOT_OK: предоставление завершилось сбоем из-за общих проблем или неверного ID freshness [SWS_SecOC_91007].
  • E_BUSY: информация временно недоступна [SWS_SecOC_91007]. В этом случае SecOC инкрементирует счетчик Authentication-Build-Counter и не выполняет попытку верификации аутентификации [SWS_SecOC_00236].

Это указание по использованию было сгенерировано автоматически на основе спецификации AUTOSAR R20-11.

Руководство разработчика реализации в подготовке (сложность I2)

функция SecOC_GetRxFreshnessAuthData [SWS_SecOC_91006] 📄 PDF

Std_ReturnType SecOC_GetRxFreshnessAuthData (uint16 SecOCFreshnessValueID, const uint8* SecOCTruncatedFreshnessValue, uint32 SecOCTruncatedFreshnessValueLength, const uint8* SecOCAuthDataFreshnessValue, uint16 SecOCAuthDataFreshnessValueLength, uint16 SecOCAuthVerifyAttempts, uint8* SecOCFreshnessValue, uint32* SecOCFreshnessValueLength);

Service SecOC_GetRxFreshnessAuthData.

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 21909ecce4eb Происхождение Открытые вопросы (1)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Синхронная и реентерабельная функция SecOC_GetRxFreshnessAuthData вызывается модулем SecOC, чтобы при полностью принятых защищенных I-PDU определить текущее значение свежести для аутентификации ([SWS_SecOC_91006], [SWS_SecOC_00246]). Вызов осуществляется конкретно в том случае, когда для соответствующей конфигурации PDU параметризованы SecOCQueryFreshnessValue = CFUNC, а также SecOCUseAuthDataFreshness = TRUE ([SWS_SecOC_00246], [SWS_SecOC_00249]).

Параметры и передаваемые значения

  • Входные данные: передаются идентификатор SecOCFreshnessValueID, содержащееся в I-PDU усеченное значение свежести SecOCTruncatedFreshnessValue вместе с длиной в битах SecOCTruncatedFreshnessValueLength, а также счетчик SecOCAuthVerifyAttempts, который инкрементируется при неудачных попытках ([SWS_SecOC_91006]).
  • Данные аутентификации: через SecOCAuthDataFreshnessValue и SecOCAuthDataFreshnessValueLength опционально передается сконфигурированный фрагмент принятого PDU; начальная позиция и длина определяются через SecOCAuthDataFreshnessStartPosition и SecOCAuthDataFreshnessLen ([SWS_SecOC_91006], [SWS_SecOC_00246]).
  • Выходные данные: полное значение свежести предоставляется через выходной буфер SecOCFreshnessValue, битовая длина которого выступает в качестве входного-выходного параметра SecOCFreshnessValueLength ([SWS_SecOC_91006]).

Возвращаемые значения и обработка ошибок

Функция сигнализирует об успехе запроса возвратом E_OK ([SWS_SecOC_91006]). Если значение свежести не может быть предоставлено из-за общих проблем или недействительного Freshness-ID, она возвращает E_NOT_OK; при временной недоступности она возвращает E_BUSY ([SWS_SecOC_91006]). Интерпретация: поскольку функция подключается как C-функция через CFUNC, ее реализация, вероятно, осуществляется внешним модулем управления свежестью. Вопрос Q-01aa77b7235b9001 (открытый)

Этот текст был сгенерирован ИИ на основе спецификации AUTOSAR R20-11.

Руководство разработчика реализации в подготовке (сложность I1)

функция SecOC_GetTxFreshness [SWS_SecOC_91004] 📄 PDF

Std_ReturnType SecOC_GetTxFreshness (uint16 SecOCFreshnessValueID, uint8* SecOCFreshnessValue, uint32* SecOCFreshnessValueLength);

This API returns th e freshness value from the Most Significant Bits in the first byte in the array (Sec OCFreshness Value), in big endian format.

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

Синхронная и реентерабельная функция SecOC_GetTxFreshness служит для предоставления актуального значения свежести для отправляемых сообщений и объявлена через заголовок SecOC.h [SWS_SecOC_91004]. Согласно [SWS_SecOC_00231], модуль SecOC вызывает эту функцию для PDU, если в конфигурации установлены SecOCQueryFreshnessValue = CFUNC, а также SecOCProvideTxTruncatedFreshnessValue = FALSE. Интерпретация: поскольку при соответствующей конфигурации SecOC выполняет данный вызов, функция, по-видимому, должна предоставляться в виде callout внешней компонентой. Вопрос Q-99a14f896ffddf5f (открытый)

Интерфейс использует следующие параметры [SWS_SecOC_91004]:

  • SecOCFreshnessValueID (In): числовой идентификатор запрошенного значения свежести.
  • SecOCFreshnessValueLength (InOut): передает или принимает битовую длину предоставленного значения свежести.
  • SecOCFreshnessValue (Out): указатель на байтовый массив для приема значения свежести в формате Big-Endian, начиная со старших битов в первом байте.

Возвращаемое значение типа Std_ReturnType сигнализирует о результате предоставления [SWS_SecOC_91004]:

  • E_OK: значение свежести успешно предоставлено.
  • E_BUSY: информация о свежести временно не может быть доставлена.
  • E_NOT_OK: запрос завершился сбоем, так как для данного ID или в целом невозможно определить значение.

Данное указание по использованию создано автоматически и основано исключительно на спецификациях AUTOSAR версии R20-11.

Руководство разработчика реализации в подготовке (сложность I1)

функция SecOC_GetTxFreshnessTruncData [SWS_SecOC_91003] 📄 PDF

Std_ReturnType SecOC_GetTxFreshnessTruncData (uint16 SecOCFreshnessValueID, uint8* SecOCFreshnessValue, uint32* SecOCFreshnessValueLength, uint8* SecOCTruncatedFreshnessValue, uint32* SecOCTruncatedFreshnessValueLength);

Service SecOC_GetTxFreshnessTruncData.

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 2ae3128a39ae Происхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Синхронная и реентерабельная функция SecOC_GetTxFreshnessTruncData вызывается модулем SecOC, чтобы при операциях передачи (TX) запрашивать как полное значение freshness, так и усеченное значение freshness (Truncated Freshness) для передаваемой Secured I-PDU [SWS_SecOC_91003]. Вызов осуществляется именно тогда, когда для конфигурации PDU заданы SecOCQueryFreshnessValue = CFUNC, а также SecOCProvideTxTruncatedFreshnessValue = TRUE [SWS_SecOC_00230].

Интерфейс передает следующие параметры [SWS_SecOC_91003]:

  • SecOCFreshnessValueID (in): идентификатор запрошенного значения freshness.
  • SecOCFreshnessValue (out): целевой буфер для текущего полного значения freshness.
  • SecOCFreshnessValueLength (inout): задает длину предоставленного значения свежести в битах.
  • SecOCTruncatedFreshnessValue (out): опциональный буфер для усеченного значения freshness, которое встраивается в Secured I-PDU.
  • SecOCTruncatedFreshnessValueLength (inout): передает сконфигурированную длину усеченного значения freshness; при необходимости значение может быть скорректировано функцией или сохранено без изменений.

В качестве возвращаемого значения функция возвращает E_OK при успешном предоставлении, E_BUSY, если информация временно недоступна, или E_NOT_OK, если предоставление завершилось сбоем из-за общих проблем или конкретно для переданного ID [SWS_SecOC_91003]. Объявление доступно через заголовочный файл SecOC.h [SWS_SecOC_91003].

Данное указание по использованию сгенерировано ассистентом ИИ-курации на основе данных спецификации из AUTOSAR R20-11.

Руководство разработчика реализации в подготовке (сложность I1)

функция SecOC_SPduTxConfirmation [SWS_SecOC_91005] 📄 PDF

void SecOC_SPduTxConfirmation (uint16 SecOCFreshnessValueID);

This interface is used by the Sec OC to indicate that the Secured I - PDU has been initiated for transmission.

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 802cf05f792c Происхождение Открытые вопросы (1)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Использование

Синхронный функциональный интерфейс SecOC_SPduTxConfirmation используется модулем SecOC для индикации того, что была инициирована передача защищенной I-PDU (Secured I-PDU) [SWS_SecOC_91005]. Функция объявлена в заголовочном файле SecOC.h и не имеет возвращаемого значения (void) [SWS_SecOC_91005].

В качестве единственного передаваемого параметра передается SecOCFreshnessValueID как входное значение (in) типа uint16 [SWS_SecOC_91005]. Этот параметр переносит идентификатор соответствующего значения свежести для затрагиваемой I-PDU [SWS_SecOC_91005]. Другие входные, выходные или сквозные параметры (inout/out) в интерфейсе отсутствуют [SWS_SecOC_91005].

Параллелизм и свойства

Интерфейс имеет Service-ID 0x4d, работает синхронно и спроектирован полностью реентерабельным [SWS_SecOC_91005]. Свойство реентерабельности допускает параллельный вызов в конкурирующих контекстах выполнения [SWS_SecOC_91005]. Сообщения об ошибках через DET или DEM, а также специальные коды ошибок в спецификации интерфейса не предусмотрены [SWS_SecOC_91005].

Интерпретация: поскольку SecOC вызывает эту функцию для уведомления о начале передачи PDU и при этом передает исключительно SecOCFreshnessValueID, вызов, вероятно, служит для обновления или подтверждения счетчика свежести во внешней компоненте [SWS_SecOC_91005]. Вопрос Q-f234a3c6e9b16362 (открытый)

Данное указание по использованию создано автоматически и основано исключительно на данных спецификации из AUTOSAR CP R20-11.

Руководство разработчика реализации в подготовке (сложность I1)

функция SecOC_MainFunctionRx [SWS_SecOC_00171] 📄 PDF

void SecOC_MainFunctionRx (void);

This function performs the processing of the Sec OC module's authentication and verification processing for the Rx path. Per configured Sec OCMain Function Rx instance one Sec OC_ Main Function Rx_ shall be implemented. Hereby is the short name of the Sec OCMain Function Rx configuration container in the ECU configuration.

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

Использование и контекст вызова

Функция SecOC_MainFunctionRx берет на себя центральную обработку аутентификации и верификации модуля SecOC для входящих сообщений в тракте приема [SWS_SecOC_00171]. Согласно своей спецификации интерфейса функция имеет сигнатуру void SecOC_MainFunctionRx (void), обладает ID сервиса 0x06, не ожидает входных параметров и не возвращает возвращаемого значения [SWS_SecOC_00171]. Она объявляется через заголовочный файл SchM_SecOC.h [SWS_SecOC_00171]; отсюда можно сделать вывод (интерпретация), что ее вызов осуществляется периодически диспетчером BSW в контексте задачи операционной системы. Вопрос Q-d24cb58f541f6674 (открытый)

Инстанцирование и конфигурация

В системных конфигурациях с несколькими экземплярами приема для каждого сконфигурированного контейнера SecOCMainFunctionRx реализуется собственный экземпляр функции по схеме SecOC_MainFunctionRx_<shortName> [SWS_SecOC_00171]. При этом <shortName> соответствует короткому имени контейнера, присвоенному в модели конфигурации ECU [SWS_SecOC_00171]. Это, предположительно, делает возможным раздельное управление по времени или приоритизацию различных путей обработки Rx. Вопрос Q-ebb55c5d3a3da97d (открытый)

Обработка ошибок и параллелизм

Для SecOC_MainFunctionRx в требованиях не задокументированы ни конкретные возвращаемые значения, ни явные коды ошибок для DET или DEM [SWS_SecOC_00171]. Поэтому состояния ошибок или неудачные верификации, по-видимому, обрабатываются сугубо внутренне и асинхронно передаются вышестоящим модулям по тракту приема. Вопрос Q-5d1e45f7a779bea9 (открытый)

Этот текст сгенерирован ИИ и служит в качестве справочного руководства. Решающее значение всегда имеет официальная спецификация AUTOSAR.

функция SecOC_MainFunctionTx [SWS_SecOC_00176] 📄 PDF

void SecOC_MainFunctionTx (void);

This function performs the processing of the Sec OC module's authentication and verification processing for the Tx path. Per configured Sec OCMain Function Tx instance one Sec OC_ Main Function Tx_ shall be implemented. Hereby is t he short name of the Sec OCMain Function Tx configuration container in the ECU configuration.

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 0a9d6b2d7e1e Происхождение Открытые вопросы (2)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Использование и контекст вызова

Основная функция SecOC_MainFunctionTx берет на себя согласно [SWS_SecOC_00176] обработку аутентификации и верификации модуля SecOC в тракте передачи (Tx-тракт). Она имеет сигнатуру void SecOC_MainFunctionTx(void), то есть не принимает входных параметров и не возвращает значения; ей назначен Service-ID 0x03 [SWS_SecOC_00176]. Декларация предоставляется через заголовочный файл SchM_SecOC.h [SWS_SecOC_00176]. Интерпретация: поскольку интеграция осуществляется через Schedule Manager, вызов, вероятно, типично выполняется циклически диспетчером BSW Scheduler в контексте задачи операционной системы. Вопрос Q-34b30208648c8e30 (открытый)

Инстанцирование и соглашение об именовании

Спецификация предусматривает специфическую для каждого экземпляра реализацию для множественных конфигураций: для каждого сконфигурированного контейнера экземпляра SecOCMainFunctionTx в конфигурации ECU должна быть реализована ровно одна функция по схеме именования SecOC_MainFunctionTx_<shortName>, где <shortName> соответствует короткому имени соответствующего конфигурационного контейнера [SWS_SecOC_00176].

Ограничения и обработка ошибок

Специфические коды ошибок, обратная связь от DET или DEM, а также подробности о реентерабельности отдельно не приведены в элементе спецификации [SWS_SecOC_00176]. Интерпретация: из-за привязки к специфическим для экземпляра конфигурационным контейнерам каждый созданный экземпляр, вероятно, отвечает за изолированное подмножество обработок Tx-PDU и в штатном режиме не должен конкурентно прерываться тем же контекстом задачи. Вопрос (открытый)

Это указание по использованию было сгенерировано автоматически ассистентом курации ИИ на основе спецификации AUTOSAR R20-11.

функция SecOC_VerificationStatusCallout [SWS_SecOC_00119] 📄 PDF

void SecOC_VerificationStatusCallout (SecOC_VerificationStatusType verificationStatus);

Service is used to propagate the status of each verification attempt from the Sec OC module to other modules. This service can be configured such that:  Only: "False" Verifica tion Status is propagated to modules  Both: "True" and "False" Verification Status are propagated to modules  None: No Verification Status is propagated

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

Синхронная функция callout SecOC_VerificationStatusCallout служит для передачи статуса попыток верификации из модуля SecOC внешним программным модулям [SWS_SecOC_00119]. Она объявлена в заголовочном файле SecOC_Externals.h и имеет Service ID 0x50 [SWS_SecOC_00119]. Через входной параметр verificationStatus (тип SecOC_VerificationStatusType) передается структура данных, объединяющая результат верификации для конкретных Freshness Value ID и Data ID [SWS_SecOC_00119]. Функция не имеет выходных параметров и не возвращает значения (тип возврата void) [SWS_SecOC_00119].

Поведение пересылки статуса является конфигурируемым и поддерживает три варианта [SWS_SecOC_00119]:

  • Only: распространяются исключительно неудачные попытки верификации («False»).
  • Both: модулям передаются как успешные («True»), так и неудачные («False») статусы верификации.
  • None: статус верификации не передается.

Что касается параллелизма, SecOC_VerificationStatusCallout является реентерабельной для различных Freshness Value ID, однако нереентерабельна для одного и того же Freshness Value ID [SWS_SecOC_00119]. Поэтому реализующие модули должны гарантировать, что при идентичном Freshness Value ID конкурирующие вызовы не происходят. Контекст вызова, вероятно, находится синхронно в рамках внутренней подпрограммы верификации модуля SecOC. Вопрос Q-cd6928ca22d48f54 (открытый) Специфические коды ошибок или сообщения в DET и DEM для этого callout не определены [SWS_SecOC_00119].

Это указание по использованию было сгенерировано ИИ и основано исключительно на данных спецификации релиза AUTOSAR R20-11.

Руководство разработчика реализации в подготовке (сложность I1)

функция SecOC_VerifyStatus [SWS_SecOC_91014] 📄 PDF

void SecOC_VerifyStatus (SecOC_VerificationStatusType verificationStatus);

This s ervice provides the ability to inform the application about the result of the verification attempt of a received PDU by the Sec OC module.

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 40383ff847fc Происхождение Открытые вопросы (1)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Использование и семантика

Синхронная функция SecOC_VerifyStatus информирует приложение о результате попытки верификации принятого PDU модулем SecOC [SWS_SecOC_91014]. Интерфейс имеет Service-ID 0x53, не возвращает значения (void) и предоставляется через заголовочный файл SecOC_Externals.h [SWS_SecOC_91014].

Параметры

Единственным передаваемым параметром служит входной параметр verificationStatus типа SecOC_VerificationStatusType [SWS_SecOC_91014]. Эта структура предоставляет подробные сведения о статусе верификации, а также информацию о том, для каких Data-ID и Freshness-Value-ID была выполнена верификация [SWS_SecOC_91014]. Дополнительных входных или выходных параметров не существует [SWS_SecOC_91014].

Обработка ошибок и параллелизм

Специфические коды ошибок, а также уведомления для DET или DEM для этой службы не определены [SWS_SecOC_91014]. Интерпретация: о неудачных верификациях приложению, вероятно, сообщается прежде всего через значения статуса внутри переданной структуры verificationStatus. Вопрос Q-177be3d746f99b24 (открытый) В отношении параллелизма SecOC_VerifyStatus не является реентерабельной для одного и того же Freshness-Value-ID, однако реентерабельна для различных Freshness-Value-ID [SWS_SecOC_91014].

Этот текст был сгенерирован ИИ и служит в качестве справочного руководства. Определяющей является спецификация AUTOSAR.

Руководство разработчика реализации в подготовке (сложность I1)

тип SecOC_StateType [SWS_SecOC_00162] 📄 PDF

States of the Sec OC module

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 9d4be727e8c2 Происхождение Открытые вопросы (2)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Тип перечисления SecOC_StateType служит для формального представления внутренних рабочих состояний модуля SecOC и предоставляется через заголовочный файл SecOC.h [SWS_SecOC_00162]. Он обеспечивает согласованное управление состоянием на протяжении всего жизненного цикла программного компонента.

Согласно спецификации, диапазон значений этого типа перечисления включает ровно два дискретных состояния [SWS_SecOC_00162]:

  • SECOC_UNINIT: однозначно сигнализирует о том, что модуль SecOC не инициализирован [SWS_SecOC_00162].
  • SECOC_INIT: обязательно указывает на то, что модуль SecOC был инициализирован [SWS_SecOC_00162].

Что касается взаимодействия и условий очередности, SECOC_UNINIT, предположительно, представляет собой состояние по умолчанию непосредственно после запуска системы. Вопрос Q-4d02fe3a0979113f (открытый) На этой фазе функциональные вызовы для криптографической защиты или верификации сообщений, вероятно, отклоняются, поскольку необходимые структуры данных еще не готовы. Только после успешной инициализации модуля статус, предположительно, меняется на SECOC_INIT. Вызывающие модули или внутренние процедуры контроля, вероятно, используют SecOC_StateType, чтобы синхронно проверять текущий рабочий статус и надежно предотвращать недопустимый доступ до инициализации.

Этот текст был создан ИИ и основан исключительно на данных спецификации из AUTOSAR R20-11.

Руководство разработчика реализации в подготовке (сложность I1)

тип SecOC_VerificationResultType [SWS_SecOC_00149] 📄 PDF

Enumeration to indicate veri fication results.

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 9b4c5c47c73b Происхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Тип перечисления SecOC_VerificationResultType служит для сигнализации результатов при верификации защищенных I-PDU в модуле SecOC и предоставляется через заголовочный файл Rte_SecOC_Type.h [SWS_SecOC_00149].

При этом перечисление специфицирует следующие значения результатов для дифференциации статуса верификации [SWS_SecOC_00149]:

  • SECOC_VERIFICATIONSUCCESS (0x00): верификация данных прошла успешно [SWS_SecOC_00149].
  • SECOC_VERIFICATIONFAILURE (0x01): верификация не увенчалась успехом [SWS_SecOC_00149].
  • SECOC_FRESHNESSFAILURE (0x02): верификация завершилась сбоем из-за некорректного значения freshness [SWS_SecOC_00149].
  • SECOC_AUTHENTICATIONBUILDFAILURE (0x03): верификация не увенчалась успехом из-за некорректно сформированных кодов аутентификации [SWS_SecOC_00149].
  • SECOC_NO_VERIFICATION (0x04): верификация была пропущена, и данные были без изменений перенаправлены на вышестоящий уровень; это состояние возможно только при активном переопределении статуса SecOC_VerifyStatusOverride [SWS_SecOC_00149].
  • SECOC_VERIFICATIONFAILURE_OVERWRITTEN (0x05): верификация завершилась сбоем, однако I-PDU все же была передана на верхний уровень вследствие статуса переопределения; это состояние также возникает исключительно при использовании SecOC_VerifyStatusOverride [SWS_SecOC_00149].

На основе этих значений вышестоящие уровни могут точно определять, прошла ли верификация штатно успешно, завершилась сбоем из-за криптографических кодов или значений freshness, либо же административные состояния переопределения управляли пересылкой данных [SWS_SecOC_00149].

Этот текст был сгенерирован ИИ на основе спецификации AUTOSAR CP R20-11.

тип SecOC_VerificationStatusType [SWS_SecOC_00160] 📄 PDF

Data structure to bundle the status of a verification attempt for a specific Freshness Value and Data ID

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 98b8726de1ab Происхождение Открытые вопросы (1)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Использование структуры статуса верификации

Тип структуры SecOC_VerificationStatusType объединяет согласно [SWS_SecOC_00160] результат попытки верификации защищенного I-PDU вместе с соответствующим Data-ID и использованным значением свежести. Определение предоставляется через заголовочный файл Rte_SecOC_Type.h и включает в себя следующие элементы:

  • freshnessValueID (uint16): идентификатор значения свежести, которое привело к данному статусу верификации ([SWS_SecOC_00160]).
  • verificationStatus (SecOC_VerificationResultType): подробный результат попытки верификации ([SWS_SecOC_00160]).
  • secOCDataId (uint16): Data-ID соответствующего PDU ([SWS_SecOC_00160]).

Элемент verificationStatus дифференцирует специфические состояния успеха и ошибки ([SWS_SecOC_00160]):

  • SECOC_VERIFICATIONSUCCESS: криптографическая проверка прошла успешно.
  • SECOC_VERIFICATIONFAILURE: верификация не удалась.
  • SECOC_FRESHNESSFAILURE: верификация не удалась из-за недействительного значения свежести.
  • SECOC_AUTHENTICATIONBUILDFAILURE: неудачная верификация вследствие некорректно сформированных кодов аутентификации.
  • SECOC_NO_VERIFICATION: попытка верификации для этого I-PDU не выполнялась; он был передан на верхний уровень без изменений.
  • SECOC_VERIFICATIONFAILURE_OVERWRITTEN: верификация завершилась сбоем, однако I-PDU был перенаправлен на верхний уровень из-за активного статуса переопределения (override).

Интерпретация: поскольку данный тип объединяет детали верификации, он, вероятно, применяется прежде всего в интерфейсах обратной связи и уведомлений, чтобы информировать вышестоящие уровни о состоянии аутентификации принятых данных. Вопрос Q-a1099bc88a2981e2 (открытый)

Этот текст был сгенерирован ИИ на основе спецификации AUTOSAR R20-11.

Руководство разработчика реализации в подготовке (сложность I1)

тип SecOC_OverrideStatusType [SWS_SecOC_00991] 📄 PDF

Type SecOC_OverrideStatusType.

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: a5d2888a2f81 Происхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Тип перечисления SecOC_OverrideStatusType определяет различные режимы для переопределения статуса верификации I-PDU в модуле SecOC и предоставляется через заголовочный файл Rte_SecOC_Type.h [SWS_SecOC_00991].

Значения типа перечисления управляют тем, выполняется ли верификация аутентификатора и как именно, а также какие действия предпринимаются в отношении входящей I-PDU [SWS_SecOC_00991]:

  • SECOC_OVERRIDE_DROP_UNTIL_NOTICE (0x00): верификация отменяется без вызова CSM, I-PDU отбрасывается, а результат верификации устанавливается в SECOC_NO_VERIFICATION [SWS_SecOC_00991].
  • SECOC_OVERRIDE_DROP_UNTIL_LIMIT (0x01): как и ранее, верификация приостанавливается и I-PDU отбрасывается, однако с ограничением, пока не будет достигнуто сконфигурированное количество переопределяемых сообщений [SWS_SecOC_00991].
  • SECOC_OVERRIDE_CANCEL (0x02): отменяет активное переопределение статуса верификации и восстанавливает стандартное поведение [SWS_SecOC_00991].
  • SECOC_OVERRIDE_PASS_UNTIL_NOTICE (0x40) и SECOC_OVERRIDE_PASS_UNTIL_LIMIT (0x42): верификация аутентификатора выполняется, и I-PDU перенаправляется на верхний уровень независимо от результата; если верификация завершается сбоем, результат устанавливается в SECOC_VERIFICATIONFAILURE_OVERWRITTEN (либо до дальнейшего уведомления, либо с ограничением по счетчику) [SWS_SecOC_00991].
  • SECOC_OVERRIDE_SKIP_UNTIL_LIMIT (0x41) и SECOC_OVERRIDE_SKIP_UNTIL_NOTICE (0x43): верификация отменяется, результатом является SECOC_NO_VERIFICATION, и I-PDU передается на верхний уровень. Если сконфигурирован SecOCRxSecuredPduCollection, SecOC обрабатывает SecOCRxAuthenticPdu напрямую, не ожидая SecOCRxCryptographicPdu [SWS_SecOC_00991].

Этот текст был сгенерирован ИИ на основе спецификации AUTOSAR R20-11.

Руководство разработчика реализации в подготовке (сложность I1)

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

Record
AUTOSAR/AP/record/CP_MOD_SecOC
Status
unspecified
Version
AUTOSAR/AP/record/CP_MOD_SecOC@rel:R20-11#de1cb30c
Content hash
de1cb30c
Source
https://www.autosar.org/fileadmin/standards/R20-11/CP/AUTOSAR_SWS_SecureOnboardCommunication.pdf#nameddest=SWS_SecOC_00106

Инициализация и состояние

SecOC_DeInit функция

This service stops the secure onboard communication. All buffered I - PDU are removed and have to be obtained again, if needed, after Sec OC_ Init has been called. By a call to Sec OC_ De Init the AUTOSAR Sec OC module is put into a not in itialized state (Sec OC_ UNINIT).

void SecOC_DeInit (void);
SecOC_GetVersionInfo функция

Returns the version information of this module.

void SecOC_GetVersionInfo (Std_VersionInfoType* versioninfo);
SecOC_Init функция

Initializes the the Sec OC module. Successful initialization leads to state Sec OC_ INIT. In configurations, in which Sec OC is assigned to more than one partition (i.e. Sec OC_ Main Functions are mapped to partition s), Sec OC may provide one init AUTOSAR CP R20 - of Document ID : AUTOSAR_SWS_SecureOnboardCommunication function per partition. The decision on whether a single Sec OC_ Init() function or one per partition is provided is implementation - specific. In case a given implementation provides one Sec OC_ Init() function per partition, it is up to the implementation to devise a naming pattern that prevents name clashes among the different Sec OC_ Init() functions (e.g., by adding a suffix containing short name the Ecuc Partition.

void SecOC_Init (const SecOC_ConfigType* config);

Сервисы · Get…

SecOC_GetRxFreshness функция

Service SecOC_GetRxFreshness.

Std_ReturnType SecOC_GetRxFreshness (uint16 SecOCFreshnessValueID, const uint8* SecOCTruncatedFreshnessValue, uint32 SecOCTruncatedFreshnessValueLength, uint16 SecOCAuthVerifyAttempts, uint8* SecOCFreshnessValue, uint32* SecOCFreshnessValueLength);

Service SecOC_GetRxFreshnessAuthData.

Std_ReturnType SecOC_GetRxFreshnessAuthData (uint16 SecOCFreshnessValueID, const uint8* SecOCTruncatedFreshnessValue, uint32 SecOCTruncatedFreshnessValueLength, const uint8* SecOCAuthDataFreshnessValue, uint16 SecOCAuthDataFreshnessValueLength, uint16 SecOCAuthVerifyAttempts, uint8* SecOCFreshnessValue, uint32* SecOCFreshnessValueLength);
SecOC_GetTxFreshness функция

This API returns th e freshness value from the Most Significant Bits in the first byte in the array (Sec OCFreshness Value), in big endian format.

Std_ReturnType SecOC_GetTxFreshness (uint16 SecOCFreshnessValueID, uint8* SecOCFreshnessValue, uint32* SecOCFreshnessValueLength);

Service SecOC_GetTxFreshnessTruncData.

Std_ReturnType SecOC_GetTxFreshnessTruncData (uint16 SecOCFreshnessValueID, uint8* SecOCFreshnessValue, uint32* SecOCFreshnessValueLength, uint8* SecOCTruncatedFreshnessValue, uint32* SecOCTruncatedFreshnessValueLength);

Сервисы · Tp…

SecOC_TpCancelReceive функция

Requests cancellation of an ongoing reception of a PDU in a lower layer transport protocol module.

Std_ReturnType SecOC_TpCancelReceive (PduIdType RxPduId);
SecOC_TpCancelTransmit функция

Requests cancellation of an ongoing transmission of a PDU in a lower layer communication module.

Std_ReturnType SecOC_TpCancelTransmit (PduIdType TxPduId);
SecOC_TpTransmit функция

Requests transmission of a PDU.

Std_ReturnType SecOC_TpTransmit (PduIdType TxPduId, const PduInfoType* PduInfoPtr);

Сервисы · Прочее

SecOC_IfCancelTransmit функция

Requests cancellation of an ongoing transmission of a PDU in a lower layer communication module.

Std_ReturnType SecOC_IfCancelTransmit (PduIdType TxPduId);
SecOC_IfTransmit функция

Requests transmission of a PDU.

Std_ReturnType SecOC_IfTransmit (PduIdType TxPduId, const PduInfoType* PduInfoPtr);

The service provides the ability to enable the sending of un - authenticated PDU to lower layer. (example: in case authentication build counter has reached the configuration value Sec OCAuthentication Build Attempts or the query of the freshness function returns E_ NOT_ OK or the calculation of the authenticator has returned a non - recoverable error such as returning E_ NOT_ OK or KEY_ FAILURE). T his service is optional (the service is available only if Sec OCDefault Authentication Information Pattern is configured). If the service is not available or the service is available but the service was called with send Default

Std_ReturnType SecOC_SendDefaultAuthenticationInformation (uint16 FreshnessValueID, boolean sendDefaultAuthenticationInformation);
SecOC_VerifyStatus функция

This s ervice provides the ability to inform the application about the result of the verification attempt of a received PDU by the Sec OC module.

void SecOC_VerifyStatus (SecOC_VerificationStatusType verificationStatus);

Service SecOC_VerifyStatusOverride.

Std_ReturnType SecOC_VerifyStatusOverride (uint16 ValueID, SecOC_OverrideStatusType overrideStatus, uint8 numberOfMessagesToOverride);

Обратные вызовы

SecOC_CopyRxData функция

This function is called to provide the received data of an I - PDU segment (N - PDU) to the upper layer. Each call to this function provides the next part of the I - PDU data. The si ze of the remaining buffer is written to the position indicated by buffer Size Ptr.

BufReq_ReturnType SecOC_CopyRxData (PduIdType id, const PduInfoType* info, PduLengthType* bufferSizePtr);
SecOC_CopyTxData функция

Service SecOC_CopyTxData.

BufReq_ReturnType SecOC_CopyTxData (PduIdType id, const PduInfoType* info, const RetryInfoType* retry, PduLengthType* availableDataPtr);
SecOC_RxIndication функция

Indication of a received PDU from a lower layer communication interface module.

void SecOC_RxIndication (PduIdType RxPduId, const PduInfoType* PduInfoPtr);

This interface is used by the Sec OC to indicate that the Secured I - PDU has been initiated for transmission.

void SecOC_SPduTxConfirmation (uint16 SecOCFreshnessValueID);
SecOC_StartOfReception функция

Service SecOC_StartReception.

BufReq_ReturnType SecOC_StartOfReception (PduIdType id, const PduInfoType* info, PduLengthType TpSduLength, PduLengthType* bufferSizePtr);
SecOC_TpRxIndication функция

Called after an I - PDU has been received via the TP API, the result indicates whether the transmission was successful or not.

void SecOC_TpRxIndication (PduIdType id, Std_ReturnType result);
SecOC_TpTxConfirmation функция

This function is called after the I - PDU has been transmitted on its network, the result indicates whether the transmission was successful or not.

void SecOC_TpTxConfirmation (PduIdType id, Std_ReturnType result);
SecOC_TriggerTransmit функция

Within this API , the upper layer module (called module) shall check whether the available data fits into the buffer size reported by Pdu Info Ptr - >Sdu Length. If it fits, it shall copy its data into the buffer provided by Pdu Info Ptr - >Sdu Data Ptr and update the length of the actual copied data in Pdu Info Ptr - >Sdu Length. If not, it returns E_ NOT_ OK without changing Pdu Info Ptr.

Std_ReturnType SecOC_TriggerTransmit (PduIdType TxPduId, PduInfoType* PduInfoPtr);
SecOC_TxConfirmation функция

The lower layer communication interface module confirms the transmission of a PDU, or the failure to transmit a PDU.

void SecOC_TxConfirmation (PduIdType TxPduId, Std_ReturnType result);

Callout-функции и ожидаемые интерфейсы

Service is used to propagate the status of each verification attempt from the Sec OC module to other modules. This service can be configured such that:  Only: "False" Verifica tion Status is propagated to modules  Both: "True" and "False" Verification Status are propagated to modules  None: No Verification Status is propagated

void SecOC_VerificationStatusCallout (SecOC_VerificationStatusType verificationStatus);

Циклические

SecOC_MainFunctionRx функция

This function performs the processing of the Sec OC module's authentication and verification processing for the Rx path. Per configured Sec OCMain Function Rx instance one Sec OC_ Main Function Rx_ shall be implemented. Hereby is the short name of the Sec OCMain Function Rx configuration container in the ECU configuration.

void SecOC_MainFunctionRx (void);
SecOC_MainFunctionTx функция

This function performs the processing of the Sec OC module's authentication and verification processing for the Tx path. Per configured Sec OCMain Function Tx instance one Sec OC_ Main Function Tx_ shall be implemented. Hereby is t he short name of the Sec OCMain Function Tx configuration container in the ECU configuration.

void SecOC_MainFunctionTx (void);

Типы

Configuration data structure of Sec OC module

Type SecOC_OverrideStatusType.

States of the Sec OC module

Enumeration to indicate veri fication results.

Data structure to bundle the status of a verification attempt for a specific Freshness Value and Data ID